:1.解决中文乱码问题
<%@ page language="java" pageEncoding="GBK"%>
JSP页面文本框输入带有中文的信息,此时再获取输入的内容,发现中文显示不正确,乱码;
处理:在对应的jsp页面中加入下面代码
<body>
<%
request.setCharacterEncoding("GBK");//设置统一编码
String str = request.getParameter("info");//接收表单提交的参数
%>
// 输出信息
<h2><%=str %></h2>
</body>
2.接收请求参数
getParameter():像文本框(text)、单选按钮(radio)、密码框(password)、隐藏域(hidden)等使用,因为这些控件的参数名称一般只有一个,不会重复;
getParameterValues():如复选框(checkbox),参数的名称重复,是一组数组形式,若使用了getParameter()接收,则只会接收第一个选中的值;
使用二者在接收参数值时,有可能是null值,在使用要进行是否为空的判断,否则有可能出现NUllPointerException异常!
例如:复选框
String str[] = request.getParameterValues("inst");
if(str != null){
for(int i = 0; i < str.length; i++){
<%=str[i]%>
}
}
参数的来源:一是来至表单提交过来的;
二是地址重写的方式带过来的:
例如:https://localhost:8080/xx/aaa.do?name=mxz&password=123
get提交:提交的内容会在地址栏后面显示出来;https://localhost:8080/xx/aaa.do?name=mxz&password=123
post提交:提交的内容不会显示在地址栏中;https://localhost:8080/xx/aaa.do?
getParameterNames():返回所有请求参数的名称,返回值类型Enumration,再使用hasMoreElements()方法判断是否有内容,及使用nextElement()方法取出内容;
复选框:**主要的目的是区分不同的参数接收操作;
通过getParameterNames获取所有的参数名称后,再获取对应的内容,则必须是需要getParameter()或者getParameterValues(),凡是以**开头的,都以数组形式接收
3.显示全部的头信息
request.getHeaderNames():获取头信息的名称; request.getHeader():获取每一个头信息的内容;
4.服务器端想获取客户端的信息时,可使用request内置对象获取信息,如:
String method = request.getMethod(); // 获取提交方式
String ip = request.getRemoteAddr();//获取客户的的ip地址
String path = request.getServletPath();//获取访问路径
String contextoPath = request.getContextPath();//获取应用程序上下文