一. Servlet的三大职责

  1. 接受请求参数(封装);
  2. 调用业务方法处理业务(调用业务service层);
  3. 响应请求(跳转页面或其他Servlet

二. 为什么需要共享信息与页面跳转

  1. servlet:主要是做动态页面 特点java为主+html为辅;
  2. jsp:主要是做动态页面。html为主 + java为辅(jsp本质上就一个特殊的servlet)

三. 跳转方式

  1. 请求转发

    1
    2
    //请求转发的代码:
    req.getRequestDispatcher("路径").forward(request, response);
    1. 1 特点:地址栏不发生改变、一次请求、可以访问WEB/INF的资源、共享数据、不可以跨域访问(比如访问百度)
  2. 重新定位方向

    1
    2
    //重定向跳转的方式:
    resp.sendRedirect("路径");//直接跳转

    2.1 特点:地址栏发生改变、多次请求(两次请求)、不可以访问WEB/INF的资源、不共享数据、可以跨域访问(比如访问百度)

  3. 何时使用请求转发和重定向

    • 如果在一次请求中,要共享数据,就使用请求转发;

    • 如果要访问WEB- INF下面的资源,请使用请求转发;

    • 如果要跨域访问用重定向;

    • 新增/修改/删除之后,都要重定向。

      | | 请求转发(forward) | 重定向(redirect) |
      | ——————— | :—————————————————————————: | :———————————-: |
      | 访问 WEB-INF | √ | × |
      | 传参数 | √ | × |
      | 访问外网 | × | √ |
      | 重复提交的问题 | 有 | 无 |
      | 路径变化 | 无 | 有 |
      | 代码 | req.getRequestDispatcher(path).forward(req, resp); | resp.sendRedirect(path) |

四. jsp简介

  1. JSP(java server page)java服务器端(动态)网页,JSP就是Java中用来做动态网页的技术;
  2. JSP底层就是一个Servlet,在执行的时候先转成Servlet然后同样要经历Servlet的生命周期;

五. jsp三大指令

  1. page:页面指令

    1.1 <%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" ... >

    • language=”java“:语言只有java
    • contentType="text/html; charset=UTF-8":输出的页面类型,相当于在Servlet里面写:resp.setContentType("text/html;charset=utf-8")
    • pageEncoding="UTF-8"
    • errorPage:如果当前页面出错了,我就跳转到errorPage对应的页面中
  2. include:包含指令

    1
    <%@ include file="/include/a.jsp"%>
  1. taglib:标签指令

  2. 指令的语法格式<%@ 指令名 属性1=“属性值1” 属性2=“属性值2” …..%>

六: jsp九大内置对象

内置对象
application ServletContext 全局对象
session HttpSession 会话对象
request HttpServletRequest 请求对象
pageContext PageContext 当前页对象
response HttpServletResponse 响应对象
out JspWriter 输出对象
page this 当前对象
config ServletConfig 配置对象
exception 异常对象

七. 四大作用域对象

对象(叫法) 范围
PageContext pageContext 当前页面(作用不大) 当前页,直接使用就是,根本不需要在放到对象里面
HttpServletRequest request 一次请求(必需请求转发)
HttpSession session(多个对象) 一次会话
ServletContext application 整个应用(有且只有一个对象)
  1. pageContext:每次访问的时候创建,可以有多个;
  2. request:每次请求的时候创建,可以有多个;
  3. session:每次会话的时候创建,不同人打开不同的浏览器,就创建多个,可以有个多个;
  4. application:整个应用有且只有一个对象,tomcat启动的创建,关闭的时候销毁;

八. 作用域对象的使用 添加、修改、查询、删除

image-20220727114535164