zoukankan      html  css  js  c++  java
  • ServletRequest使用介绍

      ServletRequest:

        定义将客户端请求信息提供给某个 servlet 的对象;servlet 容器创建 ServletRequest 对象,并将该对象作为参数传递给该servletservice方法

           

      

        通过文档阅读可以看到HttpServletReuqest不是相关请求的顶级接口,它继承自父接口——ServletRequest:

          

        HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息;

        通过Request对象进行的常用操作:

      • 获取客户机信息
      • 获取请求头信息  
      • 获取请求参数  
      • 利用请求域传递对象
    • 获取请求行信息

      • API介绍

    String getMethod() 	获取请求方式的类型
    
    String getRequestURI()  获取请求行中的资源名部分:/项目名/资源名
    
    StringBuffer getRequestURL()  获取客户端发出请求完整URL 如http://localhost:8080/项目名:资源名
        注:
    	uri: 统一资源标识符,用来标识一个资源,资源路径(相当于身份证)
    	url: 统一资源定位符,是一种具体的URI,可以用来标识一个资源.并且指明了如何定位一个资源(相当于身份证中的地址)
    
    String getProtocol()  获取当前协议的名称和版本
    
    String getRemoteAddr()	获取客户端的IP地址
    

      

    • 获取请求头信息

      • API介绍

    String getHeader(String name)  以String 的形式返回指定请求头的值
    
    Enumeration getHeaderNames() 返回此请求包含的所有头名称的枚举
    • 获取请求参数

      • API介绍

    String getParameter(String name)  根据表单的name属性 获取对应的值
    
    String[] getParameterValues(String name)  获取name相同的所有value 如复选框
    
    Map getParameterMap()  参数名作为key,参数值作为value,封装到map中
    
    void setCharacterEncoding(String env)  设置请求体的编码
        注意:获取请求参数之后,调用setCharacterEncoding方法无效
    

      

    • 其他作用

      • 获取工程名字 

        • API介绍

    String getContextPath()  获取工程名字
      • 获取当前      

        • API介绍
    String getServletPath()  获取获得客户端所请求的脚本文件的文件路径
    

        如果请求路径是:http://localhost:8080/mytest/demo,request.getContextPath()得到的是:/mytestrequest.getServletPath()得到的是:/demorequest.getRequestURI()得到的是:/mytest/demo;request.getRequestURL()得到的是:http://localhost:8080/mytest/demo;

      • 作为域对象

        • 域对象是一个容器,这种容器主要用于servlet与servlet之间的数据传输使用的;request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
        • API介绍
    void setAttribute(String name, Object o)  设置数据到request域
    
    Object getAttribute(String name)  从request域获取数据
    
    void removeAttribute(String name)  从request域移除数据
    

        

      • 请求转发

        • 一种在服务器内部的资源跳转方式
        • API介绍
    RequestDispatcher getRequestDispatcher(String path) 获取请求转发器(request对象方法)
    
    void forward(ServletRequest request, ServletResponse response) 将请求转发到另一个资源(servlet)上(RequestDispatcher对象的方法)
        • 使用步骤
    1. 通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path)
    2. 使用RequestDispatcher对象来进行转发:forward(ServletRequest request, ServletResponse response)
        • 特点
    1. 浏览器地址栏路径不发生变化
    2. 只能转发到当前服务器内部资源中
    3. 转发是一次请求
    

      

  • 相关阅读:
    Linux学习之telnet命令
    Linux学习netstat
    php 将字符串中的连续多个空格转换为一个空格
    erlang: Programming Rules and Conventions。
    jQuery.data() 方法
    检测一个DOM对象是否为空
    PHP 根据类名和方法名已面向对象的方式执行函数。
    PHP函数前面的@。
    php涉及数据库操作时响应很慢。
    Apache实现动态虚拟主机
  • 原文地址:https://www.cnblogs.com/coder-zyc/p/10620281.html
Copyright © 2011-2022 走看看