在上一篇我们讲了一些重要的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等,大家可以自己私下里去了解学习以下。