jsp内置对象

JSP内置对象概述

简化web应用程序开发,在jsp页面内置了一些默认的对象,这些对象不需要预先声明就可以在脚本代码和表达式中使用。有以下九种

RequestresponseoutsessionpageContextapplicationconfigpageexception

Request

与之联系的是HttpServletRequest类。通过getParmeter方法可以得到request的参数,通过getpostheadfangf可以得到request类型,通过cookiesreferer可以得到引入的http头。

Request是类javax.servlet.ServletRequest的一个子类不是HttpServletRequest类(javax.servlet.http.ServletRequest界面的类)

Response

与之联系的是HttpServletResponse类。因为输入流是放入缓冲的所以可以设置http状态码和response

Out

使用PrinterWriter类来向客户端发送输出,然而为了使response对象有效,可以使用一个PrinterWriter类的使用缓冲版本JSPWriter

Session

与之联系的是HttpSession类。该对象是自动创建的,即使没有一个引入的session,这种变量仍可以绑定。

若使用page指令关闭session在试图使用session会发生错误,不要轻易关闭session

PageContext

管理对属于jsp中特殊可见部分中已经命名的对象的访问。

Application

与之联系的是ServletContext类。通过使用getServletConfig().getContext()方法取得。

Config

它是一个ServletConfig对象。jsp配置处理程序的句柄,只有在jsp页面范围内才是合法的。

Page

仅仅是用来保存在脚本语言不是Java是的时间。jsp实现类的一个句柄,只有在jsp页面范围内才是合法的。

Exception

只能由指定的jsp错误处理页面访问的异常数据,它属于Java.lang.Throwable的子类。

 

Request对象

访问请求参数

<form action="login_deal.jsp">

<input name="username" type=”text” id="username" >

<input name="pwd" type=”text” id="pwd" >

</form>

<% request.setCharacterEncoding("gb2312");

String username=request.getParameter("username");

String pwd=request.getParameter("pwd");

out.println("用户名为:"+username);

out.println("密码:"+pwd);%>

管理属性

<% request.setAttribute("error","检查您所输入的用户名和密码"); %>

<jsp:forward page="error.jsp"/>

//error.jsp

<% out.println("错误信息为"+request.getAttribute("error")); %>

获取客户端的Cookie信息

Cookie是服务器通过浏览器在访问者硬盘留下存储信息的手段。它是一段文本信息,伴随着用户请求在和页面在web服务器和浏览器之间传递。

Cookie的好处如下:

(1)cookie能够使得站点跟踪特定的访问者的访问次数、最后访问时间和访问者进入的路径。

(2)能够告诉在线广告商广告被单击的次数,从而精确的投放广告。

(3)Cookie有效期限味道时,cookie能使得用户在不键入密码和用户名的情况下进入曾经浏览过的站点。

(4)Cookie能够帮助站点统计用户个人资料以实现各种各样个性化服务,

jsp中我们可以通过request对象中的getCookie()来获得cookie

Cookie[] cookie=request.getCookie();

注意:该方法返回的是cookie数组。

获取客户端cookie信息例子

<title>获取客户端客户信息例子</title>

</head>

<body>

<%

Cookie[] cookies=request.getCookies();

Cookie cookie_response=null;

if(cookies!=null){

cookie_response=cookies[0];

}

out.println("本次访问时间为:"+new java.util.Date()+"<br>");

if(cookie_response!=null){

out.println("上次访问时间为:"+cookie_response.getValue());

cookie_response.setValue(new java.util.Date().toString());

}

if(cookies==null){

cookie_response=new Cookie("AccessTime","");

cookie_response.setValue(new java.util.Date().toString());

response.addCookie(cookie_response);

}

%>

</body>

</html>

获取客户信息

方法

说明

getHeader(String name )

获取http协议定义的头文件信息

getHeaders(String name )

返回指定名字的request Header 的所有值,其结果是一个枚举的实例

getHeadersName()

返回所有request Header的名字,其结果是一个枚举的实例

getMethod()

获得客户端向服务器端传到数据的方法

getProtocol()

获得客户端向服务器端传到数据所依据的协议的名称

getRequestURI()

获取发出请求客户端的地址

getRealPath()

返回当前请求的绝对路径

getRemoteAddr()

获取客户端的IP地址

getRemoteHost()

获取客户端的机器名称

getServerName()

获取服务器的名字

getServerPath()

获取客户端所请求的的脚本文件的路径名称

getServerPort()

获取服务器的端口号

 

 

 

<%

out.println("客户提交信息的方式"+request.getMethod()+"<br>");

out.println("使用的协议"+request.getProtocol()+"<br>");

out.println("客户端地址"+request.getRequestURI()+"<br>");

out.println("客户端IP地址"+request.getRemoteAddr()+"<br>");

out.println("服务器端口号"+request.getServerPort()+"<br>");

out.println("服务器名称"+request.getServerName()+"<br>");

out.println("客户端机器名称"+request.getRemoteHost()+"<br>");

out.println("客户端请求的脚本文件路径"+request.getServletPath()+"<br>");

out.println("获取http协议定义的头文件信息"+request.getHeader("host")+"<br>");

out.println("获取http协议定义的头文件信息"+request.getHeader("user-agent")+"<br>");

out.println("信息长度"+request.getContentLength());

out.println("信息类型"+request.getContentType());

 

%>

Response对象

Response对象是用于响应服务器端提交的信息,即把服务器端的信息发送给客户端,这些信息包括页面的跳转、设置头信息、cookie信息设置传送字体的编码等。

Response对象是Java.servlet.http.HttpServletResponse接口类的对象,它封装了jsp产生的响应,并发送到客户端。

重定向网页

Response.sendRedirect(login_ok.jsp);

这和动作元素<jsp:forward page=””/>存在区别

指明错误状态

Response.sendError(500,请求页面存在错误)

具体如表所示

sendRedirect

<jsp:forward page=””/>

地址栏改变跳转

地址栏不改变跳转

所有代码执行完毕之后跳转

执行到跳转语句后无条件跳转,之后的代码不在执行

客户端跳转

服务器端跳转

不能保持request属性

可以保持request属性

通过URL地址的重写传递参数

通过<jsp:param name=”” value=””>传递参数

设置http响应报头

方法

说明

setDateHeader(String name,long date)

使用给定的名称和日期设置一个响应报头,如果指定的名称已经设置,那么新值会覆盖旧值

setHeader(String name ,String value)

使用给定的名称和值设置一个响应报头,如果指定的名称已经设置,则新值覆盖旧值

setHeader(String name ,int value)

使用给定的名称和整数值设置一个响应报头,如果指定的名称已经设置,则新值覆盖旧值

addHeader(String name,long date)

使用给定的名称值设置一个响应报头

addDateHeader(String name,long date)

使用给定的名称和日期值设置一个响应报头

containHeader(String Header)

返回一个布尔值,他表示是否设置了已将命名的响应报头

addIntHeader(String name,int value)

用给定的名称和整数值设置一个响应报头

setContentType(String type)

为响应设置内容类型,其参数类型可以twxt/htmltext/plainapplication/x_msexcelapplication/msword

setContentLength(int len)

为响应设置内容的长度

setLocateJava.Util.locale loc

为响应设置地区信息

定时刷新的实现

response.setHeader("refresh","10");

out.println(new java.util.Date());

缓冲区配置

使用缓冲可以更加有效的在服务器和客户之间传输内容。HttpServletResponse对象为支持JSPwriter对象而启用了缓冲区设置。

方法

说明

flushBuffer()

强制把缓冲区中内容发送给客户

gettBufferSize()

返回响应所使用的实际缓冲区的大小,如果没有使用缓冲区则该方法返回0

setBufferSize(int size)

为响应的主体设置首选的缓冲区的大小

isCommitted()

返回一个boolean值,表示响应是否已经响应;提交的响应已经写入状态码和报头

Reset()

清除缓冲区存在的任何数据,同时清除状态码和报头

缓冲区配置例子:

response.setHeader("refresh","10");

out.println(new java.util.Date().toLocaleString()+"<br>");

out.println("缓冲区大小"+response.getBufferSize()+"<br>");

out.println("缓冲区内容强制提交前"+"<br>");

out.println("缓冲区内容是否提交"+response.isCommitted()+"<br>");

response.flushBuffer();

out.println("缓冲区内容强制提交后"+"<br>");

out.println("缓冲区内容是否提交"+response.isCommitted()+"<br>");

结果:

缓冲区大小8192
缓冲区内容强制提交前

缓冲区内容是否提交false
缓冲区内容强制提交后
缓冲区内容是否提交true

Session对象

Session对象是用来分别保存每个用户信息的对象,以便跟踪用户的操作状态。Session的信息保存在服务器端,sessionID保存在客户机的cookie中。如果浏览器不支持或废除cookie就自动转化为URL-writingsession会自动地为每个流程提供了方便的存储信息的方法。

Session对象的主要方法

(1)getAttribute(String name)

获取与指定名字name相联系的信息

(2)getAttributeNames()

返回session对象中的存储的每一个属性对象,其结果为一个枚举 类的实例

(3)getCreation Time()

返回session被创建的时间。最小单位为ms

(4)getId()

此方法返回唯一的标识,这些标识为每个session而产生。当只有 单一值与一个session联合时,或当日志信息与先前的session 关时,它被当做键名使用

(5)GetLastAccessdTime()

返回当前session对象最后被客户发送的时间。最小单位ms

(6)GetMaxInactiveInterval()返回总时间单位S,负值表示session 远不会过时。改时间为session对象的生存时间。

(7)removeAttribute(String name)

删除指定名字name想联系的信息

(8)setAttribute(String name,java.lang.Object value)

设置指定名字的属性值,并将之存储在session对象中。

Session对象实现保持会话信息

session.setAttribute("information", "向session中保存数据");

response.sendRedirect("a.jsp");

//a.jsp

out.println(session.getAttribute("information"));

application对象

用来在多个程序中保存信息,每个用户的application对象是相同的。服务器启动后,一旦创建了该对象,这个对象就会一直保存下去,直到服务器关闭为止。

访问应用程序初始化参数

GetInitParameter(String name) 返回一个已经命名的初始参数的值

GetInitParameterNames()返回所有已经定义的应用程序初始化参数名称的枚举。

管理应用程序环境属性

RemoveAttributeString name

ServletContext 去掉指定名字的属性

SetAttribute(String anme,Object object)

使用指定名称和指定对象在ServletContext 的对象进行关联

GetAttribute(String name)

ServletContext 的对象中获取一个指定的对象。

getAttributeNames()

返回ServletContext 对象中属性名称的枚举类型。

简单统计在线人数。

<%

//统计在线人数

application.setAttribute("counter", new Integer(0));

    out.println(application.getAttribute("counter"));

//记录在线人名

application.setAttribute("onlineName", new String(""));

    out.println(application.getAttribute("onlineName"));

 

%>

 

 

Out对象

该对象主要用来向客户端输出各种数据类型的内容,并且管理应用服务器上的输出缓冲区默认为8KB,可以通过page来改变默认值。该对象被封装为Javax.servlet.isp.JspWriter类的对象,在实际的应用上out对象会通过jsp容器转换为Javax.io.PrintWriter类的对象。

out,println(各种类型的数据)

out.newLine();输出一个换行字符

Out.flush();输出缓冲区的数据

Out.close();关闭

Out.clearBuffer();清除缓冲区的数据并把数据输入到客户端

Out.clear();清除缓冲区的数据但是不会把数据输入到客户端

Out.getBufferSize();获取缓冲区的大小;

Out.getRemaining()获得缓冲区未被占用的空间的大小;

Out.AutoFlush();返回布尔值。

 

其他内置对象

获取会话范围的pageContent对象

该对象继承于JSPContent类,它为在servlet环境下使用JSP技术提供完整的上下文信息。它相当于页面中所有其他对象的最大集成者,使用它可以访问到本业中的所有其他对象。该对象被封装成java.servlet.jsp.pageContent接口。主要用于访问jsp中特殊可见部分的已经命名对象的访问,它的创建和初始化都有容器来王成。

常用方法

方法

说明

forward(java.lang.String.relativeUtpath)

页面转发到另一个页面或者Servlet组件上

getAttribute(java.lang.String name[,int scope])

检索一个特定的的已经命名的的对象的范围

getException()

获取当前的Exception对象

getRequest()

 

getResponse()

 

getServletConfig()

 

Invalidate()

返回ServletContext,全部销毁

setAttribute()

设置默认页面范围或特定对象范围之中的已经命名对象

RemoveAttribute()

删除默认页面范围或特定对象范围之中的已经命名对象

 

Config对象

读取web.xml配置信息。该对象被封装成java.servlet.ServletConfig接口,它包含servlet的配置信息

方法

说明

getServletContext()

返回只想着的Servlet上下文

getServletName()

返回Servlet的名字

getInitParameter()

返回初始参数值

getInitParameterNames()

返回所有初始参数的名字

应答或请求的page对象

仅仅是用来保存不是Java脚本语言时的时间

方法

说明

getClass()

返回当前Object 的类

hashCode()

返回此Object 的哈希代码

toString()

将此Object 转换为字符串

Equals(Object o)

比较此对象和指定对象是否相等

Copy(Object o)

将对象赋值到指定对象中去

Clone()

对此对象进行克隆

 

获取异常信息的exception

异常是指在执行过程中不可预料的情况,如果不处理程序会崩溃。

方法

说明

getMessage()

返回异常消息字符串

getLocalizedMessage()

返回本地化语言异常错误

PrintStackTrace()

显示异常栈跟踪轨迹

toString()

异常错误的简单描述

fillInStackStrace()

重写异常错误的栈执行轨迹

转载于:https://www.cnblogs.com/wengbm/p/8053359.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值