0

0

在Java里如何使用JSP与Servlet开发Web应用_JavaWeb基础开发实战

P粉602998670

P粉602998670

发布时间:2026-02-22 18:09:12

|

969人浏览过

|

来源于php中文网

原创

jsp+servlet组合虽仍被维护但不推荐用于新项目,因分层不清、难测试、模板逻辑混杂且tomcat10+默认禁用el和scriptlet;servlet是继承httpservlet的java类,需正确配置映射并重写doget/dopost,显式设置utf-8编码,避免拼html;jsp通过el从request等作用域取值,需注意空值判断与上下文路径匹配。

在java里如何使用jsp与servlet开发web应用_javaweb基础开发实战

Java Web 应用中,JSP 和 Servlet 是早期但仍在维护场景中广泛使用的组合;不过现在直接用 JSP + Servlet 开发新项目已不推荐——它缺乏清晰分层、易写难测、模板与逻辑混杂,且 JSP 在现代容器(如 Tomcat 10+)中默认禁用 EL 表达式和 Scriptlet,兼容性问题频出。

Servlet 是什么,为什么必须写 doGetdoPost

Servlet 是一个 Java 类,继承 HttpServlet,负责接收 HTTP 请求并生成响应。容器(如 Tomcat)在收到请求后,根据 URL 映射调用对应 Servlet 实例的 doGetdoPost 方法。

常见错误:只重写 service 方法,或漏写 @Override 导致方法未被调用;更隐蔽的是没在 web.xml 中配置 <servlet-mapping></servlet-mapping>,或用了注解但忘了加 @WebServlet("/xxx")

  • Tomcat 9+ 默认不扫描 @WebServlet 注解,需确认 web.xml<web-app></web-app> 根标签 version ≥ 3.0,且没有 metadata-complete="true"
  • doGetdoPost 中必须显式设置响应编码:response.setCharacterEncoding("UTF-8"),否则中文乱码
  • 不要在 Servlet 中拼 HTML 字符串返回,那是 JSP / 模板引擎该干的事

JSP 页面里怎么安全取 Servlet 传来的数据

JSP 不是 Java 类,而是被容器编译为 Servlet 的模板文件。它能访问四种作用域对象:pageContextrequestsessionapplication。最常用的是 request,对应 Servlet 中 request.setAttribute("key", value) 后,在 JSP 用 ${key} 取值。

立即学习Java免费学习笔记(深入)”;

AI Home Tab
AI Home Tab

把你喜欢的AI放到首页

下载

容易踩的坑:

  • 启用了 JSP Scriptlet(),但 Tomcat 10 默认禁用,需在 conf/web.xml 中取消注释 <init-param></init-param> 下的 scripting-invalid 并设为 false(不建议)
  • EL 表达式失效:检查是否写了 ,或 web.xml 声明的 servlet 版本过低
  • request 取值时没判空,JSP 报 NullPointerException;应改用 ${empty key ? 'default' : key}

如何让表单提交到 Servlet 而不是跳转到 404

表单的 action 属性必须与 Servlet 的映射路径严格一致,且注意上下文路径(context path)。例如应用部署为 /myapp,Servlet 映射为 @WebServlet("/login"),则表单应写:<form action="%24%7BpageContext.request.contextPath%7D/login" method="post"></form>

常见失败原因:

  • Servlet 类没加 @WebServlet,也没在 web.xml 配置,导致容器根本不知道这个路径对应谁
  • 路径写成绝对路径 /login,忽略 context path,结果请求发到了根应用下
  • Servlet 编译失败(比如缺少 javax.servlet 依赖),Tomcat 启动时报 ClassNotFoundException,但页面仍显示 404,日志里才见真章
  • POST 提交后浏览器地址栏仍是 GET 路径,误以为没进 Servlet —— 其实进了,只是你没做跳转或输出,响应体为空而已

真正麻烦的不是写不出登录页,而是当业务变复杂后,request.setAttribute 塞十几个变量、JSP 里嵌套三层 <foreach></foreach>、再混几个 ,调试时连断点都打不到逻辑哪一步。这时候你就知道,为什么 Spring MVC 的 @Controller + Thymeleaf 会成为事实标准了。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
如何配置Tomcat环境变量
如何配置Tomcat环境变量

配置Tomcat环境变量需要在系统中添加CATALINA_HOME变量,并将Tomcat的安装路径添加到PATH变量中。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

117

2023.10.26

idea如何集成Tomcat
idea如何集成Tomcat

idea集成Tomcat的步骤:1、添加Tomcat服务器配置;2、配置项目部署;3、运行Tomcat服务器;4、访问项目;5、注意事项;6、关闭Tomcat服务器。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

171

2024.02.23

怎么查看Tomcat源代码
怎么查看Tomcat源代码

查看Tomcat源代码的步骤:1、下载Tomcat源代码;2、在IDEA中导入Tomcat源代码;3、查看源代码;4、理解Tomcat的工作原理;5、参与社区和贡献;6、注意事项;7、持续学习和更新;8、使用工具和插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

98

2024.02.23

常见的tomcat漏洞有哪些
常见的tomcat漏洞有哪些

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

169

2024.02.23

tomcat日志乱码怎么解决
tomcat日志乱码怎么解决

tomcat日志乱码的解决办法:1、修改tomcat的日志编码设置;2、检查ide的编码设置;3、检查操作系统的编码设置;4、使用过滤器处理日志;5、检查外部系统的编码设置;6、检查文件编码方式等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

155

2024.02.23

weblogic和tomcat有哪些区别
weblogic和tomcat有哪些区别

weblogic和tomcat的区别:1、功能;2、性能;3、规模;4、价格;5、安全性;6、配置和管理;7、社区支持;8、集成能力;9、升级和更新;10、可靠性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

200

2024.02.23

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

243

2024.02.23

tomcat启动闪退怎么解决
tomcat启动闪退怎么解决

tomcat启动闪退的解决办法:1、检查java环境;2、检查环境变量配置;3、检查端口被占用;4、检查配置文件编码;5、检查启动时需要的配置文件;6、检查相关文件是否丢失;7、检查防火墙和杀毒软件设置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

167

2024.02.23

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

1030

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 3.8万人学习

C# 教程
C# 教程

共94课时 | 10万人学习

Java 教程
Java 教程

共578课时 | 70.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号