A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

                                                   web服务器Tomcat介绍(二)
一、IDEA集成Tomcat【重点】

1、工程目录介绍
  • src

放Java源代码
  • web

放jsp、html、css、js
  • web/WEB-INF

受保护的目录
  • web/WEB-INF/web.xml

受保护目录,浏览器不能直接访问到。存放web.xml, class文件, jar包,当前项目的核心配置文件
2、配置资源路径


3、启动tomcat,浏览器访问localhost:8080
二、Servlet入门

1、Servlet与java的区别

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

三、Servlet2.5的开发案例

[Java] 纯文本查看 复制代码
/**
 * 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] 纯文本查看 复制代码
<!-- 每个项目都会有的一个核心配置文件,此文件用于配置浏览器与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] 纯文本查看 复制代码
/**
 * 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是否线程安全

不安全



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马