eclipse 不提供“jsp 项目”模板,必须创建 dynamic web project 并正确配置 target runtime(如 tomcat)、dynamic web module version(推荐 4.0)、web.xml 生成及 jsp 文件路径(webcontent 或 src/main/webapp),否则易出现 404、500、el 不解析等问题。

直接说结论:Eclipse 本身不提供“JSP 项目”模板,所谓“创建 JSP 项目”,本质是创建一个 Dynamic Web Project,并确保运行时环境(如 Tomcat)已正确集成、web.xml 或注解配置得当、JSP 文件放在 WebContent(或 src/main/webapp)下——否则页面打不开、EL 不解析、404 或 HTTP Status 500 是常态。
确认 Eclipse 已安装 Java EE 支持和服务器适配器
很多人卡在第一步:新建项目时根本看不到 Dynamic Web Project。这不是操作错,是环境没配好。
- 检查是否安装了
Eclipse IDE for Enterprise Java and Web Developers(推荐),或在已有 Eclipse 中通过Help → Install New Software添加Web, XML, Java EE and OSGi Enterprise Development功能组 - 确保
Server Adapters已安装:打开Window → Preferences → Server → Runtime Environments,如果列表为空,说明缺少Java EE Application Servers插件,需补装 - 别用纯
Eclipse IDE for Java Developers硬凑——它默认不含WTP(Web Tools Platform),强行建项目会缺web.xml向导、部署描述符验证、自动发布支持
创建 Dynamic Web Project 并设置兼容性参数
选错版本参数是后续 JSP 报错的高发原因,尤其是 Target runtime 和 Dynamic web module version 不匹配。
-
Target runtime必须选择已配置的 Tomcat(如Apache Tomcat v9.0),不能留空或选None -
Dynamic web module version推荐选4.0(对应 Servlet 4.0 / Tomcat 9+),若选2.5或3.0,则@WebServlet注解、jsp:useBean的简化写法、EL默认启用等特性会失效或报错 -
Configuration下拉建议选Java EE 8 Web Profile(Tomcat 9+)或Java EE 7 Web Profile(Tomcat 8.5),它会自动勾选Generate web.xml deployment descriptor——新手建议勾选,便于理解部署结构 - 项目名不要含中文或空格,
Project name建议全小写加短横线(如hello-jsp),避免部署后路径 404
添加 JSP 文件并验证基础运行流程
JSP 不是丢进项目就能跑,目录位置、编码、服务器启动方式都影响结果。
- JSP 文件必须放在
WebContent目录下(不是src!不是resources!),例如:WebContent/index.jsp;若用 Maven 结构,则放src/main/webapp/index.jsp - 新建 JSP 时右键
WebContent → New → JSP File,别用普通New → File手动建,否则可能缺pageEncoding和contentType声明 - 确保 JSP 顶部有标准声明:
,缺pageEncoding会导致中文乱码,缺contentType可能被浏览器当纯文本渲染 - 启动服务器前,先右键项目 →
Properties → Project Facets,确认Dynamic Web Module和Java版本已勾选且无感叹号;再右键服务器 →Add and Remove,把项目加进去,别只点绿色三角形直接 run
常见 404 / 500 错误的快速定位方法
页面打不开?别急着重做项目,先看三处日志和配置:
- 控制台输出里找
SEVERE或Caused by:行——如果是ClassNotFoundException: org.apache.jasper.servlet.JspServlet,说明 Tomcat 没正确关联到项目(Target runtime为空或错) - 浏览器地址栏 URL 是否以
http://localhost:8080/项目名/xxx.jsp开头?如果漏了项目名(如直接访问/index.jsp),就是 404;项目名大小写也敏感 - 检查
WebContent/WEB-INF/web.xml里有没有意外删掉的servlet-mapping(对纯 JSP 通常不需要,但若删了<servlet></servlet>块里的JspServlet声明,Tomcat 9+ 可能不响应 JSP 请求) - 临时在 JSP 里加
,如果显示时间说明 JSP 编译执行正常;如果原样输出代码,说明EL被禁用——检查web.xml中<jsp-config></jsp-config>是否设了<el-ignored>true</el-ignored>
真正麻烦的从来不是“怎么点菜单”,而是 Target runtime 和 Dynamic web module version 的隐式耦合、WebContent 目录被 Maven 插件忽略、或者 Tomcat 启动时没触发自动发布——这些细节不会报红叉,但会让整个流程卡死在“页面空白”或“找不到资源”。










