Request和Response方法总结 - CSDN博客

来源:互联网 发布:知世风涧澈 编辑:程序博客网 时间:2024/05/21 09:33

  • Request和Response方法总结
    • 方法
    • 常见用法
      • 获取请求参数
        • 读取get方式提交的数据
        • 读取post方式提交的数据
        • 获取表单参数
        • 获取打印流
      • 中文乱码问题
      • 重定向
      • 刷新
      • 转发
      • Cookie
      • Session


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枚举类Enumeration<String> headerNames = request.getHeaderNames();//Enumeration接口(枚举),调用nextElement()方法得到Enumeration枚举对象中的所有元素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);

获取表单参数

//get和post方式都可以用该方法获取表单参数//tomcat8下,get方式下,使用getParameter方法,中文不会乱码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();

中文乱码问题

//get提交方式,解决中文乱码问题URLDecoder.decode(queryString, "utf-8");//post提交方式,解决中文乱码问题//tomcat内部使用的是iso-8859-1的编码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);//设置重定向的urlresponse.setHeader("location", "/index.html");//ServletApps为项目名在这里表示路径response.sendRedirect("/ServletApps/MyServlet");response.sendRedirect("index.html");//重定向时,不能共享request域中的数据request.setAttribute("id", 10);//跳转到指定路径//推荐如下写法response.sendRedirect(request.getContextPath() + "/RedirectServlet");---------------------------------------------------//RedirectServlet.java//获取request域中的数据int id = (Integer)request.getAttribute("id");//打印流打印数据response.getWriter().write("RedirectServelt:" + id);

刷新

//定时刷新,每隔一秒刷新一次response.setHeader("refresh", "1");//指定时间(秒)后,跳转到另外的界面response.setHeader("refresh", "3;url=/ServletApps/index.html");

转发

//request域//向request域中写入数据request.setAttribute("age", 10);//转发request.getRequestDispatcher("/ForwardServlet").forward(request, response);----------------------------------------------------------------//ForwardServalet.java//获取request域中的数据int age = (int)request.getAttribute("age");//打印流打印数据response.getWriter().write("ForwardServlet:" + age);
//创建Cookie对象Cookie cookie = new Cookie("name", "zhangsan");//如果有相同的name值的Cookie,后一个会替换前一个Cookie内容//Cookie中的name和value都是字符串类型//Cookie中不能出现中文Cookie cookie1 = new Cookie("name", "lisi");//通过响应将Cookie数据发送到浏览器response.addCookie(cookie);//获取请求中的Cookie数据Cookie[] cookies = request.getCookies();if(cookies != null){  for(Cookie cookie2 : cookies){    //获取Cookie的name和对应的value    System.out.println(cookie2.getName());    System.out.println(cookie2.getValue());  }}

Session

//根据Session的id查找服务器是否有对应的Session对象,如果有返回Session对象;如果没有创建Session对象//创建Session对象后,会将JSESSIONID以Cookie的形式存在浏览器HttpSession session = request.getSession();//Session的id,唯一的(JSESSIONID)String id = session.getId();System.out.println(id);//默认情况下,JSESSIONID的过期时间是会话结束时,为了能正常访问Session对象,需要手动将JSESSIONID存储到Cookie中,并设置一个合适的过期时间Cookie cookie = new Cookie("JSESSIONID", id);cookie.setMaxAge(60);response.addCookie(cookie);
原创粉丝点击