ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

Tomcat部署JSP文件完整指南:手动部署+IDEA工程化实现 附404访问错误全排查

Tomcat部署JSP文件完整指南:手动部署+IDEA工程化实现 附404访问错误全排查 你好呀我是断弦承露感谢陪伴 小白博主在线求友 跟着小白学/Java/软件设计/鸿蒙开发/芯片开发专栏汇总《软件设计师》专栏 | 《Java》专栏 | 《 RISC-V 处理器实战》专栏 | 《Flutter鸿蒙实战》专栏 | 《React Native开发》专栏——|CSDN|——文章目录Tomcat部署JSP文件完整指南手动部署IDEA工程化实现 附404访问错误全排查 全文知识架构图 一、基础运行原理⚡ 二、方式一手动部署到本地Tomcat2.1 分步操作步骤1编写JSP代码步骤2规范保存文件步骤3部署到Tomcat目录步骤4浏览器访问验证2.2 部署执行流程图️ 三、方式二IntelliJ IDEA工程化部署3.1 分步操作步骤1创建Java Web项目第一步切换项目类型为 Jakarta EE第二步第一页基础配置第三步选择 Web 模板 绑定 Tomcat 9第四步创建项目步骤2编写JSP文件步骤3确认运行配置步骤4启动运行❗ 四、JSP访问404/URL错误专项排查 五、常见问题 FAQQ1JSP文件直接双击用浏览器打开不行吗Q2修改JSP代码后需要重启Tomcat吗Q3JSP的内置对象有哪些为什么out不用定义就能用Q4页面中文乱码和控制台日志乱码是一回事吗Q5必须放在ROOT目录吗能不能自己建文件夹 六、进阶拓展ASCII数值循环写法 官方参考链接Tomcat部署JSP文件完整指南手动部署IDEA工程化实现 附404访问错误全排查 文章摘要JSP是Java Web开发的入门核心技术必须部署到Servlet容器中才能运行。本文基于Tomcat 9.0.121稳定版本讲解两种主流部署方式单文件快速手动部署、IntelliJ IDEA工程化部署附带可直接运行的字母遍历示例代码并针对新手最高发的「URL错误/404找不到」问题做全场景排查所有步骤均可直接复现。 全文知识架构图JSP部署指南基础运行原理JSP技术定位Jasper引擎执行流程手动部署方式创建JSP源文件规范保存文件放入webapps目录浏览器访问验证IDEA工程化部署创建Java Web项目编写JSP代码配置Tomcat服务器启动运行验证404错误专项排查文件后缀隐藏问题部署路径匹配问题服务与端口问题上下文路径问题跨平台大小写问题常见问题FAQ进阶拓展写法 一、基础运行原理JSPJava Server PagesJava服务端页面是嵌入Java代码的动态网页技术不能直接用浏览器打开本地文件运行必须部署到实现了Servlet规范的Web容器中。Tomcat 9 内置Jasper 2.3 引擎对应实现JSP 2.3规范负责解析JSP文件。完整执行流程分为两步转译阶段首次访问时Jasper将JSP源码转换为标准的Java Servlet源文件.java编译阶段调用Java编译器将.java源文件编译为字节码文件.class。最终由Servlet执行页面逻辑输出标准HTML页面返回给浏览器。这也是第一次访问JSP页面响应稍慢后续访问速度明显提升的原因。⚡ 二、方式一手动部署到本地Tomcat适合快速验证单文件效果无需创建完整项目直接复用已安装的Tomcat环境。2.1 分步操作步骤1编写JSP代码新建文本文件写入如下示例代码。代码实现26个小写字母的遍历输出附带逐行注释% page contentTypetext/html;charsetUTF-8 pageEncodingUTF-8 languagejava % html head meta charsetUTF-8 title小写字母遍历输出/title style .letter-container { font-size: 18px; letter-spacing: 4px; margin-top: 12px; } /style /head body h326个小写英文字母输出结果/h3 div classletter-container % // currentChar循环控制变量存储当前遍历的字符 // 采用小驼峰命名语义清晰符合Java编码规范 char currentChar; // 利用小写字母ASCII码连续的特性从字符a遍历到z // char类型底层为数值存储支持直接自增运算 for(currentChar a; currentChar z; currentChar){ // out是JSP内置隐式对象类型为JspWriter // 作用是向响应页面输出文本内容无需开发者手动定义 // nbsp;是HTML空格实体用于字符间视觉分隔避免排版拥挤 out.print(currentChar nbsp;); } % /div /body /html 代码说明顶部page是JSP页面指令用于声明页面属性contentType指定浏览器解析的内容类型与编码pageEncoding指定文件本身的存储编码language指定脚本语言。示例为简化演示采用内联样式工程实践中建议将CSS样式抽离到独立文件实现结构与样式分离。步骤2规范保存文件选择「文件 → 另存为」按以下参数保存文件名letter.jsp编码UTF-8保存类型所有文件⚠️ 新手第一大坑Windows系统记事本默认保存编码为ANSI即GBK且默认隐藏已知文件类型的扩展名直接保存会出现两个问题文件实际名为letter.jsp.txt访问返回404文件编码为GBK与pageEncodingUTF-8冲突页面中文乱码。验证方法打开文件资源管理器顶部「查看」选项卡勾选「文件扩展名」确认文件名后缀仅为.jsp推荐使用VS Code、Notepad等编辑器避免记事本的编码坑。步骤3部署到Tomcat目录将保存好的letter.jsp文件放入Tomcat安装根目录下的webapps\ROOT文件夹中。目录说明ROOT是Tomcat的默认根应用目录部署在此目录下的资源访问路径无需加应用名前缀直接通过文件名即可访问。补充也可以在webapps下新建自定义文件夹如myapp放入JSP文件此时访问地址需要加上文件夹名作为上下文路径。单JSP文件可直接部署完整Web应用还需要遵循标准目录结构包含WEB-INF等目录。步骤4浏览器访问验证确保Tomcat处于启动状态控制台或logs/catalina.out中出现Server startup日志即为启动成功打开浏览器访问地址http://localhost:8080/letter.jsp页面正常显示26个连续小写字母即为部署成功。2.2 部署执行流程图实际为jsp.txt后缀正确未成功成功是否返回404编写JSP代码另存为jsp格式 UTF8编码确认文件后缀正确显示文件扩展名 重命名文件放入webapps对应目录启动Tomcat服务确认服务启动成功排查启动问题浏览器访问对应URL页面是否正常显示部署完成进入错误排查流程️ 三、方式二IntelliJ IDEA工程化部署适合正规项目开发IDEA自动完成编译、部署、同步是企业开发的标准方式。3.1 分步操作步骤1创建Java Web项目打开IDEA新建项目左侧选择「Java Enterprise」右侧配置项新版本 IDEA 把原来的「Java Enterprise」正式改名为 Jakarta EE 了入口就在左侧 Generators 分类下面。下面按步骤走第一步切换项目类型为 Jakarta EE在左侧列表的 Generators 分组下点击 Jakarta EE说明这就是旧版 IDEA 里的「Java Enterprise」因为 Java EE 已经正式更名为 Jakarta EE所以新版 IDEA 同步改了名字。点击后右侧界面会自动切换成 Web 项目的配置项。第二步第一页基础配置Name给项目命名比如 tomcat-jsp-demoLocation项目存放路径保持默认或自定义都可以Build system新手推荐选 Maven行业通用依赖管理更方便JDKTomcat 9 支持 Java 8 及以上全版本下面的 Add sample code 建议取消勾选自己写代码更清晰也方便理解第三步选择 Web 模板 绑定 Tomcat 9点击右下角的 Next 按钮进入第二页配置在 Templates 列表里勾选 Web Application新版的在本页点击 Application Server 下拉框选择你本地安装的 Tomcat 9.0.121如果下拉里没有点旁边的「New」→「Tomcat Server」选中你本地 Tomcat 的根目录即可Servlet 版本选择 Servlet 4.0和 Tomcat 9 实现的规范版本完全对应兼容性最好第四步创建项目点击右下角的 CreateIDEA 会自动生成标准 Web 项目结构并且自动配置好 Tomcat 运行配置。步骤2编写JSP文件在项目的src/main/webapp目录上右键新建「JSP/JSPX」文件命名为letter.jsp写入上述JSP代码并保存。步骤3确认运行配置IDEA右上角会自动生成Tomcat运行配置点击配置图标可检查「服务器」标签确认Tomcat安装路径、JDK路径正确「部署」标签确认已添加当前项目的部署记录应用上下文路径IDEA默认值为项目名概念说明应用上下文路径是Web应用的访问前缀用于区分同一Tomcat下的多个应用。例如上下文路径为jsp-demo则访问地址为[http://localhost:8080/jsp-demo/letter.jsp](http://localhost:8080/jsp-demo/letter.jsp)。步骤4启动运行点击右上角绿色启动按钮IDEA会自动启动Tomcat并部署项目浏览器自动打开项目根路径。在地址栏末尾追加/letter.jsp即可访问到页面效果。 说明IDEA部署模式下文件保存在项目源码目录中IDEA会自动同步到Tomcat的部署目录无需手动复制文件。❗ 四、JSP访问404/URL错误专项排查针对访问时出现「URL拼写可能存在错误请检查」、页面返回404的场景按出现概率从高到低逐一排查覆盖99%的新手场景排名错误原因验证方法解决方案1文件后缀被隐藏最高发开启文件扩展名后文件名显示为letter.jsp.txt重命名文件删除末尾的.txt后缀2部署路径不匹配文件放到了bin、conf等非部署目录或上下文路径写错手动部署必须放在webapps\ROOT或webapps\自定义应用名目录下访问地址与上下文路径保持一致3Tomcat未启动或启动失败[http://localhost:8080](http://localhost:8080)也无法打开运行bin/startup.bat查看日志确认启动成功无报错信息4端口号不匹配之前修改过Tomcat端口仍用8080访问查看conf/server.xml中HTTP Connector的port值使用正确端口访问5应用上下文路径错误IDEA部署的项目有应用名前缀直接访问根路径地址加上项目上下文路径如[http://localhost:8080/](http://localhost:8080/)项目名/letter.jsp6跨平台大小写不匹配Windows开发正常部署到Linux服务器返回404Linux系统路径严格区分大小写全流程统一使用小写文件名7浏览器缓存旧页面修改代码后刷新无变化或之前访问过404页面被缓存按CtrlF5强制刷新页面绕过本地缓存重新请求8应用部署失败启动日志有异常报错应用未正常加载查看logs/catalina.out日志排查启动阶段的错误信息快速定位技巧先访问[http://localhost:8080](http://localhost:8080)如果Tomcat官方欢迎页都打不开属于服务或端口问题如果欢迎页正常属于文件路径、文件名或上下文路径问题。 五、常见问题 FAQQ1JSP文件直接双击用浏览器打开不行吗不行。JSP是服务端动态技术其中的Java代码需要服务端容器编译执行。直接本地打开只会把代码当纯文本显示不会执行任何Java逻辑。必须部署到Web容器中通过HTTP协议访问。Q2修改JSP代码后需要重启Tomcat吗默认开发模式下不需要。Tomcat默认开启JSP热编译机制会自动检测文件更新并重新转译编译。注意生产环境通常会关闭热编译将development设为false提升性能此时修改JSP必须重启服务才能生效。Q3JSP的内置对象有哪些为什么out不用定义就能用JSP提供了多个隐式内置对象由Jasper引擎在编译时自动创建开发者可以直接使用。常用的有out输出、request请求、response响应、session会话、application全局上下文、config配置、pageContext页面上下文、page页面实例8个还有1个exception异常对象仅在声明了isErrorPagetrue的错误页面中可用普通页面无法访问。Q4页面中文乱码和控制台日志乱码是一回事吗不是同一问题解决方案完全不同页面中文乱码是JSP文件编码、page指令编码、浏览器解析编码三者不统一导致检查文件保存编码和page指令即可控制台日志乱码是Tomcat日志编码与Windows CMD编码不匹配导致修改logging.properties的控制台编码为GBK即可。Q5必须放在ROOT目录吗能不能自己建文件夹可以自建目录。在webapps下新建一个文件夹例如myapp把JSP文件放入其中访问地址即为[http://localhost:8080/myapp/letter.jsp](http://localhost:8080/myapp/letter.jsp)。每个独立的子文件夹对应一个独立的Web应用上下文。 六、进阶拓展ASCII数值循环写法除了直接用字符遍历也可以通过ASCII码数值遍历两种写法最终效果完全一致适合理解底层原理% // 小写字母a的ASCII码为97小写字母z的ASCII码为122 // 以整数形式循环遍历再强制转换为char字符 for(int asciiCode 97; asciiCode 122; asciiCode){ char letter (char) asciiCode; out.print(letter nbsp;); } %原理说明字符在计算机底层以ASCII数值存储小写字母a-z的ASCII码连续递增因此可以用整数循环后强转实现字符遍历。 官方参考链接Apache Tomcat 9 Jasper JSP引擎官方说明Tomcat 9 应用部署官方指南Tomcat 9 完整官方文档如果本文对你有帮助欢迎点赞、收藏⭐、评论、关注➕个人领域:C/java/Al/软件开发/芯片开发个人主页:「一名热衷协作的开发者在构建中学习期待与你交流技术、共同成长。」座右铭:「与其完美地观望不如踉跄地启程」
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表