上一篇文章列举了JSP内置对象的作用范围和当中的五个内置对象,本篇文章将进一步列举request和response内置对象的使用方法。
一、request对象
1、作用范围:请求有效。在一起完整的请求响应过程中,即request scope。
2、说明:代表由用户提交请求而出发的request对象。
3、request对象可以获取的信息:
(1)建立HTML表单:
(2)用REQUEST对象处理:JSP页面将数据存放在request对象里,并将该请求传递到下一个页面,下一个页面访问request对象,处理上一个JSP页面传递过来的数据。
(3)通过超链接来传递:aaa
(4)通过jsp动作标签param来进行传递
4、下面对四种可以通过request传递信息的方式进行一一说明。
(1)建立HTML表单:
// login.jsp <%@ page language="java" import="java.util.*" pageEncoding=“GB2312"%>DengLu
requestScopeGet2.jsp中的处理内容如下:
// requestScopeGet2.jsp <%@ page contentType="text/html;charset=GB2312" %>请求有效 请求有效 - 使用请求request.getAttribute()
<% String name = request.getParameter("name"); String password = request.getParameter("password"); String[] userHabits=request.getParameterValues("habit"); out.println("姓名 = " + name); out.println("密码 = " + password); for(int i=0;i第<%=i%>项<%=userHabits[i]%>
<%}%>
(6)通过request对象获取服务器和浏览器相关信息
主要代码:
<% //服务器 String localName=request.getLocalName(); String serverName = request.getServerName(); String localAddr=request.getLocalAddr(); int localPort=request.getLocalPort(); int serverPort = request.getServerPort();%>服务器:<%= localName %>
<%//客户端信息 String remoteHost=request.getRemoteHost(); String remoteAddr=request.getRemoteAddr(); int remotePort=request.getRemotePort();%>
服务器端IP:<%= localAddr %>
服务器端口:<%= localPort %>
浏览器端:<%= remoteHost %>
<%//协议相关 String pro=request.getProtocol(); String pro1=request.getScheme(); int len=request.getContentLength(); String type=request.getContentType(); String charEncode=request.getCharacterEncoding(); %> 协议版本:<%= pro %>
浏览器端IP是:<%= remoteAddr %>
浏览器端口:<%= remotePort %>
协议:<%= pro1 %>
数据内容长度:<%= len %>
数据类型:<%= type %>
字符编码方式:<%= charEncode %>
效果:
二、response对象
1、作用范围:page scope
2、说明:负责将服务器端的数据发送回浏览器的客户端。主要用于向客户端发送数据,如Cookie、HTTP文件头等信息。
3、用法实例:
(1)设置返回给浏览器的页面格式,如下例将页面设置为word类型
<%@ page contentType="text/html;charset=GB2312" %>运行效果:response对象 - setContentType方法
将当前页面转换为word文档 <% response.setContentType("application/msword;charset=GB2312");%>
(2)设置header。如下实现了页面自动刷新
<%@ page contentType="text/html;charset=GBK" %>设置setHeader的第一参数为“refresh”的时候,第二个参数可以在指定时间内跳转到其他页面,如下:response.setHeader("Refresh","3");设为response对象 - 处理HTML Header response - no-cache
<% if (request.getProtocol().compareTo("HTTP/1.0") == 0) response.setHeader("Pragma", "no-cache"); else if (request.getProtocol().compareTo("HTTP/1.1") == 0) response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", -1); %>response - 自动刷新
当前时间: <% response.setHeader("Refresh","3"); out.println(""+new java.util.Date()); %>
response.setHeader("Refresh","3;url=http://localhost:8080/try/response1.jsp");
(3)设置重定向页面
<%@page import="java.util.*"%>response应用 <% Date nowdate=new Date(); int hour; hour=nowdate.getHours(); if (hour>=8 & hour<=17) { response.sendRedirect(“business.jsp?time=”+hour);//跳转 }else{ response.sendRedirect(“privacy.jsp?time=”+hour);//跳转 } %>
business.jsp代码:
// business.jsp <%@page import="java.util.*"%>response应用 现在是办公时间 <% String nowdate = request.getParameter("time"); %> <%= nowdate%>
private.jsp代码:
// private.jsp <%@page import="java.util.*"%> <%@ page contentType="text/html;charset=GB2312" %>response应用 现在是私人时间 <% String nowdate = request.getParameter("time"); %> <%= nowdate%>
(4)添加Cookie
// Addcookies.jsp <% //以获取到的请求参数为值,创建一个Cookie对象 Cookie c = new Cookie("username" , "yyw"); //设置Cookie对象的生存期限,24小时 c.setMaxAge(24 * 3600); //向客户端增加Cookie对象 response.addCookie(c); %>
readCookies.jsp代码:
// readCookies.jsp <% //获取本站在客户端上保留的所有Cookie Cookie[] cookies = request.getCookies(); //遍历客户端上的每个Cookie for (Cookie c : cookies){ //如果Cookie的名为username,表明该Cookie是我们需要访问的Cookie if(c.getName().equals("username")){ out.println(c.getValue()); return; } } out.println("没有这个用户"); %>
关于request和response的用法先介绍到这了,下一篇将会详细介绍session和pageContext对象的使用和探究内置对象为何不用声明便可直接使用。
谢谢您的关注和阅读,文章不当之处还请您不吝赐教~~~