在上一篇我们讲了一些重要的jsp动作标签,这一篇我们来看一下重要的jsp内置对象。

对象1:request对象


这个对象的主要用来从客户端向浏览器传递数据。

主要方法有:getParameter();setAttribute();getAttribute();removeAttribute()

getParameter()方法主要用来获取请求传递的参数值,比如表单传值或者url传值等。举个例子,假设现在又两个页面a.jsp和b.jsp,我们在b.jsp里可以这样写

<a href="a.jsp?flag=1">传递flag</a><!-- url传值 -->
<!-- 表单传值 -->
<form action="a.jsp" method="post" >
  	<input type="hidden" name="flag" value="1"/>
  	<input type="submit" value="传递flag">
</form>

在a.jsp里写

<%   String acc=request.getParameter("flag");   //接收flag的值   %>
<%=acc %>	<!-- 输出acc的值 -->
<%=request.getParameter("flag") %>  <!-- 输出flag的值 -->

这样就能在a页面收到b页面发送的flag的值了,有兴趣的同学可以自己试试看。

setAttribute()可以向request对象的属性列表中添加属性。getAttribute()和removeAttribute()两个方法分别是在request对象的作用域内取出属性的值以及删除某一属性。其用法如下

String test="hhhhhhhhhh";
request.setAttribute("flag",test);//给request对象增加一个名为flag的属性,值是test的值
String acc=(String)request.getAttribute("flag");//取出request的属性flag的值
request.removeAttribute("flag");//将request对象的属性flag删除

request还有一些其它的方法,这里我们只介绍一些用来获取客户端的相关信息的方法。

若无说明,函数则返回类型为String


request.getHeader(String name) //获取指定名称的HTTP头信息
request.getMethod()            //获取客户端向服务器发送请求的方式
request.getContextPath()    //返回请求路径
request.getProtocol()    //返回请求使用的协议
request.getRemoteAddr()    //返回客户端ip地址
request.getRemoteHost()    //返回客户端主机名称
request.getRemotePort()    //返回客户端发出请求的端口号(注意,返回类型为int)
request.getServletPath()       //返回接收客户提交信息的页面
request.getRequestURI()    //返回客户端请求地址

对象2:response

request是客户端的请求对象,与之相对应的,response是对客户端的相应,将jsp容器处理过的对象传回客户端。

主要方法:sendRedirect()和setHeader()

sendRedirect()方法是重定向方法,setHeader()是设置http头文件夹

用法为

response.sendRedirect("test.jsp");//  重定向到test.jsp页面
response.setHeader("refresh","3");//  设置网页自动3秒刷新一次

response还有一些其它的方法,我们简单介绍一些

若无特殊说明,则函数无返回值


response.addHeader(String name, String value); //添加http文件头,如有重复,则覆盖
response.setHeader(String name, String value); //设定指定的http文件头的值,如存在,则覆盖
response.addCookie(Cookie cookie); //向客户端添加一个cookie对象
response.sendError(int sc,Stringmsg); //向客户端发送错误现象,比如404 网页找不到
response.setBufferSize(int size); //设置缓存区大小

对象3:session

session对象是由服务器自动创建的与用户相关的对象,每一个用户都会被服务器生成一个session对象,用来保存用户信息。

主要方法:getAttribute(),setAttribute(),setMaxInactiveInterval()

setAttribute()方法是给session添加新的属性或者覆盖原属性的值,getAttribute()方法是取得session的某个值,setMaxInactiveInterval()方法用来设置session对象的生存时间。

用法如下

HttpSession session=request.getSession();	//创建session对象
int i=0;
session.setAttribute("flag", i);	//添加属性flag,值为i的值
String acc=(String)session.getAttribute("flag");//取出属性flag的值
session.setMaxInactiveInterval(1000);	//设置session的生存周期为1000秒

session还有一些其它的方法,我们简单说下


session.getAttributeNames() //获得session对象中所有属性对象(返回值类型为Enumeration)
session.getId() //获得session对象的唯一标识编号(返回值类型为String)
session.getCreationTime() //获得session对象创建的时间(返回值类型为long)
session.getLastAccessedTime() //获得session对象最后一次被操作的时间(返回值类型为long)
session.getMaxInactiveInterval() //获得session对象的生存周期(返回值类型为int)
session.isNew() //判断session对象是否为新建(返回值为boolean)
session.removeAttribute(String name) //删除session对象中的属性(没有返回值)
session.invalidate() //销毁session对象(没有返回值)

Jsp的内置对象还有很多,比如application,out等,大家可以自己私下里去了解学习以下。