jsp内置对象之request对象

jsp内置对象之request对象

使用request对象接收请求参数
  • 获得请求参数值的两种方法

    1. getParameter() //返回String类型
    2. getParameterValues() //返回String类型的数组
  • 一般采取form表单传递参数,form表单中有两个非常重要的属性

    1. action:指明表单提交后的数据提交跳转到指定页面并处理参数
    2. method:有两个值,分别是get和post,通常指定为post
      • 值为get时,在表单中设定的参数和参数值将附加到页面地址的末尾以参数的形式提交,不安全
  • form表单提交数据给getParameter.jsp页面

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html charset=utf-8">
    <title>ToGet</title>
    </head>
    <body>
     	<center>
     	 	<form action="getParameter.jsp" method="post">
     	 	 	<table>
     	 	 	 	<tr>
     	 	 	 	 	<td>姓名</td>
     	 	 	 	 	<td><input type="text" name="name" value=""></td> 	 	 	 	 	
     	 	 	 	</tr>
     	 	 	 	<tr>
     	 	 	 	 	<td>城市</td>
     	 	 	 	 	<td><input type="text" name="city" value=""></td> 	 	 	 	 	
     	 	 	 	</tr>
     	 	 	 	
     	 	 	 	<tr>
     	 	 	 	 	<td><input type="submit" value="提交"></td>
     	 	 	 	 	<td><input type="reset" value="重置"></td>
     	 	 	 	</tr>
     	 	 	</table>
     	 	</form>
     	</center>
    
    </body>
    </html>
    
    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html charset=utf-8">
    <title>getParameter</title>
    </head>
    <body>
     	<center>
     	 	<%
     	 	String name= new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
    //        String name= request.getParameter("name");
            String city= new String(request.getParameter("city").getBytes("ISO-8859-1"),"utf-8");
    //        String city= request.getParameter("city");
     	 	 	if(name!=null&&city!=null){
     	 	%>
     	 	  <p>Welcome <%=name %>,您所在的城市<%=city %></p>
     	 	<%
     	 	}
     	 	else{
     	 	%>
     	 	<p>欢迎访问本页面</p>
     	 	<%} %>
     	</center>
    </body>
    </html>
    
请求中文乱码的问题
  • 错误原因:请求信息所使用的字符集与页面使用的字符集不同
  • 3种解决方法
    1. 在接收请求的页面中规定请求字符编码的代码,如在上文中的getParameter.jsp页面中添加语句"request.setCharacterEncoding(“utf-8”)"
    2. 在取得参数值后,通过转码的方式将值转为合适的字符集,也就是上文中getParameter.jsp中采用的方法
    3. 编写一个Servlet过滤器,可以通过配置让过滤器解决所有请求字符集处理的问题,移植性强
获取请求的头部信息
  • 三种请求头部信息的相关方法
    1. getHeader()
    2. String getHeader(String name) :获取字符串型的表头信息
    3. int getIntHeader(String name) :获取整型的表头信息
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
  <head>
    <title>'getHeaders.jsp'</title>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  </head>
  
  <body >
	       <%
	       	  Enumeration<String> enumeration = request.getHeaderNames();
	       	  while(enumeration.hasMoreElements()){
	       	      String name = enumeration.nextElement();
	       	      String value = request.getHeader(name);
	       	      if(value==null||"".equals(value)){
	       	      	  value="空字符串";
	       	      }
	        %>
	            <p>表头名称:<%=name %>&nbsp;&nbsp;对应的值:<%=value %></p>
	         <%} %>
  </body>
</html>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值