首页 > 代码库 > 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.  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>

    运行程序后浏览器中显示内容如下图所示:

  2. 技术分享

jsp_内置对象_request