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.获取所有请求头名称:EnumerationgetHeaderNames() 可以通过获取请求头的方式来判断浏览器的版本
请求头: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()
-
其他方法(掌握):
- 获取请求参数(通用的方式):
String getParameter(String)-->根据参数名获取参数值String[] getParameterValues(String name)-->根据参数名获取参数值EnumerationgetParameterNames():获取所有请求的参数名Map getParameterMap():获取所有参数的Map集合 - 请求转发:
1.通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String Path)2.使用RequestDispatcher对象来进行转发:forwaed(ServletRequest request , ServletRespomse respomse)- 共享数据:
- 域对象:一个有作用范围的对象,可以在范围共享数据
- 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");
- 请求转发的特点
- 浏览器地址栏路径不发生变化
- 只能转发道当前服务器内部资源中
- 转发是一次请求
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
