JSP内置对象简介.png
out对象:它是JspWriter类的实例,是向客户端输出内容常用的对象。
request对象:它表示客户端的一次请求,这个请求里面的信息是被封装在request对象中的。同时它也是HttpServletRequest类的实例,并且具有请求域,也就是在完成客户端的请求之前,该对象是一直有效的。
常用方法:
request.setCharacterEncoding("UTF-8");//设置编码,解决中文乱码问题。
request.setAttribute("","");//前者为需要设置的属性,后者为需要的值。
request.getAttribute();
request.getRequestDispatcher("index.jsp").forward(request, response);//请求转发到index.jsp页面,该请求对象是一直有效的。
response对象:它包含了响应客户请求的相关信息,它也是HttpServletResponse类的实例。和request一样,它具有页面的作用域,也就是在访问一个页面的时候,该页面的response对象只对这次访问有效,往后执行是不存在、无效的。
常用方法:
response.setContentType("text/html","charset="utf-8");//设置响应的MIMI类型。
response.sendRedirect("index.jsp");//请求重定向,如果存在多次重定向,那么对象数据是不会保存下来的,即为null。
请求转发和请求重定向的区别分析:
response对象:它包含了响应客户请求的相关信息,它也是HttpServletResponse类的实例。和request一样,它具有页面的作用域,也就是在访问一个页面的时候,该页面的response对象只对这次访问有效,往后执行是不存在、无效的。
常用方法:
response.setContentType("text/html","charset="utf-8");//设置响应的MIMI类型。
response.sendRedirect("index.jsp");//请求重定向,如果存在多次重定向,那么对象数据是不会保存下来的,即为null。
请求转发和请求重定向的区别分析:
请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变。
请求转发:服务器行为,request.getRequestDispatcher().forward(req, resp);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。
session对象:当我们第一次访问页面的时候,session对象就会被自动装载和创建。它是HttpSession类的实例对象。
什么是会话?为什么要用session对象?
会话:当一个客户端打开浏览器连接到服务器开始,到客户端关闭浏览器服务器结束这个过程,我们称为一个会话。
在实际情况下,客户在访问服务器的过程中,避免不了会在服务器的几个页面之间切换,这时候服务端有必要知道当前操作的客户是不是操作前几个页面的客户,也就是必须要清楚知道是否同一个人在进行操作。所以就引入了session对象这个概念。
application对象:它实现了用户间数据的共享,可以存放全局变量,它是ServletContext类的实例。它的生命周期开始于服务器的启动,终止于服务器的关闭。
注:
①在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作。
②在任何地方对application对象属性的操作,都将影响到其他用户对此的访问。
JSP的指令和动作:
①三个编译指令:page、include、taglib。
②七个动作指令:jsp:forward、jsp:param、jsp:include、jsp:plugin、jsp:useBean、jsp:setProperty、jsp:getPProperty。
JSP指令:
JSP指令.png
include指令和include动作指令区别:
include指令与include动作的区别.png
Session的生命周期
session的生命周期.png
Session生命周期的“活动”思路:
①某次会话当中通过超链接打开的新页面属于同一次会话。
②只有当前会话页面没有全部关闭,重新打开新的浏览器窗口访问同一项目资源时属于同一次会话。
③除非本次会话的所有页面都关闭后再重新访问某个Jsp或者Servlet将会创建新的会话。
注:
注意原有会话是还存在的,只是这个旧的SessionId仍然存在于服务端,只不过再也没有客户端会携带它然后交予服务端校验。