zoukankan      html  css  js  c++  java
  • HttpServletRequest对象(一)

    一:HttpServletRequest介绍:

      代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,

    二:Request常用的方法

      1):获得客户端信息

        getRequestURL方法返回客户端发出请求时的完整URL。
        getRequestURI方法返回请求行中的资源名部分。
        getQueryString 方法返回请求行中的参数部分。
        getPathInfo方法返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。
        getRemoteAddr方法返回发出请求的客户机的IP地址。
        getRemoteHost方法返回发出请求的客户机的完整主机名。

        getRemotePort方法返回客户机所使用的网络端口号。
        getLocalAddr方法返回WEB服务器的IP地址。
        getLocalName方法返回WEB服务器的主机名。

      2):获得客户机请求头

        getHeader(string name)方法:String
        getHeaders(String name)方法:Enumeration
        getHeaderNames()方法

      3):获得客户机请求参数(客户端提交的数据)

        

    • getParameter(String)方法(常用)
    • getParameterValues(String name)方法(常用)
    • getParameterMap()方法(编写框架时常用)
    • getParameterNames()方法(不常用)

    三:request接收表单提交中文参数乱码问题

      1):post方式提交表单

      使用request.setCharacterEncoding("UTF-8");

      2):get方式提交表单

      解决方法:在接收到数据后,先获取request对象以ISO8859-1字符编码接收到的原始数据的字节数组,然后通过字节数组

    以指定的编码构建字符串,解决乱码问题。

      String name=request.getParameter("name");//接收数据

      name=new String(name.getBytes("ISO8859-1"),"UTF-8");//获取request对象以ISO8859-1字符编码接收到的原始数据的字节数组,然后

      通过字节数组以指定的编码构建字符串,解决乱码问题。

      3):URL地址后跟中文数据。

    <a href="${pageContext.request.contextPath}/servlet/RequestDemo05?userName=gacl&name=徐达沛">点击</a>

      <a href="${pageContext.request.contextPath}/servlet/RequestDemo05?userName=gacl&name=<%=URLEncoder.encode("陆伟", "UTF-8")%>">点击</a>

    四:request对象实现请求转发

    在servlet中实现请求转发的两种方式:

      servletcontext的getRequestDispatcher(String path)方法。该方法返回一个RequestDispatcher对象。调用这个对象的forward方法

    1 RequestDispatcher reqDispatcher =this.getServletContext().getRequestDispatcher("/test.jsp");
    2 reqDispatcher.forward(request, response);

    通过request对象提供的getRequestDispatche(String path)方法,返回一个requestDispatcher对象。
    request.getRequestDispatcher("/test.jsp").forward(request, response);

    request对象作为一个域对象(Map容器)使用时,主要是通过以下的四个方法来操作
    • setAttribute(String name,Object o)方法,将数据作为request对象的一个属性存放到request对象中,例如:request.setAttribute("data", data);
    • getAttribute(String name)方法,获取request对象的name属性的属性值,例如:request.getAttribute("data")
    • removeAttribute(String name)方法,移除request对象的name属性,例如:request.removeAttribute("data")
    • getAttributeNames方法,获取request对象的所有属性名,返回的是一个,例如:Enumeration<String> attrNames = request.getAttributeNames();
    请求重定向和请求转发的区别:
      一个web资源收到客户端请求后,通知服务器去调用另外一个web资源进行处理,称之为请求转发 /307
       通知浏览器去访问另外一个web资源进行处理,称为请求重定向/302
      
  • 相关阅读:
    go excel导入Demo
    redis限流Lua脚本
    线上机器CPU与内存升高排查
    错点
    自动化运维工具——ansible详解(一)
    k8s之命令记录
    k8s之监控集群资源利用率
    根据经纬度搜索附近的人
    微信小程序直接打开h5页面
    【python3】字符串格式化
  • 原文地址:https://www.cnblogs.com/bulrush/p/5668430.html
Copyright © 2011-2022 走看看