Servlet详解

╰+攻爆jí腚メ 2024-04-07 12:03 134阅读 0赞

文章目录

  • Servlet详解
  • 一、Servlet是什么?
  • 二、Servlet的生命周期
  • 三、创建Servlet的方法
    • 1、实现Servlet接口
    • 2、继承HttpServlet类
  • 三、业务执行流程
    • 1.页面发起请求
    • 2.Tomcat解析路径,访问对应方法
      1. servlet对数据进行处理
    • 4.返回处理后的返回值
  • 四、Web.xml文件的配置
  • 五、使用注解配置servlet

Servlet详解

Servlet是JavaWeb开发中最原始的请求处理程序,一些古老的项目仍然还在使用Servlet-JSP技术。对于初学者来说,会使用Servlet开发是一个必修课


一、Servlet是什么?

Servlet是JavaWeb项目中用于处理前端发起请求,并通过一系列的操作处理请求,然后对请求做出响应的一种应用程序。Tomcat服务器,是我们Servlet的容器。

二、Servlet的生命周期

Servlet生命周期主要包含四个部分,分别是创建,初始化,服务,销毁

  • 创建

    • 请求映射到这个类,才会创建该类对象
    • 创建一次
    • 单实例,该类只有这一个对象
  • 初始化

    • 创建完立即初始化
    • 且只初始化一次
  • 服务

    • 后续每次发送请求都会执行服务方法
  • 销毁

    • 服务器宕机即销毁
    • 或者应用程序从服务器卸载

三、创建Servlet的方法

1、实现Servlet接口

  1. public class MyServlet implements Servlet {
  2. // 初始化
  3. @Override
  4. public void init(ServletConfig servletConfig) throws ServletException {
  5. System.out.println("初始化..." );
  6. }
  7. @Override
  8. public ServletConfig getServletConfig() {
  9. return null;
  10. }
  11. @Override
  12. public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
  13. System.out.println("服务..." );
  14. }
  15. @Override
  16. public String getServletInfo() {
  17. return null;
  18. }
  19. @Override
  20. public void destroy() {
  21. System.out.println("销毁..." );
  22. }
  23. }

实现接口后需要重写接口的所有方法,在实际开发中此种方法过于冗余,因为我们不需要去完成整个Servlet的生命周期的所有方法,而是只需要关注servlet怎么实现业务。

2、继承HttpServlet类

  1. public class TestServlet extends HttpServlet {
  2. @Override
  3. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  4. }
  5. @Override
  6. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  7. }
  8. }

相对于第一种创建Servlet的方式,第二种方式有所简化,更加方便了我们的使用


三、业务执行流程

1.页面发起请求

当用户在页面触发了请求事件,例如:点击注册,登陆,刷新等等功能时。这时,前端页面会通过预先设置好的服务器路径(地址url),对服务器发送请求。这些请求一般包含一些数据,例如用户名,密码等等。


2.Tomcat解析路径,访问对应方法

请求通过url进入Tomcat服务器,服务器通过Web.xml的配置文件查找对应的路径。通过servlet-mapping标签内容找到对应的servlet,并访问servlet的方法


3. servlet对数据进行处理

通过上一步,此时请求已经被转发到对应的方法。请求携带的通过Request流传输,按照MVC三层架构思想,servlet充当控制层,将所需要的数据转发入service层处理。并接受返回值。


4.返回处理后的返回值

当Servlet接收到业务层的返回值时,将通过Response流对返回的信息进行输出,通过来时的路径,传输到页面。完成整个流程。


四、Web.xml文件的配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  5. version="4.0">
  6. <welcome-file-list>
  7. <welcome-file>index.jsp</welcome-file>
  8. </welcome-file-list>
  9. <servlet>
  10. <servlet-name>myServlet</servlet-name>
  11. <servlet-class>com.lzl.servlet.MyServlet</servlet-class>
  12. </servlet>
  13. <servlet-mapping>
  14. <servlet-name>myServlet</servlet-name>
  15. <url-pattern>/myServlet</url-pattern>
  16. </servlet-mapping>
  17. </web-app>

在整个执行流程中,我们必须要配置好servlet的映射,这样才能让服务器知道前端发送的请求要转发给哪个Servlet进行处理。
整个web.xml当下的解析流程是,通过 标签内部的 (外部访问路径),找到其对应的servlet名。注意,这个servlet名应该是全局唯一的。然后服务器根据找到的这个servlet名去 标签里找的内容进行匹配。匹配成功怎找到对应的全限定名,去找到该servlet,将请求准确无误的转发至目标。

五、使用注解配置servlet

当我们做一些比较复杂的业务时,每一个模块都需要单独的配置web.xml映射。我们不得不写很长串的标签,因为一个servlet就需要六对标签去配置。那么有没有更简单的方式?当然是有的

导入jar包
在这里插入图片描述
我们需要导入这两个jar包,这些jar包是在我们安装的Tomcat的lib文件夹里,拷过来即可。然后我们需要在我们建好的servlet文件的类名上方,配置如下注解。
在这里插入图片描述
小括号的内容即是我们需要在前端的AJAX配置的访问地址。
注意

当我们配置完注解,必须要把web.xml中的配置删掉。否则是行不通的。

发表评论

表情:
评论列表 (有 0 条评论,134人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Servlet 详解

    一.什么是servlet?   Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HT

    相关 JAVA Servlet详解

    什么是Servlet         Servlet是运行在web服务器或应用服务器上的程序。         Servlet作为来自web浏览器或其他Http客户端的

    相关 Servlet详解

    越学到后面,越觉得基础重要,慢慢开始补充基础,因此这篇博客主要备忘一下扎实servlet的相关知识。 1.首先如何查看servlet的源码。     servlet的源

    相关 Servlet详解3

    ServletConfig 该接口是用来描述Servlet的基本信息的 ServletConfig中含有的方法,上面四个加粗的是这个类自定义的方法,后面的是继承过来的方

    相关 Servlet详解(一)

    什么是Servlet? Servlet是Java Web开发的基石,与平台无关的服务器组件,它是运行在Servlet容器/Web应用服务器/Tomcat,负责与客户端进行通