三(2)、JSP九大内置对象——request(重要)

来源:互联网 发布:复权价格 知乎 编辑:程序博客网 时间:2024/05/18 01:49

    • request
      • 一常用的方法
      • 二重要的用法

request

客户端的请求信息被封装在request对象中,通过request对象才能了解到客户的需求,然后做出响应。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。


一、常用的方法

1 object getAttribute(String name) 返回指定属性的属性值

2 Enumeration getAttributeNames() 返回所有可用属性名的枚举

3 String getCharacterEncoding() 返回字符编码方式

4 int getContentLength() 返回请求体的长度(以字节数)

5 String getContentType() 得到请求体的MIME类型

6 ServletInputStream getInputStream() 得到请求体中一行的二进制流

7 String getParameter(String name) 返回name指定参数的参数值

8 Enumeration getParameterNames() 返回可用参数名的枚举

9 String[] getparameterValues(String name) 返回包含参数name的所有值的数组

10 String getProtocol() 返回请求用的协议类型及版本号

11 String getScheme() 返回请求用的计划名,如:http https及ftp等

12 int getServerPort() 返回服务器接受此请求所用的端口号

13 String getServerName() 返回接受请求的服务器主机名

14 BufferedReader getReader() 返回解码过了的请求体

15 String getRemoteAddr() 返回发送此请求的客户端IP地址

16 String getRemoteHost() 返回发送此请求的客户端主机名

17 void setAttribute(String key Object obj) 设置属性的属性值

18 String getRealPath(String path) 返回一虚拟路径的真实路径

19 void setCharacterEncoding(“gb2312”) 设置接受参数的字符集

二、重要的用法

1.接收表单提交的参数
request.getParameter()
2. 取得复选框的值,所有数据
request.getParameterValues()
3.request.setCharacterEncoding()
是设置从request中取得的值或从数据库中取出的值的编码,对post方法有效,get方法无效。get需在Tomcat的server.xml中的,加入URIEncoding=”GBK”,解决get请求乱码问题

例子
(1)建立login.jsp

<form action="do_login.jsp" method="post"> 用户名:<input type="text" name="username"><br>爱好:<input type="checkbox" value="read" name="favorite">看书<input type="checkbox" value="music" name="favorite">音乐<input type="checkbox" value="picture" name="favorite">拍照<input type="checkbox" value="write" name="favorite">写作<br><input type="submit" name="提交">  </form> 

(2)建立do_login.jsp处理表单提交的信息

<%request.setCharacterEncoding("utf-8");//解决中文乱码,对URL传递参数无效,URL传参必须在server.xml配置URLEncoding="utf-8" %> 用户名:<%=request.getParameter("username") %><br><!--判断取得复选框的值是否为空,输出是一个数组-->爱好:<% if(request.getParameterValues("favorite")!=null){ String[] favorite=request.getParameterValues("favorite"); for(int i=0;i<favorite.length;i++){ out.print(favorite[i]+"   "); } } %>

4.request.setAttribute,request.getAttribute
request.setAttribute(“username”,A),将A的值赋值给username,在另一个页面通过request.getAttribute(“username”)取username的值

<% request.setAttribute("passward","123456")//设置passward内容为123456%><%=request.getAttribute("passward")%>//取得passward内容

5.request.getRequestDispatcher(“ur”).forward(request,response)(重要)
请求转发到指定的url中,服务器的跳转。跳转页面时带着原来页面的request和response中的数据跳转,request对象始终存在,不会重新创建。使用request.getRequestDispatcher(“ur”).forward(request,response)传递参数,地址栏中的网址不变。

原创粉丝点击