JSP内置对象之request对象使用案例

23 篇文章 0 订阅

今天想和大家分享的就是JSP当中的一个内置对象request对象,此对象可以获取客户端发送的请求,通过getParameter()方法来获取客户端发送的请求参数值。当然我们需要注意的一个问题就是中文乱码的问题,我们传递的参数是String类型但是如果将该参数值改成中文的话就会产生乱码,原因是请求参数的文字编码和页面中的编码方式不一致导致的,所有的request请求都是iso-8859-1的,需要将请求参数的编码方式通过String的构造方法来进行相应的转变,转变的原则是要转变成和页面的编码方式一致。具体参考代码如下,

首先是请求页面的代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>首页</title>
</head>
<body>
	<form action="show.jsp" method="post">
		<ul style="list-style:none;line-height:30px">
			<li>输入用户姓名:<input type="text" name="name" /><br /></li>
			<li>选择性别:
				<input name="sex" type="radio" value="男" />男
				<input name="sex" type="radio" value="女" />女
			</li>
			<li>
				选择密码提示问题:
				<select name="question">
					<option value="母亲生日">母亲生日</option>
					<option value="宠物名称">宠物名称</option>
					<option value="电脑配置">电脑配置</option>
				</select>
			</li>
			<li>请输入问题的答案:<input type="text" name="key" /></li>
			<li>
				请选择个人爱好:
				<div style="width:400px">
					<input name="like" type="checkbox" value="唱歌跳舞" />唱歌跳舞
					<input name="like" type="checkbox" value="上网冲浪" />上网冲浪
					<input name="like" type="checkbox" value="户外登山" />户外登山<br />
					<input name="like" type="checkbox" value="体育运动" />体育运动
					<input name="like" type="checkbox" value="读书看报" />读书看报
					<input name="like" type="checkbox" value="欣赏电影" />欣赏电影
				</div>
			</li>
			<li><input type="submit" value="提交" /></li>
 		</ul>
	</form>
</body>
</html>
接着是接受页面的代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>request对象举例</title>
</head>
<body>
	<ul style="list-style:none;line-height:30px">
		<li>输入用户姓名:<%=new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8")%></li>
		<li>选择性别:<%=new String(request.getParameter("sex").getBytes("iso-8859-1"),"utf-8")%></li>
		<li>选择密码提示问题:<%=new String(request.getParameter("question").getBytes("iso-8859-1"),"utf-8")%></li>
		<li>请输入问题答案:<%=new String(request.getParameter("key").getBytes("iso-8859-1"),"utf-8")%></li>
		<li>请选择个人爱好:
		<%
			String[] like = request.getParameterValues("like");
			for(int i = 0;i < like.length;i++)
			{
		%>
		<%=new String(like[i].getBytes("iso8859-1"),"utf-8")+"  "%>
		<% 
			}
	    %>
	    </li>
	    <li>客户端使用的协议:<%=request.getProtocol() %></li>
	    <li>客户端发送请求的方法:<%=request.getMethod()%></li>
	    <li>客户端请求的路径:<%=request.getContextPath()%></li>
	    <li>客户端IP地址:<%=request.getRemoteAddr()%></li>
	    <li>客户机名称:<%=request.getRemoteHost()%></li>
	    <li>客户机请求端口号:<%=request.getRemotePort()%></li>
	    <li>接收客户信息的页面:<%=request.getServletPath()%></li>
	    <li>获取URI;<%=request.getRequestURI()%></li>
	    <li>获取URL:<%=request.getRequestURL()%></li>
	</ul>
</body>
</html>
客户端运行结果:

服务器端运行结果:



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值