jsp之session
session就是一个全局变量,是浏览器线程在服务器端的代理。web服务程序只要打开,session就会存在,当你第一次访问时,session会自动为你分配一个session ID,所以session为新建立的,所以session.isNew()为true。当你刷新页面时,这个session ID一直存在(session.getId()不变),不会消失,所以session.isNew()为false。除非你关闭你要访问的web站点,或则关闭session(session.invalidate()),这个session ID才会消失(session.getId()变了),isNew()为true。
两个方法 session.isNew() 判断是否是一个新session
session.getId() 得到这个session id
当关闭所有的浏览器,再重新登录的时候session.isNew()才会是true
当每次都新打开一个浏览器用不同的用户登录,session.isNew() 是为false。session.getId()是不变的,。
即:session id相当是打开一个浏览器进程(不是线程)时web服务器为本浏览器进程分配的id
常用方法:
long create_time = session.getCreationTime(); //session创建时间
long access_time = session.getLastAccessedTime();//session最后访问时间
//打印session里面的attribute值
Enumeration elements = session.getAttributeNames();
while (elements.hasMoreElements()) {
String id = (String)elements.nextElement();
}
response.setHeader("Refresh","5;url=/session_filter_listener/index.jsp");//每5秒钟刷新,然后定位到index.jsp ......
相关文档:
网络软件开发中最常用的两种计算模式,也就是网络程序模式:
B/S是 浏览器/服务器 模式,只要在服务器装好后,其他人只需要用浏览器(比如IE)就可以正常浏览;如网页游戏,开心网等。
C/S是 客户端/服务端 模式,服务器装好后,其他人还需要在客户端的电脑上安装专用的客户端软件才能正常浏览操作,如QQ,魔兽世界等。
......
JSTL <c:out value="${EL}">不能正确输出的问题
由于Jsp2.0向后兼容的特性, 当遇到使用Jsp 1.2(Servlet v2.3)的网站时会默认的禁用JSP2.0 EL,所以导致c:out不能正确输出。
(这里注意Jsp 1.2禁用JSP2.0的EL,而是去使用JSTL 1.0 taglib去解析EL。所以使用JSP 1.2+JSTL 1.0不会出问题,
而使用了JSP 1.2+JSTL 1 ......
Servlet:
当然,在servlet中,一般跳转都发生在doGet, doPost等方法里面。
一、原理
1) redirect 方式
response.sendRedirect("/a.jsp");
页面的路径是相对路径。sendRedirect可以将页面跳转到任何页面,不一定局限于本web应用中,如:
response.sendRedirect("http://www.ycul ......
这几天做了一个项目,大量用到了JSP与 servlet之间的传值,所以总结了一下
JSP与 servlet之间的传值有两种情况:JSP -> servlet, servlet -> JSP。
通过对象 request和 session (不考虑 application)完成传值。
一、JSP -> servlet
JSP页面有3种方法向 servlet传值: form表单、URL 、其他
<!--&nbs ......