Hello JSP!——request对象

         request对象不但可以用来设置和取得request范围变量,还可以用来获得客户端请求参数、请求的来源、表头、cookies等。

一.获得客户端请求参数。

         request对象包括一系列方法来获得客户端请求参数,包括的方法和方法说明如表;

         

方法

返回值

方法说明

getParameter(String name)String获得参数名为name的参数值
getParameterNames()Enumeration获得所有参数的名称
getParameterValues(String name)String[]获得参数名为name的所有参数
getParameterMap()Map获得所有参数封装的Map实例

示例:RequestForm.jsp

<%@ page language="java" contentType="text/html;charset=gb2312"%>
<html>
	<head>
		<title>表单</title>
	</head>
	<body>
		<form action="RequestDemo.jsp" method="post">
		用户名:<input type="text" name="username"/>
			<input type="submit" value="提交">
		</form>
	</body>
</html>

 

 RequestDemo.jsp

<%@ page language="java" contentType="text/html;charset=gb2312"%>
<html>
	<head>
		<title>使用request对象接收参数</title>
	</head>
	<body>
		<%-- 通过request对象的getPatameter接收参数 --%>
		<%
			String username = request.getParameter("username");
			out.println("用户名:" + username);
		 %>
	</body>
</html>


运行结果:


 

然而,当我输入中文时,显示的结果是这样的。

     要解决中文乱码问题,只需通过request对象的setCharacterEncoding()方法来设置参数编码就可以了,修改RequestDemo.jsp编码如下:

<%@ page language="java" contentType="text/html;charset=gb2312"%>
<html>
	<head>
		<title>使用request对象接收参数</title>
	</head>
	<body>
		<%-- 通过request对象的getPatameter接收参数 --%>
		<%
			request.setCharacterEncoding("gb2312");
			String username = request.getParameter("username");
			out.println("用户名:" + username);
		 %>
	</body>
</html>


运行结果:

 

二、获得所有的参数名称

       通过request对象的getParameterNames()方法可以获得所有的参数名称。

示例:RequestForm2.jsp

<%@ page language="java" contentType="text/html;charset=gb2312"%>
<html>
	<head>
		<title>表单</title>
	</head>
	<body>
		<form action="RequestDemo2.jsp" method="post">
		用户名:<input type="text" name="username"/><br>
		用户密码:<input type="password" name="userpassword"/>
		<input type="submit" value="提交">
		</form>
	</body>
</html>

RequestDemo2.jsp

<%@ page language="java" contentType="text/html;charset=gb2312" import="java.util.*"%>
<html>
	<head>
		<title>使用request对象获得所有的参数名称</title>
	</head>
	<body>
		<%--通过request对象的getParameterNames --%>
		<%
			Enumeration e = request.getParameterNames();
			while(e.hasMoreElements())
			{
				String str= (String) e.nextElement();
				out.println(str);
			}
		 %>
	</body>
</html>


运行结果:


 

通过搭配request对象的getParameterNames()方法和getParameter()方法,可以很方便的获得所有参数的参数值、

RequsertDemo3.jsp

<%@ page language="java" contentType="text/html;charset=gb2312" import="java.util.*"%>
<html>
	<head>
		<title>使用request对象获得所有的参数名称</title>
	</head>
	<body>
		<%--通过request对象的getParameterNames --%>
		<%
			Enumeration e = request.getParameterNames();    //获得所有参数的名称
			while(e.hasMoreElements())                      //遍历Enumeration
			{
				String str= (String) e.nextElement();       //取出下一个元素值
				String strRequest = request.getParameter(str);  //取得相应参数的参数值
				out.println(str + "参数值为:" + strRequest + "<br>"); //打印输出参数名称和参数值
			}
		 %>
	</body>
</html>


运行结果:

 

三、获得参数的所有参数值

        前面接收的参数只有一个参数值,在有些情况下一个参数可能拥有多个参数值,比如多选框,多选列表。要接收多个参数值,就需要使用request对象的getParameterValues()方法。

示例:RequestForm3.jsp

<%@ page language="java" contentType="text/html;charset=gb2312"%>
<html>
	<head>
		<title>表单</title>
	</head>
	<body>
		<form action="RequestDemo4.jsp" method="post">
		    用户名:<input type="text" name="username"/><br>
		    用户密码:<input type="password" name="userpassword"/><br>
		    喜欢的运动:
		<input type="checkbox" name="sport" value="pingpang">乒乓球
		<input type="checkbox" name="sport" value="baskertball">篮球
		<input type="checkbox" name="sport" value="football">足球<br>
		<input type="submit" value="提交">
		</form>
	
	</body>
</html>


RequestDemo4.jsp

<%@ page language="java" contentType="text/html;charset=gb2312" import="java.util.*"%>
<html>
	<head>
		<title>使用request对象获得参数的所有参数值</title>
	</head>
	<body>
		<%-- 通过request对象的getParameterValues获得参数的所有参数值 --%>
		<%
			String[] strArr = request.getParameterValues("sport");
			out.println("喜欢的运动");
			for(String str : strArr)  //遍历字符串数组取出参数值
			{
				out.println(str);    //输出参数值
			}
		 %>
	</body>

</html>


运行结果:

 

四、获得封装所有参数值的Map

        可以通过request对象的getParameterMap()方法来获得封装所以参数值的Map对象。通过该Map对象可以获得指定参数的参数值。

示例:RequestDemo5.jsp

<%@ page language="java" contentType="text/html;charset=gb2312" import="java.util.*"%>
<html>
	<head>
		<title>使用request对象获得封装所有参数值的Map</title>
	</head>
	<body>
		<%-- 通过request对象的getParameterMap封装所有参数值的Map --%>
		<%
			Map mapParameter = request.getParameterMap();  //获得封装所有参数值的Map
			String[] strUsername = request.getParameterValues("username");
			
			out.println("用户名:"+strUsername[0]+"<br>");    //获得其中username参数值
			
			String[] strPassword = request.getParameterValues("userpassword");
			
			out.println("用户密码:"+strPassword[0]+"<br>");    //打印输出userpassword参数值
			
			String[] strSport = request.getParameterValues("sport");
			
			out.println("喜欢的运动");       //获得其中sport参数值
			
			for(String sport : strSport)  //遍历字符串数组取出参数值
			{
				out.println(sport);    //输出参数值
			}
		 %>
	</body>

</html>


运行结果:


五、request对象的其他方法

        request对象除了可以用来获得请求参数,还可以用来获得HTTP标头及其他信息,具体的方法及方法说明如下所示:

方法返回值方法说明
getHeader(String name)String获得指定标题名称为name的标头
getHeaderName()Enumeration获得所有的标头名称
getIntHeader(String name)int获得标题名称的name的标头,内容以整数类型返回
getDateHeader(String name)long获得标题名称的name的标头,内容以日期类型返回
getCookies()Cookie获得相关的cookies
getContextPath()String获得Context的路径
getMethod()String获得客户端的提交方式
getProtocol()
String
获得使用的HTTP协议
getQueryString()String
获得请求的字符串
getRequestedSeesioId()String
获得客户端的seesion ID
getRequestURI()String
获得请求URL
getRemoteAddr()String
获得客户端IP地址
getRemoteHost()String
获得客户端的主机名称
getRemotePort()int获得客户端主机端口号
getRemoteUser()String
获得客户端名称



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值