jsp---->Request对象

1、中文处理的两种方法

1、对所有的数据进行再编码:ISO8859-1 编码,String类中的getBytes("ISO8859-1") ;

public byte[] getBytes("encoding"),再将 byte 数组重新变为字符串

String name = new String(request.getParameter("uname").getBytes("ISO8859-1"))

2、设置统一字符编码:request.setCharacterEncoding("GBK") ;
public void setCharacterEncoding(String env)  throws UnsupportedEncodingException
GBK > GB2312    GBK是中文编码、GB2312 是简体中文编码

<%@ page contentType="text/html;charset=gbk"%>
< html>
< body>
< %
// 接收内容
/*
String name = request.getParameter("uname") ;
byte[] b = name.getBytes("ISO8859-1") ;
name = new String(b) ;
*/
// String name = new String(request.getParameter("uname").getBytes("ISO8859-1")) ;


request.setCharacterEncoding("GBK") ;
String name = request.getParameter("uname") ;
%>
< h1>输入内容为:<%=name%></h1>
< /body>
< /html>
2、如果传递的内容是数组(复选框的情况下、多个下拉列表项)使用 request 的以下方法取得数据:
public String[] getParameterValues(String name)
demo03.html
<html>
< body>
< form action="demo04.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="看书">看书
  <br>
  <input type="submit" value="提交">
< /form>
< /body>
< /html>
demo04.jsp
<%@ page contentType="text/html;charset=gbk"%>
< html>
< body>
< %
// 接收内容
request.setCharacterEncoding("GBK") ;
String name = request.getParameter("uname") ;
String inst[] = request.getParameterValues("inst") ;
%>
< h1>用户名为:<%=name%></h1>
< h1>兴趣为:
< %
for(int i=0;i<inst.length;i++)
{
%>
  <%=inst[i]%>、
< %
}
%>
< /h1>
< /body>
< /html>
3、在开发中较为常用的表单控件:隐藏域将内容隐藏起来,使用户不能修改,之后随表单一起提交到服务器上显示
<input type="hidden" name="uname" value="mldn">
4、地址重写
http://localhost/test/basic/04/demo06.jsp?uname=Hello
通过地址重写,可以将内容传递到服务器端 —— 服务器端只认HTTP 协议,而不管接收的内容是以何种形式传送过来的
如果传递多个参数呢?
<a href="demo06.jsp?uname=MLDN&upass=LiXingHua">demo06.jsp</a>
5、getParameterNames  取得客户端所有请求的参数
public Enumeration getParameterNames()
Enumeration:枚举
demo7.html
<html>
< body>
< form action="demo08.jsp" method="post">
  用户名:<input type="text" name="uname"><br>
  密码:<input type="password" name="upass"><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="看书">看书
  <br>
  <input type="submit" value="提交">
< /form>
< /body>
< /html>
demo08.jsp 体会下面代码的优点,不用考虑请求参数的个数
<%@ page contentType="text/html;charset=gbk"%>
< %@ page import="java.util.*"%>
< html>
< body>
< %
// 接收内容
request.setCharacterEncoding("GBK") ;
Enumeration enu = request.getParameterNames() ;
%>
< %
while(enu.hasMoreElements())
{
  String name = (String)enu.nextElement() ;
  if(name.startsWith("**"))
  {
   String temp[] = request.getParameterValues(name) ;
%>
   <h1><%=name%> -->
< %
   for(int i=0;i<temp.length;i++)
   {
%>
    <%=temp[i]%>、
< %
   }
%>
   </h1>
< %
  }
  else
  {
%>
   <h1><%=name%> --> <%=request.getParameter(name)%></h1>
< %
  }
}
%>
< /h1>
< /body>
< /html>
6、功能:取得客户端 IP 地址
public String getRemoteAddr()
总结:只要是客户端信息,在服务器端都可以通过 request 对象取得

posted on 2012-08-17 09:49  小-强-斋-太  阅读(119)  评论(0编辑  收藏  举报

导航