【Java】如何使用servlet作为Controller


【Java】如何使用servlet作为Controller

IDE: IntelliJ IDEA

准备工作

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

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

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

    
    
      javax.servlet
      javax.servlet-api
      4.0.1
      provided
    
    

具体代码编写

  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文件中,使用

    即可。

运行

在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