JavaWeb-05-JSP规范-03-Servlet和JSP文件分工
1.Servlet和JSP之间的分工
- Servlet:负责处理业务并得到【处理结果】---->大厨
- JSP:不负责处理业务,主要人物是将Servlet中的【处理结果】写入响应体---->传菜员
2.Servlet和JSP之间的调用关系
Servlet工作完毕后,一般通过请求转发方式,向Tomcat服务器申请调用JSP
3.Servlet和JSP之间的数据共享
一般通过【请求作用域对象】来实现数据共享。
- Servlet将处理结果添加到请求作用域对象后,通过请求转发将请求对象交给JSP文件。
- JSP文件运行时读取请求作用域对象中的处理结果。、
4.演示
4.1演示流程
创建一个网站MyWeb,创建一个Servelt接口实现类【OneServlet】和一个JSP文件【index_02.jsp】。
在OneServlet中将一个存储着用户数据的Map集合放入请求作用域对象中,然后通过请求转发方式调用index_02.jsp文件。
index_02.jsp文件读取请求作用域对象中的Map集合,然后将其中的用户数据写入到html表格中。
4.2代码实现
4.2.1OneServlet
package com.tsccg.controller;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
* @Author: TSCCG
* @Date: 2021/08/23 15:08
*/
public class OneServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Map<Integer,String> map = new HashMap<>();
map.put(1,"张三");
map.put(2,"李四");
map.put(3,"王五");
map.put(4,"赵六");
request.setAttribute("key1",map);
request.getRequestDispatcher("index_02.jsp").forward(request,response);
}
}
4.2.2index_02.jsp
<%@ page import="java.util.Map" %>
<%@ page import="java.util.Set" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
Map<Integer,String> map = (Map<Integer, String>) request.getAttribute("key1");
%>
<%--输出--%>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<td>编号</td>
<td>姓名</td>
</tr>
<%
Set<Map.Entry<Integer,String>> users = map.entrySet();
for (Map.Entry<Integer, String> user : users) {
%>
<tr>
<td><%=user.getKey()%></td>
<td><%=user.getValue()%></td>
</tr>
<%
}
%>
</table>