servlet 执行流程

编写一个 servlet 程序

  1. 编写一个普通类

  2. 实现 servlet 接口,这里我们直接继承 HttpServlet

    package com.carve.servlet;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    public class HelloServlet extends HttpServlet {
          
          
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
          
          
            // 1.获取前端参数
            String method = req.getParameter("method");
            if (method.equals("add")){
          
          
                req.getSession().setAttribute("msg","执行了add方法");
            }
            if (method.equals("delete")){
          
          
                req.getSession().setAttribute("msg","执行了delete方法");
            }
            // 2.调用业务层
            // 3.视图转发或者重定向
            req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,resp);
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
          
          
            doGet(req, resp);
        }
    }
    

    在 HttpServlet 中,自定义了一个新的 service() 方法,其中通过 getMethod() 方法判断请求的类型,从而调用 doGet() 或者 doPost() 处理 get,post 请求,使用者只需要继承 HttpServlet,然后重写 doPost() 或者 doGet() 方法处理请求即可。

  3. 编写 web 页面

    index.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body>
      $hello$
      </body>
    </html>
    

    test.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    
    ${msg}
    
    </body>
    </html>
    

编写 Servlet 的映射

为什么需要映射:我们写的是 JAVA 程序,但是要通过浏览器访问,而浏览器需要连接 web 服务器所以我们需要在 web 服务器中注册我们写的 Servlet,还需给他一个浏览器能够访问的路径;

<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>com.carve.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

执行流程

首先客户端发送请求(http://localhost:8080/hello?method=add),请求如果和 web.xml 下的 <url-pattern>/hello</url-pattern> 的虚拟路径相匹配,那么请求就会发送到 <servlet-name>HelloServlet</servlet-name> 所对应的类,HelloServlet 类执行 doGet 方法获得 method 的参数 add,执行对应的代码,最后重定向到指定页面。

配置 tomcat

在这里插入图片描述
从这点进去按 + 配置 tomcat,如果没安装过 tomcat 需要先安装。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44018458/article/details/114549944
今日推荐