HttpServletRequest
请求消息行
方法:getMethod();
获得请求方式getRequestURL();
返回客户端发出请求时的完整URL。getRequestURI();
返回请求行中的资源名部分。getContextPath();
当前应用的虚拟目录 。getQueryString() ;
返回请求行中的参数部分。
请求消息头
String getHeader(String name);
根据头名称得到头信息值Enumeration getHeaderNames();
得到所有头信息nameEnumeration getHeaders(String name);
根据头名称得到相同名称头信息值
请求正文
与获取表单数据相关的方法
getParameter(name)
根据表单中name属性的名,获取value属性的值方法 getParameterValues(String name)
专业为复选框取取提供的方法getParameterNames()
得到表单提交的所有name的方法 getParameterMap
到表单提交的所有值的方法 //做框架用,非常实用
附录:框架的使用
导入commons-beanutils-1.8.3.jar和commons-logging-1.1.1.jar包
import org.apache.commons.beanutils.BeanUtils;//导包
BeanUtils.populate(new User(), request.getParameterMap());//调用方法
getInputStream
以字节流的方式得到所有表单数据
ServletInputStream sis = request.getInputStream();
int len = 0;
byte[] b = new byte[1024];
while((len=sis.read(b))!=-1){
System.out.println(new String(b, 0, len, "UTF-8"));
}
sis.close();
与操作非表单数据相关的方法(request也是一个域对象)
void setAttribute(String name, Object value);
Object getAttribute(String name);
Void removeAttribute(String name);
与请求转发相关的方法
//得到请求转发或请求包含的协助对象
RequestDispatcher getRequestDispatcher(String path)
forward(ServletRequest request, ServletResponse response) //转发的方法
include(ServletRequest request, ServletResponse response) //请求包含
与请求编码相关的方法:
- 解决post方式编码
request.setCharacterEncoding("UTF-8");
//告诉服务器客户端什么编码,只能处理post请求方式 解决get方式编码
String name = new String(name.getBytes(“iso-8859-1”),”UTF-8”);
HttpServletResponse
响应消息行
setStatus(int sc)
设置响应状态码
响应头
sendRedirect(String location)
请求重定向setHeader(String name, String value)
设置响应头信息
告知浏览器使用什么码表
response.setHeader("content-type", "text/html;charset=UTF-8");
- 告知客户端不缓存
response.setHeader("pragma", "no-cache"); response.setHeader("cache-control", "no-cache"); response.setDateHeader("expires", 0);
- Referesh刷新
响应正文(主体)
getWrite();
字符输出流getOutputStream();
字节输出流setCharacterEncoding(String charset)
告知服务器使用什么编码setContentType(String type)