web服务器Tomcat介绍(二)
一、IDEA集成Tomcat【重点】
<ignore_js_op>web服务器Tomcat介绍(二)_tomcat
1、工程目录介绍

  • src
放Java源代码
  • web
放jsp、html、css、js
  • web/WEB-INF
受保护的目录
  • web/WEB-INF/web.xml
受保护目录,浏览器不能直接访问到。存放web.xml, class文件, jar包,当前项目的核心配置文件

2、配置资源路径
<ignore_js_op>web服务器Tomcat介绍(二)_xml_02 
<ignore_js_op>web服务器Tomcat介绍(二)_tomcat_03
3、启动tomcat,浏览器访问localhost:8080
二、Servlet入门
<ignore_js_op>web服务器Tomcat介绍(二)_tomcat_04
1、Servlet与java的区别

  • 类必须实现javax.servlet.Servlet接口
  • 运行在Web容器中,Tomcat就是一个Web容器
  • 能够接收浏览器发送的请求,并且做出响应给浏览器

2、Servlet的应用场景
<ignore_js_op>web服务器Tomcat介绍(二)_ide_05
三、Servlet2.5的开发案例

[Java] 纯文本查看 复制代码
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

[Java] 纯文本查看 复制代码
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里的映射路径,直接在类上加注解就可以

[Java] 纯文本查看 复制代码
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