JSP(Java Server Pages) 和 Java Servlet 都是 Java Web 开发中用于动态生成 Web 内容的技术,但它们在定位、写法、使用方式上有明显区别。
HttpServlet)@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.getWriter().write("Hello Servlet");
}
}
.jsp 转成 .java(Servlet),再编译执行<html>
<body>
<h1>Hello JSP</h1>
<%
out.print("当前时间:" + new Date());
%>
</body>
</html>
| 对比项 | Servlet | JSP |
|---|---|---|
| 技术本质 | Java 类 | 被翻译成 Servlet 的页面 |
| 编写方式 | 纯 Java | HTML + Java 脚本 |
| 适合场景 | 控制层、业务逻辑 | 视图层、页面展示 |
| 修改后生效 | 需重新编译 | 一般直接刷新即可 |
| 可读性 | Java 强,HTML 弱 | HTML 强,Java 弱 |
| 性能 | 略高(无翻译过程) | 首次稍慢(需转译) |
浏览器 → Tomcat → Servlet → 响应
浏览器 → Tomcat → JSP → 转成 Servlet → 编译 → 执行 → 响应
在实际项目中,Servlet + JSP 通常配合使用:
// Servlet
request.setAttribute("name", "Tom");
request.getRequestDispatcher("index.jsp").forward(request, response);
<!-- JSP -->
<h1>欢迎:${name}</h1>
这就是早期 MVC 模式(Servlet 做 Controller,JSP 做 View)。
Servlet 是 Java 写 Web 的“底层能力”,JSP 是为了方便写页面而对 Servlet 的封装。
如果你愿意,我也可以帮你画一张 Servlet vs JSP 结构图,或者讲 Spring 是怎么基于 Servlet 的。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。