HttpServletRequest与HttpServletResponse的常用方法详解

前端页面展示及代码如下
在这里插入图片描述
在这里插入图片描述

HttpServletRequest常用方法如下:

 @Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException {
    //1.获取单个name属性的值
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    System.out.println("request.getParameterValues()获取到的用户名"+username+"<----密码"+password);

    //2.获取多个相同name属性的值(比如复选框)
    String[] hobbies = request.getParameterValues("Hobby");
    System.out.println("request.getParameterValues()获取到复选框的值"+Arrays.toString(hobbies));

   //3.获取请求参数的Map集合
    Map<String, String[]> parameterMap = request.getParameterMap();

    //3.1只是查看请求的所有name
    System.out.println("request.getParameterMap()前端请求的所有name属性有:");
    for (String key : parameterMap.keySet()) {
        System.out.print(key+",");
    }
    System.out.println("通过request.getParameterMap()获取前端请求的属性和属性值有:");
    //3.2查看请求参数的key和value
    for (Map.Entry<String ,String []> entry : parameterMap.entrySet()) {
        System.out.println(entry.getKey()+" :"+ Arrays.asList(entry.getValue()));
    }
    //4. 将发送请求页面中form表单里所有具有name属性的表单对象获取(包括button).返回一个Enumeration类型的枚举.
    Enumeration<String> parameterNames = request.getParameterNames();
    System.out.println("通过request.getParameterNames()获取的循环遍历");
    while(parameterNames.hasMoreElements()){
        String name=(String)parameterNames.nextElement();
        //如果是复选框只能获取第一个选中的值(推荐第三种)
        String value=request.getParameter(name);
        System.out.println(name + "=" + value);
    }

在这里插入图片描述
request其余常用方法:
request.getRequestURL(): 浏览器发出请求时的完整URL,包括协议 主机名 端口(如果有)"
request.getRequestURI(): 浏览器发出请求的资源名部分,去掉了协议和主机名"
request.getQueryString(): 请求行中的参数部分,只能显示以get方式发出的参数,post方式的看不到
request.getRemoteAddr(): 浏览器所处于的客户机的IP地址
request.getRemoteHost(): 浏览器所处于的客户机的主机名
request.getRemotePort(): 浏览器所处于的客户机使用的网络端口
request.getLocalAddr(): 服务器的IP地址
request.getLocalName(): 服务器的主机名
request.getMethod(): 得到客户机请求方式一般是GET或者POST
request.getHeader() 获取浏览器传递过来的头信息。
比如getHeader(“user-agent”) 可以获取浏览器的基本资料,这样就能判断是firefox、IE、chrome、或者是safari浏览器


设置响应编码有两种方式

  1. response.setContentType(“text/html; charset=UTF-8”);
  2. response.setCharacterEncoding(“UTF-8”);

这两种方式都需要在response.getWriter调用之前执行才能生效。
他们的区别在于

  1. response.setContentType(“text/html; charset=UTF-8”);
    不仅发送到浏览器的内容会使用UTF-8编码,而且还通知浏览器使用UTF-8编码方式进行显示。所以总能正常显示中文
  2. response.setCharacterEncoding(“UTF-8”);

设置跳转方式
response.setStatus(301);
response.setHeader(“Location”, “fail.html”);
使用缓存可以加快页面的加载,降低服务端的负担。但是也可能看到过时的信息,可以通过如下手段通知浏览器不要使用缓存
response.setDateHeader(“Expires”,0 );
response.setHeader(“Cache-Control”,“no-cache”);
response.setHeader(“pragma”,“no-cache”);

猜你喜欢

转载自blog.csdn.net/qq_37493556/article/details/89198192
今日推荐