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才能得到




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

相关文章推荐

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

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

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

Template(模板)data:JSP引擎不处理的部分,比如HTML代码等。 JSP元素:JSP引擎处理的部分        编译器指令(DIRECTIVE):               页指令:...

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

JSP九大内置对象用途、作用域、生命周期、常用方法、重点知识总结,JSP与Servlet关系心得笔记,望各位大神提出宝贵意见。...

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

jsp学习笔记–内置对象–request对象HTTP通信协议是用户与服务器之间一种提交(请求)信息与相应信息(request/response)的通信协议。request是实现了ServletRequ...

JSP学习笔记(二):JSP内置对象

一、out对象 1、原理:out的输出,会先进out缓冲(page指令可以控制),然后写入response,最后一起输出到浏览器。 2、jsp正常的输出,都是通过out.write...

JSP学习笔记二之JSP的语法和9大内置对象(上)

今天还是在学习JSP的内容。随着对JSP的了解,发现JSP的主要用途和功能了。 一、首先是JSP的语法部分: 1   代码片段 %>  这里是脚本程序,可以在里面写任意的java代码。 如果代码中...

JSP学习笔记(一)------JSP九大内置对象

JSP学习笔记(一) 一、一些JSP页面概念: pageEncoding:编写本jSP文件时,所使用的编码 contentType="text/html;charset=UTF-8":服务器将本jsp...

JSP学习笔记(3)-JSP内置对象

有些对象不用声明就可以在JSP页面的Java程序片和表达式部分使用,这些对象就是JSP的内置对象。  JSP常用的内置对象有request,response,session,application,o...

Java Web 学习笔记 1——内置对象

jsp 内置对象 jsp中,有9大内置对象有:  1)out. 2)request. 3)response.4)session.5)application; //常用 6)page 7)pageCon...
  • sjyhehe
  • sjyhehe
  • 2015年03月08日 14:57
  • 690

Java web 开发笔记 第三章 JSP内置对象

1.JSP内置对象: JSP内置对象是Web容器创建的一组对象 JSP内置对象是可以直接在JSP页面使用的对象,无需使用“new”获取实例 JSP内置对象的名称是JSP的保留字...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java学习笔记之JSP内置对象
举报原因:
原因补充:

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