request让服务器取得用户在网页表单中所输入的数据内容。
setAttribute(String name,Object):设置名字为name的request的参数值
getAttribute(String name):返回由name指定的属性值
getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例
getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组
getCharacterEncoding():返回请求中的字符编码方式 //set
getContentLength():返回请求的Body的长度
getHeader(String name):获得HTTP协议定义的文件头信息
getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例
getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例
getInputStream():返回请求的输入流,用于获得请求中的数据
getMethod():获得客户端向服务器端传送数据的方法
getParameter(String name):获得客户端传送给服务器端的有name指定的参数值
getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例
getParameterValues(String name):获得有name指定的参数的所有值
getProtocol():获取客户端向服务器端传送数据所依据的协议名称
getQueryString():获得查询字符串
getRequestURI():获取发出请求字符串的客户端地址
getRemoteAddr():获取客户端的IP地址
getRemoteHost():获取客户端的名字
getSession([Boolean create]):返回和请求相关Session
getServerName():获取服务器的名字
getServletPath():获取客户端所请求的脚本文件的路径
getServerPort():获取服务器的端口号
removeAttribute(String name):删除请求中的一个属性
例:String getParameter(String name)
在requestInfo.jsp中
<body bgcolor="#ffc7c7"> <div id="register"> <form action="showInfo.jsp" name="form1" method="post"> <p align="center">用户名:<input type="text" name="username" width="50"></p> <p align="center">密 码:<input type="password" name="password"></p> <p align="center"><input type="submit" name="Submit" value="提交"> <input type="reset" name="cancle" id="cancle" value="取消"></p> </form> </div> </body>
在showInfo.jsp中:
<body bgcolor="#ccffcc"> <h1>您刚才输入的内容是:<br></h1> <% Enumeration enu = request.getParameterNames(); while(enu.hasMoreElements()){ String parameterName = (String)enu.nextElement(); String parameterValue = (String)request.getParameter(parameterName); out.println("参数名称:"+parameterName + "<br>"); out.println("参数内容:"+parameterValue + "<br>"); } %> </body>
_______________________________________________________________________________________________________________
例:String[] getParameterValues(String name)
读取多个变量的值, 主要用于获取复选框的值或下拉列表带multipe属性的值。
hobby.html
<head> <title>用户信息</title> <meta name="keywords" content="keyword1,keyword2,keyword3"> <meta name="description" content="this is my page"> <meta name="content-type" content="text/html; charset=gb2312"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> <form action="hobbyInfo.jsp" name="Example" method="post"> <p>兴趣: <input type="checkbox" name="habit" value="Read"> 看书 <input type="checkbox" name="habit" value="Football"> 足球 <input type="checkbox" name="habit" value="Travel"> 旅游 <input type="checkbox" name="habit" value="Music"> 音乐 <input type="checkbox" name="habit" value="Tv"> 看电视</p> <p> <input type="submit" value="传送"> <input type="reset" value="清除"> </p> </form> </body>
响应页面:hobbyInfo.jsp
<%-- <%request.setCharacterEncoding("utf-8"); %> --%> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'hobbyInfo.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <% String[] hobby = request.getParameterValues("habit"); if(hobby != null){ for(int i = 0; i < hobby.length; i++){ if(hobby[i].equals("Read")){ out.println("看书"); } if(hobby[i].equals("Football")){ out.println("足球"); } if(hobby[i].equals("Travel")){ out.println("旅游"); } if(hobby[i].equals("Music")){ out.println("听音乐"); } if(hobby[i].equals("Tv")){ out.println("看电视"); } } } %> </body> </html>
例:String[] getParameterValues(String name) 用在读取带mutiple属性的下拉列表中的数据
city.html
<html> <head> <title>用户信息</title> <meta name="keywords" content="keyword1,keyword2,keyword3"> <meta name="description" content="this is my page"> <meta name="content-type" content="text/html; charset=gb2312"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> <form action="cityInfo.jsp" method="post" name="Example"> <p>您喜欢的城市是: <select name="city" multiple="multiple" size="4"> <option>北京市</option> <option>上海市</option> <option>南京市</option> <option>杭州市</option> <option>济南市</option> <option>重庆市</option> </select> </p> <input type="submit" value="传送"> <input type="reset" value="清除"> </form> </body> </html>
cityInfo.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%request.setCharacterEncoding("gb2312"); %> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'cityInfo.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> 喜欢的城市: <% String[] citys = request.getParameterValues("city"); if(citys != null){ for(int i = 0; i < citys.length; i++){ out.println(citys[i] + " "); } } %> </body> </html>
利用request获取一些系统信息:
<body> <br> 客户使用的协议是: <%=request.getProtocol() %> <br> 获取客户提交信息的长度: <%=request.getServletPath() %> <br> 接收客户提交信息的长度: <%=request.getContentLength() %> <br> 客户提交信息的方式: <%=request.getMethod() %> <br> 获取客户机的名称: <%=request.getRemoteHost() %> <br> 获取客户的IP: <%=request.getRemoteAddr() %> <br> 枚举所有的头部文件名称: <% Enumeration enm = request.getHeaderNames(); while(enm.hasMoreElements()){ String s = (String)enm.nextElement(); out.println(s); } %> <br> 枚举头部信息中指定头名字的全部值: <% Enumeration d = request.getHeaders("cookie"); while(d.hasMoreElements()){ String a = (String)d.nextElement(); out.println(d); } %> </body>