一、 request是HttpServletRequest接口的一个对象,而ServletRequest是HttpServletRequest的父接口。
1、request接受参数出现中文乱码问题。
<FORM METHOD="POST" ACTION="input.jsp"> 输入信息:<INPUT TYPE="text" NAME="info"> <INPUT TYPE="hidden" name="var" value="www.mldn.cn"> <INPUT TYPE="submit" value="显示"> </FORM> |
接受两个参数值,一个是隐藏的参数
Input.jsp
<%@ page contentType="text/html;charset=GBK"%> <% String str = request.getParameter("info") ; // 接收表单参数 String var = request.getParameter("var") ; // 接收表单参数 %> <h2>参数内容:<%=str%></h2> <h2>参数内容:<%=var%></h2> |
request接受参数出现了中文乱码,怎么办呢?
利用request.setCharacterEncoding("GBK") ; // 按中文接收
或者转码为服务器默认的编码---ISO89859-1即可
修改input.jsp
<%@ page contentType="text/html;charset=GBK"%> <% request.setCharacterEncoding("GBK") ; // 按中文接收 String str = request.getParameter("info") ; // 接收表单参数 String var = request.getParameter("var") ; // 接收表单参数 // str = new String(str.getBytes("ISO8859-1")) ;// 转码 %> <h2>参数内容:<%=str%></h2> <h2>参数内容:<%=var%></h2> |
运行结果正常
比较常用的是setCharacterEncoding(String name)
2、get提交和post提交方式的区别:
·get提交:会在地址栏中显示提交的内容,地址栏中最大只能放4K~5K容量的文字。
·post提交:地址栏不显示提交的内容,本身不受成都到的限制,理论上是任意的长度,但是如果上传的内容过多的话,会超过HTTP的超时时间的限制。
3、URL重写
除了使用表单传递参数之外,也可以使用地址重写的方式传递参数,传递的格式如下:
Xxx.jsp?参数名称=参数值&参数名称=参数值&参数名称=参数值 |
4、利用request的publicString[] getParameteValues(String name)来接受多个同名参数,以数组的形式返回。
范例:接受复选框的多个值
Request.htm
<form action="request02.jsp" method="post"> 姓名: <input type="text" name="name"><br> 兴趣: <input type="checkbox" name="inst" value="游泳">游泳 <input type="checkbox" name="inst" value="唱歌">唱歌 <input type="checkbox" name="inst" value="跳舞">跳舞 <br><input type="submit" value="显示"> </form> |
request02.jsp
<%@ page contentType="text/html;charset=GBK"%> <% request.setCharacterEncoding("GBK") ; // 按中文接收 String name = request.getParameter("name") ; // 接收表单参数 String[] inst = request.getParameterValues("inst") ; // 接收表单参数 %> <h2>姓名:<%=name%></h2> <h2>兴趣: <% for(int i=0;i<inst.length;i++){ %> <%=inst[i]%>、 <% } %> </h2> |
5、获取客户端的IP地址
<%@ page contentType="text/html;charset=GBK"%> <% String ip = request.getRemoteAddr();//获取本地ip %> <h2>ip地址:<%=ip%></h2> |