写点什么

Servlet 入门

作者:Java高工P7
  • 2021 年 11 月 11 日
  • 本文字数:1519 字

    阅读完需:约 5 分钟

2、HttpServlet 类




一、Servlet 介绍


============


Servlet(server applet)是运行在服务器端的小程序,其实就是一个接口,定义了 Java 类被浏览器访问到(Tomcat 识别)的规则,我们可以自己定义一个类,来实现 Servlet 接口,复写方法


二、Servlet 入门


============


1、创建 JavaEE Web 项目




具体参见上一篇博客


2、定义类,实现 Servlet 接口




public class myServlet implements Servle{}


3、实现接口中的抽象方法




public class myServlet implements Servlet {


/**


  • 初始化方法

  • 在 Servlet 被创建是执行,只会执行一次


*/


@Override


public void init(ServletConfig servletConfig) throws ServletException {


System.out.println("初始化");


}


/**


  • 获取 ServletConfig 配置对象

  • @return


*/


@Override


public ServletConfig getServletConfig() {


return null;


}


/**


  • 提供服务的方法

  • 每次 Servlet 被访问的时候执行,可执行多次

  • @return


*/


@Override


public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {


System.out.println("Hello Servlet!");


}


/**


  • 获取 Servlet 信息,如作者、版本等

  • @return


*/


@Override


public String getServletInfo() {


return null;


}


/**


  • 销毁方法

  • 在服务器正常关闭的时候执行,执行一次


*/


@Override


public void destroy() {


System.out.println("销毁");


}


}


4、配置 Servlet




在 web.xml 文件里面进行配置,在根标签里面加入如下配置


<servlet>


<servlet-name>oneStar</servlet-name>


<servlet-class>web.servlet.myServlet</servlet-class>


</servlet>


<servlet-mapping>


<servlet-name>oneStar</servlet-name>


<url-pattern>/oneStar</url-pattern>


</servlet-mapping>


三、Servlet 分析


============


1、原理分析




  1. 当服务器接收到客户端浏览器的请求后,会解析请求的 URL 路径,获取访问的 Servlet 的资源路径

  2. 查找 web.xml 文件,看是否有对应的<url-pattern>标签体内容

  3. 如果有,则再找到对应的<url-pattern>全类名

  4. Tomcat 将字节码文件加载进内存,并创建其对象

  5. 调用其方法


2、Servlet 中的生命周期




  • 被创建:执行 init 方法,只执行一次

  • 默认情况下,第一次被访问时,Servlet 被创建

  • 可以配置执行 Servlet 的创建时机,可在<servlet>标签中配置


  1. 配置第一次被访问时创建:<load-on-startup>标签配置为负数(默认为-1)

  2. 配置服务器启动时被创建:<load-on-startup>标签配置 0 或正数


  • init 方法只执行一次,说明一个 Servlet 在内存中只存在一个对象,Servlet 是单例的

  • 多个用户同时访问时,可能存在线程安全问题,所以尽量不要在 Servlet 中定义成员变量,即使定义了也不要对值进行修改

  • 提供服务:执行 server 方法,可以执行多次

  • 每次访问 Servlet 时,Servlet 方法都会被调用一次

  • 被销毁:执行 destory 方法,只执行一次

  • Servlet 销毁时执行,只有服务器正常关闭时,才会执行 destory 方法


四、注解配置(不用 web.xml 配置)


===================


在 Servlet3.0 以上的版本中,支持使用注解配置,可以不需要 web.xml 文件,在类上使用 @webServlet 注解进行配置,其实质就是配置 WebServlet.class 文件里面的 urlPatterns 参数,urlPatterns 是一个 String 类型的数组,使用该数组来配置访问路径,该配置有多种方法:


  • 一个 Servlet 可以定义一个访问路径:@WebServlet("/on


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


eStar")


  • 一个 Servlet 可以定义一个数组(多个)访问路径:@WebServlet({"/oneStar","/twoStar","/threeStar"})

  • 支持多层路径:@WebServlet("/user/oneStar")

  • 使用通配(任何目录):@WebServlet("/*")

  • 使用通配(带后缀):@WebServlet("*.do")


@WebServlet("/oneStar")

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
Servlet 入门