在jsp内置对象中,request对象是一个非常常用的内置对象,其常用方法有:
request.setCharacterEncoding(String arg) ----------------------用于设置接收参数的编码。主要用于解决乱码问题,参数设置发送请求页面的编码
request.getParameter(String arg)-----------------------------------接收表达数据,更具表达的参数填写表单对象的name属性,或者接收地址中key=value的value值,arg为key
request.getParameterValues(String arg)-------------------------和getParameter(String arg)类似,不同的地方在于,在一个表单中或者一个请求地址中有若干name相同的表单对 象,我们就用此方法接收一个多个值,此方法的返回值为字符串类型的数组。例如说多选框之类的
request.getParameterNames()-------------------------------------此方法用于获取表单对象或者地址发送过来的所有name的值,其返回值为Enumeration<String>
request.getHeaderNames()-----------------------------------------此方法用于获取http请求的头信息中的name的值,其返回值为Enumeration<String>
request.getHeader(String arg)--------------------------------------此方法用于根据http请求头信息的name的值获取对应的value值。
更多request内置对象的方法请参考j2ee api 文档,request对象是 javax.servlet.http.HttpServletRequest的实例。
下面上一个具体的例子使用上面的方法
发送请求的一个表单页面:shuru.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="jieshou.jsp" method="post">
姓名:<input type="text" name="info" /><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="hidden" value="3" name="id"/>
<br/>
<input type="submit" />
<input type="reset"/>
</form>
</body>
</html>
接收请求的一个页面:jieshou.jsp
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");//解决乱码问题,这里面的编码为发送页面的编码
String info = request.getParameter("info");
String inst[] = request.getParameterValues("*inst");
Enumeration<String> enu = request.getParameterNames();
%>
姓名<%=info%><br>爱好
<%
if (inst != null && inst.length > 0) {
for (int i = 0; i < inst.length; i++) {
%>
<%=inst[i]%>
<%
}
} else {
%>
无爱好
<%
}
while (enu.hasMoreElements()) {
%>
<br />
<%
String parameterName = enu.nextElement();
if (parameterName.startsWith("*")) {
String values[] = request.getParameterValues(parameterName);
if (values != null) {
%>
<%=parameterName%>
<%
for (int i = 0; i < values.length; i++) {
%>
<%=values[i]%>
<%
}
} else {
%>
无爱好
<%
}
} else {
%>
<%=parameterName%>
<%=request.getParameter(parameterName)%>
<%
}
}
%>
<br />
<%
Enumeration<String> enumHead = request.getHeaderNames();
while (enumHead.hasMoreElements()) {
String headName = enumHead.nextElement();
%>
<%=headName%>
<%=request.getHeader(headName)%>
<br />
<%
}
%>
</body>
</html>
好吧,就这些,也不过多解释了。用到的主要方法,在上面都有解释。