JavaWeb-05-JSP规范-03-Servlet和JSP文件分工

JavaWeb-05-JSP规范-03-Servlet和JSP文件分工

1.Servlet和JSP之间的分工

  1. Servlet:负责处理业务并得到【处理结果】---->大厨
  2. JSP:不负责处理业务,主要人物是将Servlet中的【处理结果】写入响应体---->传菜员

2.Servlet和JSP之间的调用关系

Servlet工作完毕后,一般通过请求转发方式,向Tomcat服务器申请调用JSP

3.Servlet和JSP之间的数据共享

一般通过【请求作用域对象】来实现数据共享。

  1. Servlet将处理结果添加到请求作用域对象后,通过请求转发将请求对象交给JSP文件。
  2. 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>

4.3开始演示

JavaWeb-05-JSP规范-03-Servlet和JSP文件分工

JavaWeb-05-JSP规范-03-Servlet和JSP文件分工

上一篇:uniapp请求拦截


下一篇:JAVA Future类的详解