【Java】如何使用servlet作为Controller
【Java】如何使用servlet作为Controller
IDE: IntelliJ IDEA
准备工作
-
在main下面新建目录java,并标记为source root。
-
新建一个包,名称和要控制的jsp文件的目录相同。我这里是ch2.servletController。在包中新建一个class,
Controller.java
。
-
在工程目录的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>
具体代码编写
-
Controller.java文件。
- 注意包名。
- import相关库。
- 使用
@WebServlet(urlPatterns={""})
来用URL标记servlet。 - class要是public,并且extend HttpServlet
- 在
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); } }
-
在jsp文件中,使用
<form action="Controller">
即可。
运行
在maven中输入一下命令。如果清理项目异常,则需要将当前程序终止运行。[1]
mvn: clean tomcat7:run
参考资料
- 问题:Failed to delete XXX\target\tomcat\logs\access_log.2020-07-19: https://blog.csdn.net/LYN_xj94512/article/details/107441155
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)