jsp九大内置对象

1.request:客户端发送给服务器的所有数据,所有信息,都会被封装在request对象中:

                请求行+请求头+请求体=requestjsp九大内置对象_第1张图片

	
请求行 请求方式:<%= request.getMethod()%>
请求url:<%= request.getRequestURI()%>
请求头 Accept:<%= request.getHeader("Accept") %>
User-Agent:<%= request.getHeader("User-Agent") %>
Accept-Encoding:<%= request.getHeader("Accept-Encoding") %>
Host:<%= request.getHeader("Host") %>
其他信息 客户端ip:<%=request.getRemoteAddr() %>
web应用所在路径:<%=request.getRealPath("/") %>
jsp九大内置对象_第2张图片

2.response:相应内置对象,服务器响应给客户端的所有数据,都会被先封装进response中,再从response中取出来,生成一个http响应

response.getWriter():用于获取一个字符输出流,该流起点为服务器,终点为客户端

3.out:该对象是一个字符输出流,该流可以向客户端浏览器发送数据。

         注:除该流之外,getOutputStream()可以获取一个字节流,这两个流方向一致,关系为互斥,不能同时使用

              如果非要使用response.getOutputStream()获取流,必须先让out失效。

		out.clearBuffer();
		out=pageContext.pushBody();
4.session:会话范围,在jsp中特指一个用户从打开一个网站的任何一个页面开始,到关闭了该网站的所有页面为止。

    session方法:

新会话? <%=session.isNew() %>
会话id <%=session.getId() %>
会话创建时间 <%=session.getCreationTime() %>
上次会话访问 <%=session.getLastAccessedTime() %>
当前系统时间 <%=System.currentTimeMillis() %>
会话闲置时间 <%=System.currentTimeMillis() - session.getLastAccessedTime() %>
让会话失效 <% //session.invalidate(); %>

jsp九大内置对象_第3张图片

5.application:应用对象,应用范围,从部署web应用开始,到卸载web应用为止,算一次应用范围。

	application.setAttribute("a", "123");
	application.getAttribute("a");
	application.removeAttribute("a");
在application中设置,获取,删除参数,也可以在web.xml中设置初始化参数,在jsp中获取
  
  	abc
  	bca
  

<%=application.getInitParameter("abc") %>

6.pageContext:页面范围对象,在页面之内可以传参,除此之外,该对象可以获取其他8个内置对象。

       该功能的定义为九大内置对象的方法设置提供了极大便利,因为如果九个内置对象拥有同一个方法,

        不需要定义九种参数,而是传入一个pageContext即可。

	pageContext.forward("b.jsp");//java代码版本的请求转发
	pageContext.include("b.jsp");//java代码版本的动态包含

7.exception:异常对象,要使用该内置对象,必须在jsp页面上添加一个指令元素

<%@ page errorPage="true" %>
<%@ page errorPage="b.jsp" %>//在页面上添加该指令元素可以指定出错后的跳转页面
在b.jsp上可以进行异常输出:

<%@ page language="java"  pageEncoding="utf-8"%>
<%@ page isErrorPage="true" %>




b.jsp


<%=exception %>

jsp九大内置对象_第4张图片

8.config:用于获取jsp页面的初始化参数。

   
  	aa
  	/b.jsp
  	
  		x
  		hhhhh
  	
  
  
  	aa
  	/b.php
  
在web.jsp中进行以上设置,就可以在特定的jsp页面中设置初始化参数
由于进行了servlet映射,访问b.php并获取初始化参数
<%=config.getInitParameter("x") %>

即可在b.jsp页面中看到结果


9.page:代表当前jsp页面对象本身,它其实就是this,它可以获取page指令元素的info属性的内容

jsp九大内置对象_第5张图片

10.jsp中的四大范围:

     在一个jsp页面设置四大范围,并在该页面获取

<%
	pageContext.setAttribute("a", "页面范围");
	request.setAttribute("a", "请求范围");
	session.setAttribute("a", "会话范围");
	application.setAttribute("a", "应用范围");
%>
<%=pageContext.getAttribute("a") %>
<%=request.getAttribute("a") %>
<%=session.getAttribute("a") %>
<%=application.getAttribute("a") %>

从当前页面进行请求转发到b.jsp,再次获取四大范围


jsp九大内置对象_第6张图片

可以看到页面范围丢失。

若从该界面进行跳转,直接改变链接访问b.jsp:

jsp九大内置对象_第7张图片

可以看到请求范围也随之丢失。

此时再关闭浏览器,重新打开并直接访问b.jsp

jsp九大内置对象_第8张图片

看到会话范围丢失。

重新部署web应用,并直接访问b.jsp

jsp九大内置对象_第9张图片

看到所有范围均无法获取到,由此可见,jsp中四大范围大小以此为:

pageContext

你可能感兴趣的:(web相关,java,java,web,jsp,html,服务器)