资讯动态

JSP上机实习报告实战解析:从1+1到登录判断与JavaBean封装

发布时间:2026/10/23 8:02:59 来源:尧图企业网站定制
简介这份JSP上机实习报告文档面向高校Java Web课程学习者尤其适合正在完成JSP开发技术实验或期末上机任务的学生参考。内容围绕六个典型实验题目展开涵盖在JSP页面中用Java代码完成算术运算并输出结果、创建BookInfo与DoString等JavaBean封装数据、实现字符串中尖括号的HTML实体转换以及基于JavaBean接收用户名密码并完成登录判断与页面转发最后附有实习心得与总结可帮助读者理清实验思路、对照代码查漏补缺。资源包共1个doc文件约38KB结构紧凑便于直接查阅与打印。目前已有102人学习下载适合需要快速上手JSP基础语法、JavaBean规范及页面跳转机制的初学者也可作为课程实验报告的格式与内容参考。1. 从一份 JSP 上机实习报告说起为什么它值得你下载如果你正在学 Java Web或者要带人入门 Servlet/JSP这份 JSP 上机实习报告.doc 大概率能帮你省下不少翻书的时间。它不是什么大厂架构文档而是一份实打实的课程作业合集把 JSP 开发里最基础也最容易翻车的几个环节——页面里嵌 Java 代码、JavaBean 封装、页面跳转、字符串转义——全部用可运行的代码串了一遍。整份文档按题目组织每道题都有题目描述和对应代码从最简单的11输出到登录判断、留言板、工具类封装基本覆盖了 JSP 入门阶段该练的手感。适合谁刚学完 Servlet 想找练手项目的新手、需要一份现成实验参考的在校生以及想快速回忆 JSP 写法的老开发。下面我按“能干什么 → 怎么跑 → 怎么改”的顺序把这份文档拆开讲。2. 项目定位与技术栈一份典型的 JSP 课程实验合集2.1 这份文档到底包含哪些题目从正文看这份实习报告至少包含六道题每道题都对应一个 JSP 核心知识点题号题目内容涉及知识点第一题JSP 中计算 11 并显示表达式标签% %、页面指令第四题创建 BookInfo JavaBeanJavaBean 规范、getter/setter第五题创建 DoString 工具类转义静态工具方法、HTML 实体转义第六题JavaBean 接收用户名密码并判断登录请求参数接收、页面转发其他留言输入与展示表单提交、请求处理这些题目不是随便凑的它们对应了 JSP 开发中最常见的几个动作在页面里写 Java、把数据封装成对象、处理用户输入、做页面跳转。你把这六道题跑通基本就理解了 JSP 的请求-响应模型。2.2 技术栈与运行环境这份文档用的是最经典的 Java Web 技术组合JSP作为视图层负责展示和接收输入JavaBean作为数据模型封装 BookInfo 这类实体Servlet 容器文档里没明说但 JSP 要跑起来必须有容器常见做法是用 TomcatIDE正文提到 Eclipse创建动态 Web 项目JDKJSP 编译需要 JDK不是 JRE提示文档里 pageEncoding 出现过 ISO-8859-1 和 utf-8 混用的情况这是新手最容易踩的编码坑后面避坑章节会细说。2.3 目录结构推测与文件组织虽然文档本身是 .doc 格式但按 JSP 动态 Web 项目的标准结构你把它还原成工程后大概长这样JspLab/ ├── src/ │ ├── hbe/ │ │ └── BookInfo.java │ └── hby/ │ └── DoString.java ├── WebContent/ │ ├── index.jsp │ ├── login.jsp │ ├── loginResult.jsp │ ├── messageInput.jsp │ └── messageList.jsp └── WEB-INF/ └── web.xmlsrc下放 Java 类WebContent下放 JSP 页面WEB-INF放部署描述符。这个结构是 Eclipse 动态 Web 项目的默认布局你照着建就不会乱。3. 核心代码逐题拆解从 11 到登录判断3.1 第一题在 JSP 里算 11 并输出这道题看着简单但它让你第一次把 Java 代码嵌进 HTML。文档里的核心代码是% page languagejava import.* pageEncodingutf-8% !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd html head title计算结果/title /head body %-- 表达式标签直接输出 11 的结果 --% h21 1 % 1 1 %/h2 /body /html逻辑说明% 1 1 %是 JSP 表达式标签容器会把它翻译成out.print(1 1)所以页面显示1 1 2。参数方面pageEncodingutf-8决定这个 JSP 文件本身的编码contentType决定响应给浏览器的编码两个最好保持一致。我一般会在这里多写一句% page contentTypetext/html;charsetutf-8 %否则中文可能变问号。文档里只写了 pageEncoding这是常见做法但不够完整。3.2 第四题BookInfo JavaBean 的封装JavaBean 是 JSP 里传数据的标准载体。文档里的 BookInfo 类package hbe; public class BookInfo { private String name; private String price; private String stock; private String author; public String getName() { return name; } public void setName(String name) { this.name name; } public String getPrice() { return price; } public void setPrice(String price) { this.price price; } public String getStock() { return stock; } public void setStock(String stock) { this.stock stock; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author author; } }逻辑说明四个属性全部私有通过 public 的 getter/setter 暴露。这是 JavaBean 规范的核心——无参构造 私有字段 公共访问器。参数类型都是 String文档明确要求如此虽然 price 和 stock 用 String 不太合理但作为练习可以接受。在 JSP 里用jsp:useBean就能直接创建和赋值jsp:useBean idbook classhbe.BookInfo scoperequest/ jsp:setProperty namebook propertyname valueJava Web 入门/ jsp:setProperty namebook propertyprice value59.9/ p书名jsp:getProperty namebook propertyname//p这样页面就不用写new BookInfo()了容器帮你管理生命周期。3.3 第五题DoString 工具类做 HTML 转义用户输入里如果带或直接输出会破坏页面结构甚至引发 XSS。文档里的 DoString 就是干这个的package hby; public class DoString { public static String change(String str) { str str.replace(, lt;); str str.replace(, gt;); return str; } }逻辑说明replace把换成lt;换成gt;这样浏览器就会把它们当普通字符显示而不是标签。参数 str 是原始输入返回值是转义后的安全字符串。注意文档里写的是str(,lt;)这明显是伪代码或笔误正确写法是str.replace(, lt;)。你抄的时候要改过来否则编译不过。在 JSP 里调用% page importhby.DoString % p安全输出% DoString.change(request.getParameter(content)) %/p3.4 第六题JavaBean 接收登录参数并转发这道题把 JavaBean 和页面跳转结合起来。文档里的登录判断逻辑% page languagejava import.* pageEncodingutf-8% % String username request.getParameter(username); String password request.getParameter(password); if (admin.equals(username) 000.equals(password)) { request.getRequestDispatcher(welcome.jsp).forward(request, response); } else { request.getRequestDispatcher(fail.jsp).forward(request, response); } %逻辑说明先从请求里拿 username 和 password然后判断是否等于 admin 和 000。相等就转发到欢迎页否则转发到失败页。forward是服务器内部跳转浏览器地址栏不变。参数说明request.getParameter拿的是表单提交的值表单 method 必须是 post 或 getinput 的 name 要和这里一致。文档里还提到用 JavaBean 接收那更规范的做法是jsp:useBean iduser classhbe.UserBean scoperequest/ jsp:setProperty nameuser property*/ % if (admin.equals(user.getUsername()) 000.equals(user.getPassword())) { request.getRequestDispatcher(welcome.jsp).forward(request, response); } else { request.getRequestDispatcher(fail.jsp).forward(request, response); } %property*会自动把同名请求参数塞进 JavaBean省去逐个 getParameter。4. 怎么把这份文档跑起来环境搭建与部署步骤4.1 准备 JDK 和 TomcatJSP 要跑先得有 JDK 和 Servlet 容器。我一般用 JDK 8 或 11 配 Tomcat 8.5/9.0版本太新反而容易和旧代码冲突。# 检查 JDK 是否装好 java -version javac -version # 下载 Tomcat 后解压设置 CATALINA_HOME export CATALINA_HOME/opt/tomcat9 export PATH$CATALINA_HOME/bin:$PATH # 启动 Tomcat startup.sh # Linux/Mac startup.bat # Windows启动后访问http://localhost:8080看到 Tomcat 欢迎页就说明容器 OK。4.2 在 Eclipse 里创建动态 Web 项目文档明确说用 Eclipse 创建动态 Web 项目步骤是File → New → Dynamic Web Project填项目名比如 JspLabTarget runtime 选你装的 Tomcat勾选 Generate web.xml deployment descriptorFinish然后把文档里的 Java 类放到src下对应包JSP 放到WebContent下。4.3 部署与访问在 Eclipse 里右键项目 → Run As → Run on Server选 Tomcat启动后浏览器会自动打开。你也可以手动把项目打成 war 丢进 Tomcat 的 webapps# 假设项目目录是 JspLab cd JspLab jar -cvf JspLab.war . cp JspLab.war $CATALINA_HOME/webapps/ # Tomcat 会自动解压部署访问http://localhost:8080/JspLab/index.jsp就能看到页面。4.4 验证每道题是否跑通第一题页面显示1 1 2第四题用jsp:useBean创建 BookInfo 并输出属性第五题输入script看是否被转义成文本第六题输入 admin/000 看是否跳欢迎页输错看是否跳失败页每道题单独建一个 JSP别全塞一个文件里否则调试起来很痛苦。5. 避坑与常见问题排查5.1 中文乱码pageEncoding 和 contentType 不一致现象页面中文显示成????或乱码。原因JSP 文件本身编码和响应编码不一致或者表单提交时没设编码。解决JSP 顶部统一写% page languagejava contentTypetext/html;charsetutf-8 pageEncodingutf-8%表单提交前加request.setCharacterEncoding(utf-8)。5.2 404JSP 放错目录或访问路径不对现象访问页面报 404。原因JSP 没放在 WebContent 下或者访问 URL 少了项目名。解决确认文件在WebContent或其子目录访问时带上项目名如/JspLab/login.jsp。5.3 500JavaBean 类找不到或包名不对现象用jsp:useBean时报ClassNotFoundException。原因类没编译或者 package 和 class 属性写错。解决确认 Java 类在src下且包名一致Eclipse 会自动编译到build/classes手动部署时要确保 class 文件在WEB-INF/classes下。5.4 登录判断永远失败equals 写反或参数名不匹配现象输入 admin/000 还是跳失败页。原因request.getParameter的 name 和表单 input 的 name 不一致或者用了比较字符串。解决检查表单input nameusername和getParameter(username)是否一致字符串比较必须用equals且常量放前面避免空指针。5.5 转义方法报错replace 写法错误现象DoString 编译不过。原因文档里str(,lt;)是伪代码不是合法 Java。解决改成str str.replace(, lt;);两个 replace 都要赋值回 str。6. 二次开发与改造把实验代码变成可复用的小工具这份文档的代码虽然简单但稍加改造就能变成你项目里的基础组件。我一般会做三件事。第一把 DoString 扩展成完整的 HTML 转义工具除了还要处理顺序很重要必须最先替换否则会把lt;里的又转一次public class HtmlEscape { public static String escape(String str) { if (str null) return ; return str.replace(, amp;) .replace(, lt;) .replace(, gt;) .replace(\, quot;) .replace(, #39;); } }第二把登录判断从 JSP 里挪到 Servlet 或 FilterJSP 只负责显示。这样职责清晰也避免页面里堆满 Java 代码。改造后 login.jsp 只提交表单LoginServlet 处理判断和转发。第三给 BookInfo 加一个toString和构造方法方便调试和初始化public BookInfo() {} public BookInfo(String name, String price, String stock, String author) { this.name name; this.price price; this.stock stock; this.author author; } Override public String toString() { return BookInfo{name name , price price }; }验证改造是否成功我习惯写一个简单的测试 JSP把所有工具类都调一遍看输出是否符合预期。比如转义工具输入a hrefx应该输出lt;a hrefquot;xquot;gt;。提示改造时别一次改太多每改一个类就重新部署验证一次否则出问题很难定位是哪个改动引起的。从那以后我每次拿到这种实验代码都强制自己先跑通原始版本再动手改绝不跳过验证直接重构。希望这份拆解能帮你把这份 JSP 上机实习报告真正用起来。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑