一、Requset、Response对象
1 HttpServletRequest对象
String getParameter(String pname); 获取单值请求参数
String[] getParameterValues(String pname); 获取多值请求参数
Enumeration<String> getParameterNames();获取所有的请求参数名对应的集合
Map<String,String[]> getParameterMap();获取所有请求参数对应的map
void setCharacterEncoding(String cset)
String getHeader(String hname)
域对象:可以在指定区域中实现数据共享的对象
request域:实现在请求转发/请求包含的多个资源(请求链)之间实现数据共享
域对象中的数据:域属性Attribute
域对象的统一方法:
Object getAttribute(String aName);
void removeAttribute(String aName);
void setAttribute(String aName,Object vObj);
Enumeration<String> getAttributeNames();
请求转发:request.getRequestDispatcher(path).forward(request,response);
请求包含:request.getRequestDispatcher(path).include(request,response);
String getMethod();
String getContentPath();
Cookies[] getCookies();
HttpSession getSession();
2、HttpServletResponse对象
void setCharacterEncoding(String cset)
void setContentType()
OutputStream getOutputStream();
PrintWriter getWriter();
String setHeader(String hname,String hvalue);
resposne.sendRedirect(path)
//void resp.addCookie(Cookie); 添加cookie
//resp.sendError(404,"请求的资源不存在!");//设置错误状态码和错误信息
//resp.setStatus(404);//设置状态码
3、 请求转发+请求包含+重定向的区别
请求转发和请求包含的区别
1:方法不同
2:响应头
3:响应体
4:使用不同:
请求转发和重定向的区别
1:请求次数不同
2:浏览器显示不同
3:是否可以用request域对象
4:请求转发只能跳转到当前项目的资源 重定向可以跳转到任意项目的资源
二、 servlet域对象
在指定区域内实现数据共享的对象
域对象的统一方法:
Object getAttribute(String aName);
void removeAttribute(String aName);
void setAttribute(String aName,Object vObj);
Enumeration<String> getAttributeNames();
1 request域对象
requet域对象的共享区域:同一个请求链(请求转发或者请求包含涉及的多个资源)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
request.setAttribute("aa", "aa"+System.currentTimeMillis());
request.setAttribute("bb", "bb"+System.currentTimeMillis());
request.getRequestDispatcher("/s0100").forward(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
out.print("request域属性aa="+request.getAttribute("aa")+"<br/>");
out.print("request域属性bb="+request.getAttribute("bb")+"<br/>");
}
2 session域对象
session:回话: 同一个浏览器对服务器发出的几个连贯(默认时间差不能大于30分钟)的请求
回话跟踪技术:解决http协议的无状态(两次请求之间不能实现数据共享)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response