request对象:
request对象 主要功能 是服务端接收客户端以HTTP方式传送给用户服务端数据,以便对其进行进一步处理,实现常有的方法
getParameter;;接收请求参数的,
中文如何处理
1,对所有数据进行再编码:ISO8859-1编码
String 类中的getBytes(ISO8859-1”);
getBytes() 方法定义:
public byte[] getBytes(“encoding”)
再将byte数组重新变为字符串
之所以会出现问号,原因:此文字不在编码范围之内
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")); %> <h1>输入内容为:<%=name%></h1> </body> </html> |
设置统一的请求编码
public void setCharacterEncoding(String env)
throws UnsunpportedEncodingException
设置统一的请求编码
<%@ page contentType="text/html";charset=gbk"%>
<html>
<body>
<%
//接收内容
request.setCharacterEncoding("GBK");
String name= request.getParameter("uname");
%>
<h1>输入内容为:<%=name%></h1>
</body>
</html>
如果传递的内容是数组(复选框的情况下,多个下拉列表顶)
使用request的以下方取得数据
public String[] getParameterValues(String name)
在开发中较常用的表单控件:隐藏域
将内容隐藏起来,使用户不能修改,之后随表单一起提交到服务器上显示
<%@ page contentType="text/html";charset=gbk"%> <html> <body> <form action="demo06.jsp" method="post"> <input type="hidden" name="uname" value="mldn"> <input tyep="submit" value="提交"> </body> </html> |
地址重写
http://localhost/test/basic/04/demo06.jsp?uname=Hello
通过地址重写,可以将内容传递到服务器端 --------服务器端中认HTTP协议,而不管接收的内容是以何种形式传送过来的
如果传递多个参数呢?
demo06.jsp?uname=MLDN&upass=LXH
getParameterNames
public Enumeration getParameterNames()
Enumeratio:枚举
功能:取得客户端语法参数
取得客户端的IP地址?
public String getRemoteAddr()
总结:只是客户端信息,在服务器端都可以通过request对象取得
必须掌握的几个方法:getParameter(),getParameterValues(),setCharacterEncoding()