Reques

Request

  • 获取请求行数据 请求方式 /虚拟目录/路径/参数 版本号

       1.获取请求方式:String getMethod()2.获取虚拟目录(掌握):String getContextPath()3.获取Servlet路径:String getServletPath()4.获取get方式的请求参数:String getQueryString()5.获取URI(掌握): String getReuestURI();-->虚拟目录+路径StringBuffer getRequestURL()-->http:ip地			 址+虚拟目录+路径6.获取协议版本号:String getProtocol()7.获取客户端的ip地址:String getRemoteAddr()
  • 获取请求头数据

    1.通过请求头的名称获取请求头的值(掌握):String getHeader(String naem);
    2.获取所有请求头名称:Enumeration getHeaderNames()
    

    可以通过获取请求头的方式来判断浏览器的版本

    请求头:user-agent-->请求版本String agent = request.getHeader("user-agent")
    if(agent.contains("Chrome")){sout("谷歌")}else if(...)
    

    ​ 防盗链

    请求头:refererString referer = request.getHeader("referer");
    if(referer!=nuull){if(referer.contains("自己的地址")){//正常访问}else{//非正常}
    }
    
  • 获取请求体数据–>post方式

步骤:1.获取流对象*BufferedReader getReader():获取字符输入流,只能操作字符数据*ServletInputStream getInputStream():获取字节输入流 操作所有数据2.再从流对象中拿数据*字节 readeline()

  • 其他方法(掌握):

    1. 获取请求参数(通用的方式):
    	String getParameter(String)-->根据参数名获取参数值String[] getParameterValues(String name)-->根据参数名获取参数值Enumeration getParameterNames():获取所有请求的参数名Map getParameterMap():获取所有参数的Map集合
    
    1. ​ 请求转发:
    1.通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String Path)2.使用RequestDispatcher对象来进行转发:forwaed(ServletRequest request , ServletRespomse respomse)
    
    1. 共享数据:
      1. 域对象:一个有作用范围的对象,可以在范围共享数据
      2. request域:代表一次请求的范围,一般用于请求的多个资源共享数据
request域的方法:1.setAttribute(String name ,Object obj);存取数据2.Object getAttitude(String naem):通过键获取值3.removeAttribute(String name)
  • 获取ServletContext:
ServletContext getServletContext()
  • 中文乱码问题:
get方式:tomcat 8 已经解决
post方式: 再获取参数前,设置request的编码request.setCharacterEncoding("utf-8");
  • 请求转发的特点
    1. 浏览器地址栏路径不发生变化
    2. 只能转发道当前服务器内部资源中
    3. 转发是一次请求


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部