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<String> getHeaderNames()
    

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

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

    ​ 防盗链

    请求头:referer
    
    String 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<String> getParameterNames():获取所有请求的参数名
    	Map<String STring[]> 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. 转发是一次请求
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值