web服务器Tomcat介绍(二)
一、IDEA集成Tomcat【重点】
<ignore_js_op>
1、工程目录介绍
-
src
放Java源代码
-
web
放jsp、html、css、js
-
web/WEB-INF
受保护的目录
-
web/WEB-INF/web.xml
受保护目录,浏览器不能直接访问到。存放web.xml, class文件, jar包,当前项目的核心配置文件
2、配置资源路径
<ignore_js_op>
<ignore_js_op>
3、启动tomcat,浏览器访问localhost:8080二、Servlet入门
<ignore_js_op>
1、Servlet与java的区别
- 类必须实现javax.servlet.Servlet接口
- 运行在Web容器中,Tomcat就是一个Web容器
- 能够接收浏览器发送的请求,并且做出响应给浏览器
2、Servlet的应用场景
<ignore_js_op>
三、Servlet2.5的开发案例
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
/** * 1. 创建一个普通Java类;实现Servlet接口,重写service方法
* 2. 配置Servlet
* 2.1 配置映射路径
* 2.2 配置类路径
*/
public class HelloServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {[/size][/font]
[font=微软雅黑][size= 3 ]System.out.println( "Hello Servlet 初始化" );[/size]
[size= 3 ] }[/size]
[size= 3 ] @Override [/size]
[size= 3 ] public ServletConfig getServletConfig() {[/size]
[size= 3 ] return null ;[/size]
[size= 3 ] }[/size]
[size= 3 ] // 当浏览器发起请求时,访问该Servlet,service方法会自动调用[/size]
[size= 3 ] @Override [/size]
[size= 3 ] public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {[/size]
[size= 3 ] System.out.println( "Hello Servlet 2.5" );[/size]
[size= 3 ] }[/size]
[size= 3 ] @Override [/size]
[size= 3 ] public String getServletInfo() {[/size]
[size= 3 ] return null ;[/size]
[size= 3 ] }[/size]
[size= 3 ] @Override [/size]
[size= 3 ] public void destroy() {[/size]
[size= 3 ]System.out.println( "Hello Servlet 销毁" );[/size]
[size= 3 ] }[/size]
[size= 3 ]}
|
4、配置web.xml
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<!-- 每个项目都会有的一个核心配置文件,此文件用于配置浏览器与Servlet之间的关系 -->[/size] [size= 3 ]<?xml version= "1.0" encoding= "UTF-8" ?>[/size]
[size= 3 ]<web-app xmlns= "http://xmlns.jcp.org/xml/ns/javaee" [/size]
[size= 3 ] xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" [/size]
[size= 3 ] xsi:schemaLocation= "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" [/size]
[size= 3 ] version= "4.0" >[/size]
[size= 3 ] <!-- 配置HelloServlet类路径 -->[/size]
[size= 3 ] <!-- 通过url-pattern,需要找到Servlet程序 -->[/size]
[size= 3 ] <servlet>[/size]
[size= 3 ] <servlet-name>HelloServlet</servlet-name>[/size]
[size= 3 ] <!-- 第四步,通过servlet-name,找到对应的Servlet类 -->[/size]
[size= 3 ] <servlet- class >com.itheima.servlet.HelloServlet</servlet- class >[/size]
[size= 3 ] <!-- 第三步,通过servlet- class 找到对应的类,填写唯一路径, "包名+类名" -->[/size]
[size= 3 ] </servlet>[/size]
[size= 3 ] <!-- 配置HelloServlet映射路径 -->[/size]
[size= 3 ] <!-- 浏览器需要向Servlet发送请求,浏览器的url与Servlet要映射起来,mapping: 映射 -->[/size]
[size= 3 ] <servlet-mapping>[/size]
[size= 3 ] <servlet-name>HelloServlet</servlet-name>[/size]
[size= 3 ] <!-- 第二步,此名字需要唯一 -->[/size]
[size= 3 ] <url-pattern>/hello</url-pattern>[/size]
[size= 3 ] <!-- 第一步,url-pattern,资源路径,浏览器输入hello,就可以访问到Servlet -->[/size]
[size= 3 ] </servlet-mapping>[/size]
[size= 3 ]</web-app>
|
5、启动tomcat,浏览器访问http://localhost:8080/hello,查看控制台运行结果
四、Servlet3.0开发案例
注意:唯一不同的是不需要配置web.xml里的映射路径,直接在类上加注解就可以
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
/** * 1. 创建一个普通Java类,实现Servlet,重写service方法
* 2. 配置Servlet
* 2.1 配置映射路径
* 2.2 配置类路径[/size][/font]
[font=微软雅黑][size=3]* 2.3 配置注解[/size][/font] [font=微软雅黑][size=3] */ [/size]
[size= 3 ] @WebServlet (name = "AnnotationServlet" , urlPatterns = "/annotation" )[/size]
[size= 3 ] public class AnnotationServlet implements Servlet {[/size]
[size= 3 ] @Override [/size]
[size= 3 ] public void init(ServletConfig servletConfig) throws ServletException {[/size]
[size= 3 ] }[/size]
[size= 3 ] @Override [/size]
[size= 3 ] public ServletConfig getServletConfig() {[/size]
[size= 3 ] return null ;[/size]
[size= 3 ] }[/size]
[size= 3 ] // 当浏览器发起请求时,访问该Servlet,service方法会自动调用[/size]
[size= 3 ] @Override [/size]
[size= 3 ] public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {[/size]
[size= 3 ] System.out.println( "Hello Servlet 3.0" );[/size]
[size= 3 ] }[/size]
[size= 3 ] @Override [/size]
[size= 3 ] public String getServletInfo() {[/size]
[size= 3 ] return null ;[/size]
[size= 3 ] }[/size]
[size= 3 ] @Override [/size]
[size= 3 ] public void destroy() {[/size]
[size= 3 ] }[/size]
[size= 3 ]}
|
五、Servlet的生命周期
- Servlet是何时创建的
第一次被请求时
- Servlet是被谁创建的
Tomcat
- Servlet如何感知自己被创建
init方法
- Servlet是何时销毁的
项目关闭/卸载时被销毁
- Servlet是被谁销毁的
Tomcat
- Servlet如何感知自己被销毁
destroy方法
- Servlet被创建了几次
1次
- Servlet是否线程安全
不安全
更多免费技术资料可关注:annalin1203