Servlet实战

562 阅读1分钟

Servlet实战

一般在实际项目开发中,都是使用继承 HttpServlet 类的方式去实现 Servlet 程序。

实现步骤:

  1. 创建一个web工程,导入Servlet依赖
  2. 编写一个类去实现HttpServlet类
  3. 根据业务需要重写doGet或者doPost方法
  4. 到web.xml中配置Servlet访问地址。

image-20210724161814414-16271146965184.png

1. 创建一个web工程,导入Servlet依赖

如何在一个工程下加入web组件?

工程右击-->Add Framework Support...

image-20210724160213767-16271137359782.png

-->勾选web应用

image-20210724160414468-16271138567313.png

Servlet依赖

 <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>javax.servlet-api</artifactId>
       <version>3.1.0</version>
     </dependency>
     <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
     <dependency>
       <groupId>javax.servlet.jsp</groupId>
       <artifactId>javax.servlet.jsp-api</artifactId>
       <version>2.3.3</version>
     </dependency>
 ​

2. 编写一个类继承HttpServlet

3. 根据业务需要重写doGet或者doPost方法

 public class MyServlet 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);
     }
 }

4. 到web.xml中配置Servlet访问地址

 <?xml version="1.0" encoding="UTF-8"?>
 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
          version="4.0">
     <servlet>
         <servlet-name>hello</servlet-name>
         <!--对应一个类-->
         <servlet-class>com.bewind.MyServlet</servlet-class>
     </servlet>
     <servlet-mapping>
         <servlet-name>hello</servlet-name>
         <url-pattern>/hello</url-pattern>
     </servlet-mapping>
 ​
     <!--欢迎页面-->
     <!--<welcome-file-list>
         <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>-->
 </web-app>

配置服务器

见Tomcat实战

image-20210724170759221.png

正常执行

上面的代码没有请求所以访问http://localhost:8080/ServletCombat_war_exploded/hello

会报错