16.jsp结构

本文详细介绍了JSP在Web服务器中的工作原理,包括JSP容器如何与Web服务器协作,以及JSP文件如何被转化为Servlet进行处理。通过HTTP请求流程,展示了JSP从加载、转化、编译到动态生成HTML的全过程,强调了JSP引擎的效率优势。
摘要由CSDN通过智能技术生成

JSP 结构

网络服务器需要一个 JSP 引擎,也就是一个容器来处理 JSP 页面。容器负责截获对 JSP 页面的请求。本教程使用内嵌 JSP 容器的 Apache 来支持 JSP 开发。

JSP 容器与 Web 服务器协同合作,为JSP的正常运行提供必要的运行环境和其他服务,并且能够正确识别专属于 JSP 网页的特殊元素。

下图显示了 JSP 容器和 JSP 文件在 Web 应用中所处的位置。


JSP 处理

以下步骤表明了 Web 服务器是如何使用JSP来创建网页的:

  • 就像其他普通的网页一样,您的浏览器发送一个 HTTP 请求给服务器。

  • Web 服务器识别出这是一个对 JSP 网页的请求,并且将该请求传递给 JSP 引擎。通过使用 URL或者 .jsp 文件来完成。

  • JSP 引擎从磁盘中载入 JSP 文件,然后将它们转化为 Servlet。这种转化只是简单地将所有模板文本改用 println() 语句,并且将所有的 JSP 元素转化成 Java 代码。

  • JSP 引擎将 Servlet 编译成可执行类,并且将原始请求传递给 Servlet 引擎。

  • Web 服务器的某组件将会调用 Servlet 引擎,然后载入并执行 Servlet 类。在执行过程中,Servlet 产生 HTML 格式的输出并将其内嵌于 HTTP response 中上交给 Web 服务器。

  • Web 服务器以静态 HTML 网页的形式将 HTTP response 返回到您的浏览器中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在创建这些JSP页面时,你需要考虑一个基本的Web应用程序结构,比如一个学生管理系统中的宿舍管理部分。这些页面通常是用Java Server Pages (JSP)编写,结合Servlet或后端Java代码来处理数据操作。以下是一个简化的示例,用于介绍每个页面可能包含的内容: 1. **blank.jsp**: 这个页面通常是一个空白模板,用来加载其他动态内容。它可能会有一个简单的布局和导航,例如: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>宿舍管理系统</title> </head> <body> <h1>Welcome to Dorm Manager</h1> <!-- 这里可能会有一个跳转链接或者其他页面的导航 --> </body> </html> ``` 2. **passwordChange.jsp**: 用户更改密码的地方。需要包含表单元素来收集旧密码和新密码,以及提交按钮。后端需验证并更新数据库: ```jsp <form method="post" action="passwordChangeServlet"> <label for="oldPassword">旧密码:</label> <input type="password" id="oldPassword" name="oldPassword"> <br> <label for="newPassword">新密码:</label> <input type="password" id="newPassword" name="newPassword"> <br> <input type="submit" value="更改密码"> </form> ``` 3. **record.jsp**: 显示宿舍记录的列表,可能包括一个表格结构,列有宿舍号、入住学生等信息。可以通过查询数据库获取数据: ```jsp <table> <tr> <th>宿舍号</th> <th>学生姓名</th> <th>入住日期</th> </tr> <% // 这里通过Java代码遍历数据库结果集并生成HTML行 List<Record> records = (List<Record>) request.getAttribute("records"); for (Record record : records) { out.println("<tr><td>" + record.getRoomNumber() + "</td>...</tr>"); } %> </table> ``` 4. **recordSave.jsp**: 用于保存新宿舍记录的表单,可能包括输入框和验证。当用户提交数据,后端会保存到数据库: ```jsp <form method="post" action="recordServlet"> <label for="roomNumber">宿舍号:</label> <input type="text" id="roomNumber" name="roomNumber"> ... (添加更多字段) <input type="submit" value="保存记录"> </form> ``` 5. **student.jsp**: 展示学生信息的界面,可能有搜索、添加和编辑功能。同样,涉及数据库交互: ```jsp <form method="get" action="searchStudent"> <input type="text" id="searchTerm" name="searchTerm" placeholder="搜索学生..."> <input type="submit" value="搜索"> </form> <!-- 或者显示已知学生列表 --> <ul> <% List<Student> students = (List<Student>) request.getAttribute("students"); %> <% for (Student student : students) { %> <li><%= student.getName() %> - <%= student.getRoomNumber() %></li> <% } %> </ul> ``` 每个JSP页面都应与相应的Servlet(如passwordChangeServlet, recordServlet)进行通信,这些Servlet负责处理HTTP请求、数据验证和数据库操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端小歌谣

放弃很容易 但是坚持一定很酷

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值