zoukankan      html  css  js  c++  java
  • 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对象,它们属于两个独立的访问请求和响应过程。

  • 相关阅读:
    【JavaScript从入门到精通】第二课 初探JavaScript魅力-02
    【JavaScript从入门到精通】第一课 初探JavaScript魅力-01
    程序员技术周刊
    【Geek软技能】程序员,为什么写不好一份简历?
    众里寻他千百度?No!这项技术只需走两步就能“看穿”你!
    PornHub 正式发布 AI自动标注色情演员引擎
    9 月份 GitHub 上最火的 JavaScript 开源项目!
    累了吗?来挑战一下算法趣题,看看自己是哪个段位的程序猿吧!
    Chrome 开发者控制台中,你可能意想不到的功能
    现代软件工程 作业 最后一周总结
  • 原文地址:https://www.cnblogs.com/yanduanduan/p/5948368.html
Copyright © 2011-2022 走看看