Request和Response方法总结
方法
request 功能 getQueryString() 获取请求参数 getMethod() 获取请求类型 getContextPath() 返回当前web项目相对路径 getInputStream() 读取提交的数据流 getCookies() 获取所有Cookie,返回一个Cookie数组 getParameter() 获取元素 getParameterNames() 获取所有请求参数,返回一个Enumeration枚举类 getAttribute() 获取域中存储的数据 getAttributeNames() 获取域中所有数据,返回一个Enumeration枚举类 getSession() 获取Session对象 getRequestDispatcher() 获取转发器,参数路径以/打头,代表当前web项目根目录(转发) setCharacterEncoding() 在post里解决中文乱码 setAttribute() 在Request域中存储数据 getRequestURL() 返回全路径 getRequestURI() 返回除去host(域名或者IP)部分 getHeader() 获取请求头 getHeaderNames() 获取请求头所有值,返回一个Enumeration枚举类
response 功能 setContentType() 中文乱码处理 setCharacterEncoding() 在post里解决中文乱码 setStatus() 设置状态码 setHeader() 设置消息头 getWriter() 获取通向浏览器的字符流(打印流) getOutputStream() 获取通向浏览器的字节流(打印流) addCookie() 通过响应添加Cookie sendRedirect() 重定向
常见用法
获取请求参数
System.out.println(request.getRequestURL());
System.out.println(request.getRequestURI());
System.out.println(request.getMethod());
String header = request.getHeader("Host" );
System.out.println(header);
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()){
String head = headerNames.nextElement();
System.out.println(head);
}
读取get方式提交的数据
String queryString = request.getQueryString();
System.out.println(queryString);
读取post方式提交的数据
ServletInputStream inputStream = request.getInputStream();
byte [] bytes = new byte [1024 ];
int len = inputStream.read(bytes);
String string = new String(bytes, 0 , len);
System.out.println(string);
获取表单参数
String name = request.getParameter("name" );
String pwd = request.getParameter("password" );
System.out.println(name);
System.out.println(pwd);
获取打印流
PrintWriter writer = response.getWriter();
String html = "<html>" ;
html += "<head>" ;
html += "</head>" ;
html += "<body>" ;
html += "你好" ;
html += "</body>" ;
html += "</html>" ;
writer.write(html);
writer.close();
中文乱码问题
URLDecoder.decode(queryString, "utf-8" );
request.setCharacterEncoding("utf-8" );
String name = request.getParameter("name" );
name = new String(name.getBytes("iso-8859-1" ), "utf-8" );
response.setContentType("text/html;charset=utf-8" );
重定向
response.setStatus(302 );
response.setHeader("location" , "/index.html" );
response.sendRedirect("/ServletApps/MyServlet" );
response.sendRedirect("index.html" );
request.setAttribute("id" , 10 );
response.sendRedirect(request.getContextPath() + "/RedirectServlet" );
---------------------------------------------------
int id = (Integer)request.getAttribute("id" );
response.getWriter().write("RedirectServelt:" + id);
刷新
response.setHeader("refresh" , "1" );
response.setHeader("refresh" , "3;url=/ServletApps/index.html" );
转发
request.setAttribute("age" , 10 );
request.getRequestDispatcher("/ForwardServlet" ).forward(request, response);
----------------------------------------------------------------
int age = (int )request.getAttribute("age" );
response.getWriter().write("ForwardServlet:" + age);
Cookie
Cookie cookie = new Cookie("name" , "zhangsan" );
Cookie cookie1 = new Cookie("name" , "lisi" );
response.addCookie(cookie);
Cookie[] cookies = request.getCookies();
if (cookies != null ){
for (Cookie cookie2 : cookies){
System.out.println(cookie2.getName());
System.out.println(cookie2.getValue());
}
}
Session
HttpSession session = request.getSession();
String id = session.getId();
System.out.println(id);
Cookie cookie = new Cookie("JSESSIONID" , id);
cookie.setMaxAge(60 );
response.addCookie(cookie);