JSP内置对象

JSP内置对象概述

因为Java语法在使用一个对象之前需要实例化这个对象,JSP为了简化开发,提供了一些内置对象,用来实现很多JSP的应用。在使用时无需定义,直接使用即可。

一.request对象

说明:request对象封装了由客户端生成的HTTP请求的所有细节,主要包括HTTP头信息、系统信息、请求方式和请求参数等。

1.访问请求参数

<a href="delete.jsp?id=1">删除</a>

在delete.jsp页面中,可以通过request对象的getParameter()方法获取传递的参数值,参考代码如下:

<%
request.getParameter("id");
%>

在使用request的getParameter()方法获取传递的参数值时,如果制定的参数不存在,将返回null;如果指定了参数名,但未指定参数值,将返回空的字符串""。

2.在作用域中管理属性

request对象调用setAttribute()方法将数据保存到request范围的变量中。

request.setAttribute(String name,Object object);

request对象调用getAttribute()方法获取该变量的值。

request.getAttribute(String name);

3.获取cookie

在互联网中,cookie是指小段的文本信息,在网络服务器上生成,并发给浏览器。通过cookie可以标识用户身份,记录用户名和密码,跟踪重复用户。浏览器将cookie以key/value的形式保存到客户机的某个指定目录中。

通过cookie的getCookies()方法即可获得所有cookie对象的集合;通过cookie对象的getName()方法可以获取到指定名称的cookie;通过getValue()方法即可获取cookie对象的值。另外,将一个cookie对象发送到客户端,使用response对象的addCookie()方法。

在向cookie中保存的信息中,如果包括中文,则需要调用java.net.URLEncoder类的encode()方法将要保存到cookie中的信息进行编码;在读取cookie的内容时,还需要应用java.net.URLDecoder类的decode()方法进行解码。

4.解决中文乱码

创建index.jsp页面,在其中加入一个超链接,并在超链接中传递两个参数,并使其全部为中文。

<body>
     <a href="show.jsp?name=张三&sex=男">解决中文乱码</a>
</body>

创建show.jsp页面,在其中第一个参数name的值进行编码转换,将第二个参数sex直接显示在页面中,进行比较。

<body>
    name 参数值为: <%=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8")%>
    sex 参数值为:<%request.getParameter("sex")%>
</body>

结果:

name参数的值为:张三
sex参数的值为:**(乱码)

5.获取客户端信息

6.显示国际化信息

二.response对象

说明:response对象用于响应客户请求,向客户端输出信息。

1.重定向网页

使用response对象的sendRedirect()方法可以将网页重定向到另一个界面。在客户端浏览器上将会得到跳转的地址,并重新发送请求链接。进行重定向操作后,request中的属性全部失效,并且开始一个新的request对象。

response.sendRedirect(String path);

2.处理HTTP头文件

(1).禁用缓存

<%
response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);
%>

(2).设置页面自动刷新

<%
response.setHeader("refresh",10);
%>
//每隔十秒刷新一次

(3).定时跳转网页

<%
response.setHeader("refresh","5;URL=login.jsp");
%>
//五秒钟之后跳转到指定的网页

3.设置输出缓存

response.setBufferSize(32);

三.session对象

说明:session在网络中被称为对话。因为HTTP协议时一种无状态协议,也就是当一个客户向服务器发出请求,服务器接受后返回响应后,该连接就结束了,而服务器并不保存相关的信息。而session可以在应用程序的web页面间进行跳转,保存用户状态,使整个用户会话一直存在,直到浏览器关闭。但是,若在一个会话中,客户端长时间不向服务器发出请求,session对象会自动消失,这个时间取决于服务器。

1.创建及获取客户的会话

//保存方式
session.setAttribute(String name,Object obj)
//获取方式
session.getAttribute(String name);

getAttribute()方法的返回值是Object类型,若获取的信息赋给String类型的变量则要进行强制转换或者调用toString()方法。

String user=(String)session.getAttribute("username");
String user1=session.getAttribute("username").toString();

2.从会话中移动指定的绑定对象

<%
session.removeAttribute("username");
%>

3.销毁session

session.invalidate();

session对象被销毁后,将不再可以使用该session对象。如果在session被销毁后,再调用session对象的任何方法,都将报出Session already invalidated异常。

4.会话超时的管理

session.setMaxInactiveInterval(10000);
//超过这个时间范围就会失效

四.application对象

application对象用于保存所有应用程序的公有数据。服务器启动时自动创建,服务器停止时销毁。当application对象没有被销毁时,所有用户都可以共享该application对象。与session对象相比,其生命周期更长,类似于“全局变量”。

1.访问应用程序初始化数据

application提供了两种初始化的方法:                                                                                                                                

//eg1,该方法用于返回已命名的参数值
application.getInitParameter(String name);
//eg2,该方法用于返回已定义的应用程序初始化参数名的枚举
application.getAttributeNames();

2.管理应用程序环境属性

五.out对象

1.向客户端输出数据

//print()方法
<%
out.print("111");
%>
<%="111"%>
//println()方法
<%
out.println(1515);
out.println("aa");
%>

println()方法输出内容后还会输出一个换行符,而print()方法不会换行。

tips:如果要使println()方法的换行显示在页面中需要用<pre></pre>括起来。

2.管理响应缓冲

clear()清楚缓冲区的内容

clearBuffer()清楚当前缓冲区的内容

flush()刷新流

isAutoFlush()检测当前缓冲区已满时自动清空还是抛出异常

getBufferSize()获取缓冲区的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值