request让服务器取得用户在网页表单中所输入的数据内容。
setAttribute(String name,Object):设置名字为name的request的参数值
getAttribute(String name):返回由name指定的属性值getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组getCharacterEncoding():返回请求中的字符编码方式 //setgetContentLength():返回请求的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]):返回和请求相关SessiongetServerName():获取服务器的名字getServletPath():获取客户端所请求的脚本文件的路径getServerPort():获取服务器的端口号removeAttribute(String name):删除请求中的一个属性例:String getParameter(String name)
在requestInfo.jsp中
在showInfo.jsp中:
您刚才输入的内容是:
<% Enumeration enu = request.getParameterNames(); while(enu.hasMoreElements()){ String parameterName = (String)enu.nextElement(); String parameterValue = (String)request.getParameter(parameterName); out.println("参数名称:"+parameterName + " "); out.println("参数内容:"+parameterValue + " "); } %>
_______________________________________________________________________________________________________________
例:String[] getParameterValues(String name)
读取多个变量的值, 主要用于获取复选框的值或下拉列表带multipe属性的值。
hobby.html
用户信息
响应页面:hobbyInfo.jsp
<%-- <%request.setCharacterEncoding("utf-8"); %> --%><%=basePath%>"> My JSP 'hobbyInfo.jsp' starting page <% 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("看电视"); } } } %>
例:String[] getParameterValues(String name) 用在读取带mutiple属性的下拉列表中的数据
city.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+"/";%><%request.setCharacterEncoding("gb2312"); %><%=basePath%>"> My JSP 'cityInfo.jsp' starting page 喜欢的城市: <% String[] citys = request.getParameterValues("city"); if(citys != null){ for(int i = 0; i < citys.length; i++){ out.println(citys[i] + " "); } } %>
图示:
利用request获取一些系统信息:
客户使用的协议是: <%=request.getProtocol() %> 获取客户提交信息的长度: <%=request.getServletPath() %> 接收客户提交信息的长度: <%=request.getContentLength() %> 客户提交信息的方式: <%=request.getMethod() %> 获取客户机的名称: <%=request.getRemoteHost() %> 获取客户的IP: <%=request.getRemoteAddr() %> 枚举所有的头部文件名称: <% Enumeration enm = request.getHeaderNames(); while(enm.hasMoreElements()){ String s = (String)enm.nextElement(); out.println(s); } %> 枚举头部信息中指定头名字的全部值: <% Enumeration d = request.getHeaders("cookie"); while(d.hasMoreElements()){ String a = (String)d.nextElement(); out.println(d); } %>
如: