jsp_内置对象_request

时间:2023-03-09 03:07:28
jsp_内置对象_request

request内置对象是使用最多的一个对象,其主要作用是接收客户端发送来的请求信息。如请求的参数、发送的头信息等都属于客户端发送来的信息。request是javax.servlet.http.HttpServletRequest接口的实例化对象,表示此对象主要是用在http协议上。

下面我们具体介绍一下request对象常用的几种方法:

1.request—乱码解决

下面我们直接使用小例子来说明:

(1)编写提交表单-request_dmeo1.html

 <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>request对象</title>
</head> <body>
<form action="request_demo_01.jsp" method="post">
请输入信息:<input type="text" name="info"/>
<input type="submit" value="提交">
</form>
</body>
</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     jsp_内置对象_request

如上图所示,当在文本框中输入中文以后,页面跳转,中文却无法正常显示。这主要是因为浏览器编码与jsp页面编码不一致造成的。此时,可以直接使用request.setCharacterEncoding()方法设置统一的编码即可。

request_demo_01.jsp

 <%@ page contentType="text/html;" language="java" import="java.sql.*" errorPage="" pageEncoding="utf-8" %>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>request对象</title>
</head> <body>
<%
request.setCharacterEncoding("utf-8");
String content=request.getParameter("info");
%>
<%=content%>
</body>
</html>

再次运行便可看到:

jsp_内置对象_request

2.request_接收请求参数

我们通常会使用getParameter()方法接收一个参数,无法接收一组参数。如果要接收一组参数,可以使用getParametersValues()方法进行接收。

下面我们直接使用小例子来说明:

(1)定义表单,传递多种参数-request_demo2.html

 <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>request接收参数</title>
</head> <body>
<form action="request_demo_02.jsp" method="post">
姓名:<input type="text" name="uname"><br>
兴趣:<input type="checkbox" name="inst" value="唱歌">唱歌
<input type="checkbox" name="inst" value="跳舞">跳舞
<input type="checkbox" name="inst" value="游泳">游泳
<input type="checkbox" name="inst" value="看书"> 看书
<input type="checkbox" name="inst" value="旅游">旅游
<input type="hidden" name="id" value="3">
<br><input type="submit" value="提交">
<input type="reset" value="重置">
</form>
</body>
</html>

(2)接收参数-request_demo_02.jsp

 <%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>request接收参数</title>
</head> <body>
<%
request.setCharacterEncoding("utf-8");
String id=request.getParameter("id");
String name=request.getParameter("uname");
String insts[]=request.getParameterValues("inst");
%>
<h2>编号:<%=id%></h2>
<h2>姓名:<%=name%></h2>
<%
if(insts!=null){
%>
<h3>兴趣:
<%
for(int x=0;x<insts.length;x++){
%>
<%=insts[x]%>
<%
}
%>
</h3>
<%
}
%>
</body>
</html>

程序运行结果如下图所示:

jsp_内置对象_request     jsp_内置对象_request

注:在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="" %>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>request--头信息</title>
    </head> <body>
    <%
    Enumeration enu=request.getHeaderNames(); //取得全部头信息
    while(enu.hasMoreElements()){
    String headname=(String)enu.nextElement();
    String headvalue=request.getHeader(headname); //取得头信息内容
    %>
    <h5><%=headname%>-><%=headvalue%></h5>
    <%
    }
    %>
    </body>
    </html>

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

  2. jsp_内置对象_request