首页 > 代码库 > jsp_内置对象_request
jsp_内置对象_request
request内置对象是使用最多的一个对象,其主要作用是接收客户端发送来的请求信息。如请求的参数、发送的头信息等都属于客户端发送来的信息。request是javax.servlet.http.HttpServletRequest接口的实例化对象,表示此对象主要是用在http协议上。
下面我们具体介绍一下request对象常用的几种方法:
1.request—乱码解决
下面我们直接使用小例子来说明:
(1)编写提交表单-request_dmeo1.html
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>request对象</title> 6 </head> 7 8 <body> 9 <form action="request_demo_01.jsp" method="post"> 10 请输入信息:<input type="text" name="info"/> 11 <input type="submit" value="http://www.mamicode.com/提交"> 12 </form> 13 </body> 14 </html>
(2)接收表单内容-request_demo_01.jsp
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %> <!doctype html> <html> <head> <meta charset="utf-8"> <title>request对象</title> </head> <body> <% String content=request.getParameter("info"); %> <%=content%> </body> </html>
程序的运行结果如下图所示:
如上图所示,当在文本框中输入中文以后,页面跳转,中文却无法正常显示。这主要是因为浏览器编码与jsp页面编码不一致造成的。此时,可以直接使用request.setCharacterEncoding()方法设置统一的编码即可。
request_demo_01.jsp
1 <%@ page contentType="text/html;" language="java" import="java.sql.*" errorPage="" pageEncoding="utf-8" %> 2 <!doctype html> 3 <html> 4 <head> 5 <meta charset="utf-8"> 6 <title>request对象</title> 7 </head> 8 9 <body> 10 <% 11 request.setCharacterEncoding("utf-8"); 12 String content=request.getParameter("info"); 13 %> 14 <%=content%> 15 </body> 16 </html>
再次运行便可看到:
2.request_接收请求参数
我们通常会使用getParameter()方法接收一个参数,无法接收一组参数。如果要接收一组参数,可以使用getParametersValues()方法进行接收。
下面我们直接使用小例子来说明:
(1)定义表单,传递多种参数-request_demo2.html
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>request接收参数</title> 6 </head> 7 8 <body> 9 <form action="request_demo_02.jsp" method="post"> 10 姓名:<input type="text" name="uname"><br> 11 兴趣:<input type="checkbox" name="inst" value="http://www.mamicode.com/唱歌">唱歌 12 <input type="checkbox" name="inst" value="http://www.mamicode.com/跳舞">跳舞 13 <input type="checkbox" name="inst" value="http://www.mamicode.com/游泳">游泳 14 <input type="checkbox" name="inst" value="http://www.mamicode.com/看书"> 看书 15 <input type="checkbox" name="inst" value="http://www.mamicode.com/旅游">旅游 16 <input type="hidden" name="id" value="http://www.mamicode.com/3"> 17 <br><input type="submit" value="http://www.mamicode.com/提交"> 18 <input type="reset" value="http://www.mamicode.com/重置"> 19 </form> 20 </body> 21 </html>
(2)接收参数-request_demo_02.jsp
1 <%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %> 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6 <title>request接收参数</title> 7 </head> 8 9 <body> 10 <% 11 request.setCharacterEncoding("utf-8"); 12 String id=request.getParameter("id"); 13 String name=request.getParameter("uname"); 14 String insts[]=request.getParameterValues("inst"); 15 %> 16 <h2>编号:<%=id%></h2> 17 <h2>姓名:<%=name%></h2> 18 <% 19 if(insts!=null){ 20 %> 21 <h3>兴趣: 22 <% 23 for(int x=0;x<insts.length;x++){ 24 %> 25 <%=insts[x]%> 26 <% 27 } 28 %> 29 </h3> 30 <% 31 } 32 %> 33 </body> 34 </html>
程序运行结果如下图所示:
注:在web开发中,所有的参数不一定非要由表单传递,也可以使用地址重写的方式进行传递。(动态页面地址?参数名称1=参数内容1&参数名称2=参数内容2)
3.request_显示全部的头信息
头信息名称——getHeaderNames()
头信息内容——getHeader()
下面写个小例子来说明下:
request_demo_03.jsp
-
1 <%@ page contentType="text/html; charset=utf-8" language="java" import="java.util.*" errorPage="" %> 2 <!doctype html> 3 <html> 4 <head> 5 <meta charset="utf-8"> 6 <title>request--头信息</title> 7 </head> 8 9 <body> 10 <% 11 Enumeration enu=request.getHeaderNames(); //取得全部头信息 12 while(enu.hasMoreElements()){ 13 String headname=(String)enu.nextElement(); 14 String headvalue=http://www.mamicode.com/request.getHeader(headname); //取得头信息内容 15 %> 16 <h5><%=headname%>-><%=headvalue%></h5> 17 <% 18 } 19 %> 20 </body> 21 </html>
运行程序后浏览器中显示内容如下图所示:
jsp_内置对象_request