1.会话信息保存在服务器内存上,可以断续访问,和cookie相比,其保存在服务器上。
2.男人就像蓝牙:只有在你接近时,他才会找上你。当你离开后,他便又去找其他的“设备”了。女人就像Wi-Fi:她能看到周围所有的“设备”,但只选择强壮的那个“接入”。
3.会话关闭:浏览器关闭,主动关闭,会话超时
4.会话底层实现:cookie和url重写(保存的是sessionID,就是调用response.encodeURL,那么自动加上id)
5.session里有创建时间和最后访问时间,不同于cookie(还得自己写),不过返回的是毫秒数,那么new Date(方法)
6.javabean的类必须是public的,否则不能访问的!!!一定要用public申明
7.BeanUtils主要提供了对于JavaBean进行各种操作。
8.forward是服务器转发,在servlet内部,而sendRedirect是重定向(通过浏览器)。
再来看一个具体例子!!!参考:http://zhaoyuqiang.blog.51cto.com/6328846/1132795
<html><head><title>web</title></head><body><h1>我的技术博客:http://zhaoyuqinag.blog.51cto.com</h1></body></html>
<%@ page language="java" contentType="text/html" pageEncoding="gbk" %><html><head><title>web</title></head><body><%
System.out.println("====forward跳转之前=========");%>
<jsp:forward page="turnAfter.html"/><%
System.out.println("====forward跳转之后=========");%>
</body></html>
运行一下,看浏览器的结果,的确是跳转了,但是地址栏并没有发生改变,更有趣的是看一下服务器的结果,如下图所示:
根据结果显示,只有跳转之前,而没有跳转之后。我们再来看另一种跳转方式会怎么样。
<%@ page language="java" contentType="text/html" pageEncoding="gbk" %><html><head><title>web</title></head><body><%
System.out.println("====response跳转之前=========");%>
<% response.sendRedirect("turnAfter.html");%><%
System.out.println("====response跳转之后 =========");%>
</body></html>
运行一下,看一下服务器的结果如下:
可以看出forward属于无条件的跳转。跳转之前的语句会执行,而跳转之后的语句将不会执行,那么如果现在在jsp中使用了JDBC的话,很明显必须子啊跳转之前进行数据库的关闭,否则数据库就再也无法关闭了;sendredirect跳转是在所有语句都执行完之后才完成的操作。