• request相关研究


    一.什么是httpservletrequest

    用来处理一个对Servlet的HTTP格式的请求信息。

    二.httpservletrequest的作用是什么

    优点:

    公共接口类HttpServletRequest继承自ServletRequest。客户端浏览器发出的请求被封装成为一个HttpServletRequest对象。对象包含了所有的信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的ip甚至客户端操作系统都包含在其内。

    三.如何获取httpservletrequest

    一.在SpringMVC中获取request对象的几种方式

    1.最简单的方式(注解法)

     

     

    @Autowired

    private  HttpServletRequest request;

    2.最麻烦的方法

       a. 在web.xml中配置一个监听

            <listener>  
                   <listener-class>  
                           org.springframework.web.context.request.RequestContextListener  
               </listener-class>  
            </listener>  

     b.之后在程序里可以用

            HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();  

    3.最直接的方法 

    public String hello(HttpServletRequest request,HttpServletResponse response) 

    二.在Struts2中获取request对象

    HttpServletRequest request = ServletActionContext.getRequest();

    四.如何用httpservletrequest

    获得客户机信息

    getRequestURL方法返回客户端发出请求时的完整URL。

    getRequestURI方法返回请求行中的资源名部分。

    getQueryString 方法返回请求行中的参数部分。

    getRemoteAddr方法返回发出请求的客户机的IP地址

    getRemoteHost方法返回发出请求的客户机的完整主机名

    getRemotePort方法返回客户机所使用的网络端口号

    getLocalAddr方法返回WEB服务器的IP地址。

    getLocalName方法返回WEB服务器的主机名

    getMethod得到客户机请求方式

    获得客户机请求头

    getHead(name)方法

    getHeaders(String name)方法

    getHeaderNames方法

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

    getParameter(name):获取指定名称的参数值。这是最为常用的方法之一。

    getParameterValues(String name):获取指定名称参数的所有值数组。它适用于一个参数名对应多个值的情况。如页面表单中的复选框,多选列表提交的值。

    getParameterNames():返回一个包含请求消息中的所有参数名的Enumeration对象。通过遍历这个Enumeration对象,就可以获取请求消息中所有的参数名。

    getParameterMap():返回一个保存了请求消息中的所有参数名和值的Map对象。Map对象的key是字符串类型的参数名,value是这个参数所对应的Object类型的值数组

     调用RequestDispatcher.forward 方法的请求转发过程结束后,

    浏览器地址栏保持初始的URL地址不变。

    HttpServletResponse.sendRedirect方法对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的访问请求;

    RequestDispatcher.forward方法在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了转发行为。

    RequestDispatcher.forward方法的调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个访问请求和响应过程;

    而HttpServletResponse.sendRedirect方法调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。

  • 相关阅读:
    [linux]Linux下的log
    [WDT]内部看门狗和外部看门狗
    [misc]printf/fprintf/sprintf/snprintf函数
    [Linux]read/write和fread/fwrite有什么区别
    移动端图片操作(二)——预览、旋转、合成
    移动端图片操作(一)——上传
    实现tap的多种方式
    Hammer.js分析(四)——recognizer.js
    Hammer.js分析(三)——input.js
    Hammer.js分析(二)——manager.js
  • 原文地址:https://www.cnblogs.com/yanduanduan/p/5948368.html
Copyright © 2020-2023  润新知