在eclipse中新建jsp文件需确保项目为dynamic web project,web根目录(webcontent或src/main/webapp)已正确配置于deployment assembly,且关联了servlet api的server runtime(如tomcat),jre≥8,文件以utf-8编码保存并配合html meta声明。

在Eclipse的Dynamic Web Project里右键新建JSP文件
必须确保项目类型是 Dynamic Web Project,普通Java项目或Static Web Project不支持JSP向导。右键点击 WebContent(老版本)或 src/main/webapp(Maven结构)目录 → New → Other… → 展开 Web → 选择 JSP File → 点击 Next。
新建时提示“The selected directory is not a valid web root”
这是最常见的报错,说明Eclipse没识别出Web根目录。检查以下几点:
- 项目是否已配置为Dynamic Web Project:右键项目 → Properties → 查看 Project Facets 中是否勾选了 Dynamic Web Module
-
WebContent或src/main/webapp是否被正确标记为Deployment Assembly中的Web资源目录(Properties → Deployment Assembly) - 如果用Maven,确认
pom.xml中有maven-war-plugin且webappDirectory指向正确路径
新建后JSP里出现“Unresolved compilation problem”或红叉
不是语法错误,而是JRE或Servlet API未就位。关键检查:
- 项目使用的JRE必须 ≥ JDK 8(JSP 2.3+ 要求):右键项目 → Properties → Java Build Path → Libraries → 确认JRE System Library版本
- 必须有Servlet API依赖:Dynamic Web Project会自动添加
javax.servlet.jsp和javax.servlet的Server Runtime库(如Tomcat),若缺失 → Build Path → Add Library → Server Runtime → 选已配置的Tomcat - 新建时勾选了
Use JSP template,但模板引用了不存在的taglib(如JSTL)→ 删除或补全对应的JAR
生成的JSP头部有但浏览器乱码
这个声明只影响服务器响应头,不控制页面实际编码。真正起作用的是HTML meta和响应头协同:
- 确保JSP文件本身以UTF-8保存(右键文件 → Properties → Resource → Text file encoding)
- 在
中显式加:<meta charset="UTF-8"> - 如果用Filter或Servlet设置过
response.setCharacterEncoding("GBK"),会覆盖JSP声明,需统一为UTF-8










