JSP(JavaServer Pages)和Servlet都是Java EE中用于开发Web应用的技术,但它们的定位、写法、执行方式都有明显区别。
Servlet 是 Java 代码为主,适合处理逻辑;JSP 是 HTML 为主,适合展示页面。
| 对比项 | Servlet | JSP |
|---|---|---|
| 本质 | Java 类 | HTML + Java 脚本 |
| 主要用途 | 控制层、业务逻辑 | 视图层、页面展示 |
| 代码形式 | .java 文件 |
.jsp 文件 |
| 是否偏前端 | 否 | 是 |
| 是否偏后端 | 是 | 否 |
| 输出 HTML | 手动 out.print() |
自然嵌入 HTML |
| 执行方式 | 直接编译为 class | 先转成 Servlet,再编译 |
| 学习成本 | 偏 Java | 偏 HTML |
| 可维护性 | 逻辑复杂时强 | 页面复杂时强 |
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<h1>Hello Servlet</h1>");
out.println("</body>");
out.println("</html>");
}
}
✅ 优点:逻辑清晰
❌ 缺点:HTML 拼接难维护
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<body>
<h1>Hello JSP</h1>
<p>当前时间:<%= new java.util.Date() %></p>
</body>
</html>
✅ 优点:页面直观
❌ 缺点:不适合写复杂逻辑
浏览器 → Web容器 → Servlet → 返回响应
浏览器 → JSP → 转成 Servlet → 编译 → 执行 → 返回响应
✅ JSP 本质上最终还是 Servlet
在经典 MVC 模式中:
Servlet → Controller(控制器)
JSP → View(视图)
JavaBean → Model(模型)
✔ 推荐做法:
Servlet 是“写 Java 生成页面”,JSP 是“写页面嵌入 Java”。
如果你愿意,我也可以帮你画一张 Servlet + JSP 执行流程图,或者结合 Spring MVC 讲它们现在为什么用得少了。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。