学习记录22
一、JSP与Servlet的分工
1、Servlet 与 JSP 的分工
-
Servlet: 负责处理业务,并得到处理结果 —————— 厨师
-
JSP: 不负责处理业务,主要将 Servlet 中处理结果写入到响应体 —————— 服务员
2、Servlet 与 JSP 之间的调用关系
- Servlet 处理业务后,一般通过请求转发方式,向 Tomcat 申请调用JSP
3、Servlet 与 JSP 之间如何实现数据共享
-
Servlet 将处理结果添加到【请求作用域对象】
-
JSP 文件在运行时从【请求作用域对象】得到处理结果
-
示例:浏览器向服务端的 Servlet 发送请求,Servlet 向 Tomcat 申请 JSP 文件,JSP 文件显示。
数据由 Servlet 运算后放入请求作用域对象,JSP 文件从请求作用域对象中获取。
public class OneServlet extends HttpServlet {
// 处理业务,得到处理结果 ————> 查询学员信息
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Student stu = new Student(10, "DIO");
Student stu1 = new Student(20, "JOJO");
List stuList = new ArrayList();
stuList.add(stu);
stuList.add(stu1);
// 将处理结果添加到请求作用域对象
request.setAttribute("info", stuList);
// 通过请求转发方案,向Tomcat申请JSP文件,同时将request与response通过Tomcat交给JSP文件
request.getRequestDispatcher("user_show.jsp").forward(request, response);
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
// 从请求作用域对象中得到OneServlet添加进去的数据集合
List<Student> infoList = (List) request.getAttribute("info");
%>
<!--将处理结果写入响应体-->
<table border="2" align="center">
<tr>
<td>用户编号</td>
<td>用户姓名</td>
</tr>
<%
for (Student student : infoList){
%>
<tr>
<td><%=student.getId()%>></td>
<td><%=student.getSname()%></td>
</tr>
<%
}
%