request 请求参数 转发服务器里的资源 共享域对象 session的获取
1.http请求头、请求体;
2.Request:
它的原理;
获取请求参数;
转发;
共享数据;
_HTTP_请求消息_请求头&请求体
请求头的格式:================= key:value;
不同请求的时候,key是固定的,value是变化的;
User-Agent头传递的信息?
浏览器相关的信息
Referer头传递的信息?
本次请求从哪里来;
通过Referer头防盗链,防君子不防小人;
Request_原理
Request对象是谁创建的? tomcat服务器软件
Request对象里面有什么内容? 请求消息;
Request_继承体系
顶层接口是谁? ServletRequest --HttpServletRequest;
实现类是谁提供的? tomcat服务器软件;
Request_获取请求行数据_方法介绍
获取虚拟目录? getContextPath();
获取Servlet路径(资源访问的路径)? getServletPath();
获取请求的URI? getRequestURI();
获取请求的URL? getRequestURL();
Request_获取请求行数据_代码演示
get请求后面如果有多个参数,应该怎么写? 用& 隔 这 username=gao&password=123;
什么是URL? 统一资源定位符; http://localhost:8080/fhw/index.jsp
什么是URI? 统一资源标识符; /fhw/index.jsp
uri 大于 url 具体 与 范围 的对比 :
Request_获取请求头数据(重点)
怎么获取指定头的值? getHeader("头的名称")
怎么获取所有的请求头名字? Enumeration<String> getHeaderNames();
什么情况下会有referer头传递到服务器? 桥转到不同 站点
****必须是通过a链接的方式点击跳转,才有这样的头信息(该信息是由浏览器默认添加的)
Request_获取请求体数据
请求体的数据被封装到一个流中了;
获取请求体的数据步骤?
1.根据request对象获取一个读取流
getReader();
getInputStream();
2.从流中读数据;
Request_获取请求参数通用方式介绍 (重点)
获取指定参数名称的值? getParameter("参数名");
获取指定参数名称的值的 数组?String[] getParameterValues("参数名");
获取所有参数名称? 枚举 Enumeration<String> getParameterNames();
获取所有参数名和值的集合? Map getParameterMap();
****
每次浏览器发送一个请求给服务器(tomcat)后,tomcat就会创建一个request对象来封装请求信息;
Request_获取请求参数中文乱码问题处理(重点)
post请求乱码怎么解决? request.setCharacterEncoding("utf-8");
Request_请求转发(重点)
什么是转发?服务器内部发生的资源跳转
request.getRequestDispatcher("目标资源的访问路径").forward(request,response;
转发的思考:
请求转发到另外一个资源后,浏览器地址栏的请求资源有没有发生变化?
没有
能不能把一个请求转发到当前服务器的外部资源?
不能
浏览器端发起了几次请求?
一次;
转发应用的场景? 下 篇 登录案例 将会展示
Request_共享数据(域对象)(重点)
一个request对象代表几个请求? 代表一个请求;
如何往request域中 set 放数据?
request.setAttribute(String name,Object value);
如何从request域中 get 取数据?
request.getAttribute(String name);
如何从request域中 remove 移除数据?
request.removeAttribute(String name);
*********request 域内 共享 的范围 一次请求 里的资源 共享多个资源
服务器内部转发的多个资源之间,共用同一个request对象;
Request_获取ServletContext
ServletContext getServletContext();
ServletContext:
Servlet的上下文环境;