javaweb基础打卡17

Request对象

1.request对象和response对象的原理
	- 原理:
		1.tomcat服务器会根据请求url(http://localhost/day14/demo1)中的资源路径/demo1,创建对应的Demo01Servlet的对象
		2.tomcat服务器,会创建request和response对象,request对象中封装请求消息数据
		3.tomcat将request和response两个对象传递给service方法,并且调用service方法
		4.程序员可以通过request对象获取请求消息数据,可以通过response对象设置响应消息数据
		5.服务器在给浏览器做出响应之前,会从response对象中拿程序员设置的响应消息数据
	- 重点:
		1.request和response对象是由服务器创建的。我们来使用它们
		2.request对象是来获取请求消息,response对象是来设置响应消息
2.request对象继承体系结构:
	ServletRequest	-- 接口
		|
	HttpServletRequest	-- 接口
		|	实现
	org.apache.catalina.connector.RequestFacade		-- 类(tomcat)
3.request功能:
	1.获取请求消息数据
		1.获取请求行数据
			- GET /day14/demo1?name=zhangsan HTTP/1.1
			- 方法:
				1.获取请求方式:GET
					String getMethod()	String method = request.getMethod();
						
				*2.获取虚拟目录:/day14
					String getContextPath()		String contextPath = request.getContextPath();
				3.获取Servlet路径:/demo1
					String getServletPath()		String servletPath = request.getServletPath();
				4.获取get方式请求参数:name=zhangsan
					String getQueryString()		String queryString = request.getQueryString();
				*5.获取请求URI:/day14/demo1
					String getRequestURI()	/day14/demo1	String requestURI = request.getRequestURI();
					StringBuffer getRequestURL()	http://localhost/day14/demo1	StringBuffer requestURL = request.getRequestURL();
					
					- URL:统一资源定位符	http://localhost/day14/demo1	类似中华人民共和国
					- URI:统一资源标识符	/day14/demo1	类似共和国
				6.获取协议及版本:HTTP/1.1
					String getProtocol()	String protocol = request.getProtocol();
				7.获取客户机的IP地址:
					String getRemoteAddr()	String remoteAddr = request.getRemoteAddr();//0:0:0:0:0:0:0:1
		2.获取请求头数据
			- 方法:
				*1.String getHeader(String name):通过请求头的名称获取请求头的值
					- 演示获取请求头数据:user-agent
						String agent = request.getHeader("user-agent");
						//判断agent的浏览器版本
						if(agent.contains("Chrome")){
   
							//谷歌
							System.out.println("谷歌来了...");
						}else if(agent.contains("Firefox")){
   
							//火狐
							System.out.println("火狐来了...");
						}
					- 演示获取请求头数据:referer
						需在web/login.html中写:<a href="/day14/demo04Servlet">demo4.....</a>
						String referer = request.getHeader("referer");
						System.out.println(referer);//http://localhost/day14/login.html

						//防盗链
						if(referer != null){
   
							if(referer.contains("/day14")){
   
								//正常访问
				                //System.out.println("播放电影...");
								response.setContentType("text/html;charset=utf-8");
								response.getWriter().write("播放电影...");
							}else{
   
								//盗链
				                //System.out.println("想看电影吗?来优酷吧...");
								response.setContentType("text/html;charset=utf-8");
								response.getWriter().write("想看电影吗?来优酷吧...");
							}
				2.Enumeration<String> getHeaderNames():获取所有的请求头名称
					//演示获取请求头数据
					//1,获取所有请求头名称
					Enumeration<String> headerNames = request.getHeaderNames();
					//2.遍历
					while(headerNames.hasMoreElements
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值