Java学习笔记之JSP内置对象

原创 2017年01月04日 23:31:52

    JSP的内置对象有request、response、pageContext、session、application、out、config、page、exception,这些内置对象在asp.net中也能找到对应或相似的对象。

   JSP的内置对象都有对应的作用域,分别为:page,request,session,application。顾名思义,page指当前页有效;request指仅在一次请求范围内有效;session值在浏览器和服务器进行一次会话的范围内有效;application指整个web应用中都有效,直到服务器停止后失效。

内置对象名 作用域
request request
response page
pageContext session
session page
application page
out page
config page
page page
exception page


1.request

常用方法

方法 描述
Object getAttribute(String name) 获取指定的属性值
void setAttribute(String name,Object value) 将指定属性的值设置成value
String getParameter(String name) 获取请求参数名name的参数值
Enumeration getParameterNames() 获取所有请求参数的名字集合
String[] getParameterValues(String name) 获取name请求参数的参数值
Map getParameterMap() 获取所有请求参数的参数名和参数值所组成的Map对象
void setCharacterEncoding(String encoding) 设置编码格式

requestobject.jsp

<body>
	<%
	 request.setCharacterEncoding("UTF-8");
		String username = request.getParameter("username");
		String strage = request.getParameter("age");
		int age = Integer.parseInt(strage);
	%>
	用户名:<%=username %><br>
	年龄:<%=age %>
</body>

request.jsp

<body>
	<form method="post" action="requestobject.jsp">
		用户名:<input type="text"  name="username"><br>
		年龄:<input type="text" name="age"><br>
		<input type="submit"  value="提交" > 
	</form>
</body>

2.reponse

response对象包含从jsp页面返回客户端的所有信息,其作用域是它所在的页面。

方法 描述
void addCookie(Cookie cookie) 添加一个Cookie对象
void addHeader(String name,String value) 添加HTTP头信息
void containsHeader(String name) HTTP头信息是否存在
void sendError(int) 发送错误状态码
void sendRedorect(String url) 重定向jsp文件
void setContentType(String contentType) 设置MINE类型与编码方式


responseform.jsp

  <form action="responseobject.jsp" method="post">
  			用户:<input type="text" name="username">
  			<br/>
  			<input type="submit" value="提交">
  </form>

resonseobject.jsp

<body>
 <%
 	String str=null;
  str=request.getParameter("username");
  if(str==null)
  {
	  str="";  
  }
  byte[] b=str.getBytes("ISO-8859-1");
  str=new String(b);
  if(str.equals(""))
  {
	  response.sendRedirect("responseform.jsp");
  }
  else{
	  out.println("欢迎");
	  out.println(str);
  }
 %>
</body>

 注意:response.sendRedirect()与<jsp:forward>最大差别在于<jsp:forward>只能在本网站内跳转,而response.sendRedirect()可以是任意地址页面


3.out对象

out内置对象是一个缓冲的输出流,用来向客户端返回信息。有些类似有asp.net的response.write

<body>
    <% 
    	int allbuf=out.getBufferSize(); //获取缓冲区大小
    	int remainbuf=out.getRemaining(); //获取剩余缓冲区大小
    	int usedbuf=allbuf-remainbuf;
    	out.println("已用缓冲区大小为:"+usedbuf);
    %>
</body>

4.session对象

login.jsp

<body>
   <%
   response.setCharacterEncoding("UTF-8");
   	String name="";
   if(!session.isNew()) //判断是否为新session
   {
	   name=(String)session.getAttribute("username");
	   if(name==null)
	   {
		   name="";
	   }
   }
   %>
   <p>欢迎</p>
   <form action="check.jsp" method="post">
   	用户名:<input type="text"  name="username" value=<%=name %>>
   	<input type="submit" value="提交">
   </form>
</body>

check.jsp

<body>
		<%
		response.setCharacterEncoding("UTF-8");
			String name=null;
		name=request.getParameter("username");
		if(name!=null)
		{
			session.setAttribute("username", name);
		}
		%>
		<a href="login.jsp" >登录</a> |
		<a href="loginout.jsp" >注销</a>
		<p>当前用户为:<%=name %></p>
</body>

loginout.jsp

<body>
   <%
   response.setCharacterEncoding("UTF-8");
   	String name=(String)session.getAttribute("username");
   session.invalidate();  //清空session
   %>
   <p><%=name %>再见</p>
   <a href="login.jsp">重新登录</a>
</body>

5.application对象

<body>
	<%
		String count=(String)application.getAttribute("count");
	 if	(count==null)
	 {
		 count="1";
	 }
	 else	{
		 count=Integer.parseInt(count)+1+"";
	 }
	 application.setAttribute("count", count);
	%>
	<%="<h1>人数为"+count+"</h1>"%>
</body>

6.pageContext

 pageContext是一个比较特殊的对象,使用它不仅可以设置page范围内属性,还可以设置其他范围内的属性。通过pageContext可以访问本页所有其他对象,如response,request,out等。类似于asp.net 的Context上下文


7.exception

exception对象是用来处理页面错误和异常。

exceptiontest.jsp

<html>
<head>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" errorPage="exceptionobject.jsp"
    pageEncoding="ISO-8859-1"%>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title></title>
</head>
<body>
     <% 
     	int a=5;
       int b=0;
     %>
     result=<%=(a/b) %>
</body>
</html>

exceptionobject.jsp

<html>
<head>
<%@ page import="java.lang.Throwable" %>
<%@page import="java.io.PrintStream" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" isErrorPage="true"%>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>???????</title>
</head>
<body>
	<%= exception.getMessage()%><br> <!--返回异常信息-->
	<%
		exception.printStackTrace(new PrintWriter(out)); <!--打印堆栈信息-->
	%>
</body>
</html>


注意:exception对象必须页面<%@page%>的isErrorPage属性设置成true才能得到




版权声明:本文为博主原创文章,未经博主允许不得转载。

JSP九大内置对象与Servlet学习笔记

JSP九大内置对象用途、作用域、生命周期、常用方法、重点知识总结,JSP与Servlet关系心得笔记,望各位大神提出宝贵意见。...
  • zhangliangzi
  • zhangliangzi
  • 2015年11月21日 16:04
  • 4890

JAVA新手学习笔记——java实战经典(李兴华)第一部分

作为java新手,java实战经典(李兴华)版本是我开始学习java的很投入的教材,我觉得写的不错,当然里面也有一些错误。我在这里面也说明这些错误。   第一部分是java学习的基础,总体来说还是按...
  • R383747787
  • R383747787
  • 2013年03月11日 09:05
  • 1401

java学习笔记之IO流总结(一)

输入输出作为所有程序都必需的部分   对于我们的java学习有特别重要的意义,以至于博主辛苦看了三天的流分布,跟大家分享一下 一.首先我们说一下io流的概念 流是一组有顺序的,有起点和终点的字节集...
  • qq_24235325
  • qq_24235325
  • 2016年10月14日 20:36
  • 1273

【Java Web 学习笔记】JSP内置对象

>out对象  向客户端浏览器输出各种数据
  • basefas
  • basefas
  • 2015年10月10日 21:03
  • 297

学习笔记-轻量级Java EE:jsp的指令、动作、内置对象

1.三个编译指令:page,include,taglib 格式: 静态编译指令 include      将被包含的页面嵌入到页面中,融合成一个页面;会将其所包含的所有其他编译指令都包含进来,而动...
  • freeliving
  • freeliving
  • 2013年12月20日 16:18
  • 694

JSP九大内置对象与Servlet学习笔记

JSP九大内置对象用途、作用域、生命周期、常用方法、重点知识总结,JSP与Servlet关系心得笔记,望各位大神提出宝贵意见。...
  • zhangliangzi
  • zhangliangzi
  • 2015年11月21日 16:04
  • 4890

J2EE学习笔记之JSP内置对象

JSP2.0中定义了9个JSP内置对象,这些对象不用显示声明,就可以直接引用;不需要通过创建其实例,就可以直接使用。 具体如下: request、response、session、applicat...
  • Code_Thinking
  • Code_Thinking
  • 2014年06月13日 10:31
  • 610

学习笔记之javaweb基础:jsp基本语法,内置对象,对JavaBean的操作语法

Template(模板)data:JSP引擎不处理的部分,比如HTML代码等。 JSP元素:JSP引擎处理的部分        编译器指令(DIRECTIVE):               页指令:...
  • jsloveyou
  • jsloveyou
  • 2013年10月11日 23:41
  • 726

JavaWeb学习笔记:初识JSP内置对象

1. request对象:代表客户端的请求信息,主要用于接收用过HTTP协议传送打服务端的数据(HTTP头信息、系统信息、请求方式以及请求参数等)。 1.1 获取请求参数值:request.getPa...
  • lyklykkk
  • lyklykkk
  • 2016年11月30日 19:24
  • 201

jsp学习笔记--内置对象--request对象

jsp学习笔记–内置对象–request对象HTTP通信协议是用户与服务器之间一种提交(请求)信息与相应信息(request/response)的通信协议。request是实现了ServletRequ...
  • qq_34149935
  • qq_34149935
  • 2016年10月24日 20:51
  • 131
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java学习笔记之JSP内置对象
举报原因:
原因补充:

(最多只允许输入30个字)