servlet和jsp的原理和应用介绍

一. Servlet的三大职责

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

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

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

三. 跳转方式

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

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

  1. 何时使用请求转发和重定向
  • 如果在一次请求中,要共享数据,就使用请求转发;
  • 如果要访问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对应的页面中
  1. include:包含指令
<%@ 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启动的创建,关闭的时候销毁;

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

servletResponse 怎么返回指定的状态码 servlet数据返回jsp页面_重定向