jsp 编程软件怎么选用?Eclipse/IDEA 与 Tomcat 版本配套指南
想写 JSP,第一个问题往往不是语法,而是“该装哪个软件”。JSP 本质是运行在服务端的 Java 页面,最终由 Servlet 容器(Tomcat、Jetty、WildFly)把 .jsp 翻译成 Servlet 类执行,因此编辑器 + JDK + 容器三件套缺一不可。本文按这套依赖关系说明选型与配置。

一、软件怎么选
- Eclipse IDE for Enterprise Java and Web Developers:官方下载地址 https://www.eclipse.org/downloads/ ,安装器(Eclipse Installer 2026-09 R)现在自带 JRE,Windows/x86_64 与 AArch64 都有包。选Enterprise Java 这个包才带 Web Tools Platform(WTP),普通 Java 包没有服务器视图和 JSP 编辑支持。
- IntelliJ IDEA Ultimate(https://www.jetbrains.com/idea/download/ ):对 JSP/Servlet 支持最好,内置 Tomcat 运行配置、JS 与 EL 表达式补全。注意社区版不支持 Java EE/Web 模块,只做 JSP 会明显缺功能。
- VS Code + Extension Pack for Java + 手动配 Tomcat:轻量,但缺少可视化服务器管理与部署向导。
- Apache NetBeans:对 Jakarta EE 开箱支持好,学校教材常用。
教材里偶尔还能见到的 MyEclipse 已经是商业闭源的老旧方案,新项目不建议。
二、容器与 JDK 版本对应
这是最容易踩的兼容性坑(命名也变过:Oracle 把 Java EE 捐给 Apache 后改叫 jakarta.*):
- Tomcat 9:实现 Servlet 4.0 / Java EE 8,包名仍是
javax.servlet.*,JDK 8~17 可用。老教程、老项目基本对应这一档。 - Tomcat 10.1:Servlet 6.0 / Jakarta EE 10,包名变成
jakarta.servlet.*,需要 JDK 11+。把老的 javax 项目直接丢进 Tomcat 10 会 404 或 ClassNotFound,要么用迁移工具(Tomcat 提供jakee-migration),要么留在 Tomcat 9。 - Tomcat 11:Servlet 6.1,支持 JDK 17+。
看依赖坐标即可判断项目属于哪一类:javax.servlet:javax.servlet-api:4.0.1(老)与 jakarta.servlet:jakarta.servlet-api:6.0.0(新)。
三、Eclipse 完整跑通步骤
- 装 JDK(建议 Temurin LTS,https://adoptium.net/ ),设
JAVA_HOME并把%JAVA_HOME%\bin加进 PATH,用java -version验证; - Eclipse → Window → Preferences → Java → Installed JREs,确认已识别;
- Server 视图(Window → Show View → Servers)→ 右键 New → Apache Tomcat,选择安装目录与版本;
- File → New → Dynamic Web Project,Target Runtime 选刚建的 Tomcat,勾选生成
web.xml; - 在
src/main/webapp下新建hello.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><body>
<h3>当前时间:<%= new java.util.Date() %></h3>
<% for (int i=0;i<3;i++) { out.println("<p>行 " + i + "</p>"); } %>
</body></html>
- 右键项目 → Run As → Run on Server。Eclipse 会把应用部署到
TOMCAT/wtpwebapps而不是webapps,这一点常让人找不到 war 包。
四、JSP 语法要点
- 脚本元素:
<% %>Java 语句、<%= %>输出表达式、<%! %>声明(成为 Servlet 成员变量,注意线程安全); - 指令:
<%@ page import="java.util.*" %>、<%@ include file="head.jspf" %>(编译期包含,静态); - 动作标签:
<jsp:include page="nav.jsp"/>(运行期包含,可传参)——与<%@ include %>的区别是面试高频点; - EL 表达式:
${user.name}、${fn:length(list)};JSTL 核心库:<c:forEach items="${list}" var="it">、<c:if test="${it.price gt 100}">,需在web.xml或依赖里引入 JSTL 实现(Tomcat 9 常需手动放jstl.jar)。
乱码处理三板斧:页面指令 contentType="text/html;charset=UTF-8";Tomcat 的 server.xml Connector 加 URIEncoding="UTF-8";数据库连接串加 ?useUnicode=true&characterEncoding=UTF-8。
五、JSP 现在还需要学吗
客观结论:JSP 属于逐步退场的技术。新项目通常选“后端只提供 REST/API + 前端框架(Vue/React)”或 Spring MVC + Thymeleaf 模板。JSP 的问题在于页面里混 Java 逻辑难维护、编译成 Servlet 后调错困难、且 Jakarta 迁移带来额外成本。但存量银行、政企系统大量是 JSP,做维护、二次开发或应付考试仍需掌握。
六、常见问题 FAQ
问:Eclipse 里没有 Dynamic Web Project 选项?
答:装的包不含 WTP。改用 Enterprise Java 包,或在 Marketplace 安装 “Eclipse IDE for Java EE Developers” 相关组件。
问:JSP 报 cannot be resolved to a type?
答:Servlet API 与 JSTL 没进构建路径。Maven 项目加 provided 作用域依赖,非 Maven 项目在 Build Path 里 Add Library → Server Runtime。
问:改了 JSP 不生效?
答:Tomcat 默认会检查 .jsp 时间戳重新编译,但如果开了开发模式之外的缓存、或浏览器缓存了页面,就会出现“看起来没变”。Ctrl+F5 强刷,并检查项目是否 Clean 后重新 Publish(Server 视图右键 → Clean)。
选型建议:学习/考试用 Eclipse Enterprise 包 + Tomcat 9;企业里若必须写 JSP,IDEA Ultimate 的开发体验明显更好;新项目优先考虑前后端分离。
生产内容,同时打通搜索引擎(SEO)与AI搜索引擎(GEO)流量入口的软件! 点击进入365建站器 »
