【Java】如何使用servlet作为Controller

【Java】如何使用servlet作为Controller

IDE: IntelliJ IDEA

准备工作

  1. 在main下面新建目录java,并标记为source root。

  2. 新建一个包,名称和要控制的jsp文件的目录相同。我这里是ch2.servletController。在包中新建一个class,Controller.java
    1

  3. 在工程目录的pom.xml文件中添加依赖,javax.servlet-api。具体可以从maven官网的仓库中搜索。

    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
    </dependency>
    

    1

具体代码编写

  1. Controller.java文件。

    1. 注意包名。
    2. import相关库。
    3. 使用@WebServlet(urlPatterns={""})来用URL标记servlet。
    4. class要是public,并且extend HttpServlet
    5. doGet方法写入页面的逻辑关系。
    package ch2.servletController;
    
    import java.io.IOException;
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
    * @author sleepyhermit
    * @date 2021/12/16-15:32
    */
    
    @WebServlet(
            urlPatterns={"/ch2/servletController/Controller"})
    public class Controller extends HttpServlet{
        protected void doGet(HttpServletRequest request,
                            HttpServletResponse response)
                throws ServletException, IOException {
            String address;
            if(request.getParameter("processButton") != null){
                address = "Process.jsp";
            } else if(request.getParameter("confirmButton") != null){
                address = "Confirm.jsp";
            } else {
                address = "Edit.jsp";
            }
            RequestDispatcher dispatcher = request.getRequestDispatcher(address);
            dispatcher.forward(request,response);
        }
    }
    
  2. 在jsp文件中,使用<form action="Controller">即可。

运行

在maven中输入一下命令。如果清理项目异常,则需要将当前程序终止运行。[1]

mvn: clean tomcat7:run

参考资料

  1. 问题:Failed to delete XXX\target\tomcat\logs\access_log.2020-07-19: https://blog.csdn.net/LYN_xj94512/article/details/107441155
posted @ 2021-12-16 17:21  sleepyhermit  阅读(692)  评论(0)    收藏  举报