没有 HttpServletRequest.getSession(true) ,Sesion是不会创建的, 即便Servlet又转发(或者重定向)到第二个页,只要第二个页(html)依然不是jsp页,Session就依然不会创建,如果是jsp则自动创建一个session对象,放到jsp的内置对象里面:jsp生成的servlet.java
//可以看到内置对象有session:
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {
JspFactory _jspxFactory = null;
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;
try {
_jspxFactory = JspFactory.getDefaultFactory();
response.setContentType("text/html;charset=UTF-8");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;
out.write("\r\n");
out.write("\r\n");
out.write("\r\n");
out.write("<html>\r\n");
out.write("<head>\r\n");
String selfUrl = (String) SystemParameter.getValue(ConfigClassType.SYSTEM, "SSO", "SelfUrl");
out.write("\r\n");
out.write("</head>\r\n");
out.write("<body>\r\n");
out.write("<SCRIPT language=\"javascript\">\r\n");
out.write("<!--\r\n");
out.write("top.window.location = '");
out.print( request.getContextPath());
out.write("/loginindex.do';\r\n");
out.write("//-->\r\n");
out.write("</SCRIPT> \r\n");
out.write("<!-- top.window.location = '");
out.print( request.getContextPath() + selfUrl);
out.write("';-->\r\n");
out.write("<!-- top.window.location = '");
out.print( request.getContextPath());
out.write("/loginindex.do';--> \r\n");
out.write("</body>\r\n");
out.write("</html>");
} catch (Throwable t) {
if (!(t instanceof SkipPageException)){
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
out.clearBuffer();
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
}
} finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
}
}
- 浏览: 502164 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (437)
- Windows设置 (2)
- oracle数据库 (39)
- bug--jsp (4)
- j2se (13)
- js (40)
- bug-tomcat不能启动程序 (1)
- Hibernate (29)
- eclipse (20)
- java (65)
- 设计模式 (6)
- bug (18)
- PL/SQL (11)
- 前台 (5)
- 杂谈 (25)
- UML (1)
- jdbc编程 (2)
- 技术调研 (1)
- 数据通信 (2)
- ios (1)
- servlet自学笔记 (10)
- tomcat (9)
- SQL学习笔记 (6)
- java工具 (1)
- 数据库设计 (4)
- javascript (10)
- jsp (11)
- struts (17)
- ajax (7)
- linix/Unix (6)
- 资源 (3)
- spring (14)
- 算法 (5)
- 计算机网络 (2)
- http (5)
- c++ (2)
- web应用 (3)
- jvm (5)
- java中的字符编码 (14)
- java代码库 (2)
- classloader (1)
- 读书笔记 (1)
- c (1)
- 开源软件 (1)
- svn (1)
- AOP (1)
- java序列化 (1)
- 多线程 (4)
- The legendary programmers (1)
- Apache http Server (1)
- html tag (3)
- struts1.X学习笔记 (5)
- buffalo (1)
- 自己收藏 (0)
- TOEFL(IBT) (1)
- 网络翻墙 (0)
- 编译原理 (1)
- 书籍推荐 (1)
- css (10)
- javaee环境搭建资料 (1)
- 开源工具 (1)
- 美国生活 (1)
- spring自学 (3)
- log4j (3)
- 算法与数据结构 (5)
- 病毒,插件处理大全 (1)
- flex (2)
- webservice (1)
- git (7)
- cs (1)
- html (4)
- javaee (6)
- 开车 (0)
- springmvc (3)
- 互联网架构 (2)
- intellij idea (18)
- maven (15)
- mongodb (2)
- nginx (1)
- react (3)
- java基础例子 (2)
- springboot (2)
- 培训 (5)
- mysql (3)
- 数据库 (3)
- 生活 (2)
- intellij (3)
- linux (2)
- os (3)
最新评论
-
潇洒天涯:
[color=blue][color=cyan] ...
oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 -
hekai1990:
受教了..
oracle中的varchar2
发表评论
-
【转】web.xml 配置404和500错误的自定义页面
2016-01-03 15:16 1307web.xml Xml代码 &l ... -
【转】JSP中的EL表达式详细介绍
2015-12-08 17:46 1653一、JSP EL语言定义 EL ... -
【转】在JSP2.0中使用EL表达式语言
2013-12-20 15:48 950本文讲述在JSP2.0中 ... -
【转】JAVA获取服务器路径
2012-08-06 16:36 1146获取服务器路径 在JSF环境中获取到ServletContex ... -
Cannot find bean XXXForm in any scope
2012-06-15 13:43 1017action-mappings > < ... -
【转】剖析JSP和servlet的中文处理编译过程(转)
2012-06-14 16:20 1077汉字是双字节的。所谓双字节是指一个双字要占用两个BYTE的 ... -
jsp 编译期、运行期流程问题
2012-06-13 14:31 913我们都知道在jsp中include有两种形式,分别是 < ... -
【转】JSP 防止重复提交 防止重复刷新 防止后退问题以及处理方式
2012-06-07 11:18 979一。前言你在任何一个比较专业的BBS都会看到这样的问题 ... -
【转】几秒钟跳转页面动态显示时间
2012-04-16 12:59 1096实现起来很简单,注意 1.在头部加 <meta ... -
【转】MyEclipse中JSP文件无法保存中文的问题的解决
2012-03-31 09:51 1088在MyEclipse操作界面中:window-->pre ...
相关推荐
- **统计在线用户**:通过监听Session创建和销毁,可以实时统计网站上的在线用户数量。 - **资源释放**:在Session销毁时,可以清理与之关联的数据库连接或其他资源。 - **安全控制**:检测长时间未活动的Session...
用户登录时,调用LoginServlet,将用户名写入application的在线用户列表中,用户退出时,调用LogoutServlet,调用session.invalidate(),交给HttpSessionListener的sessionDestroyed()方法,将用户从在线列表中删除。...
在本文中,我们主要探讨了在使用Spring Session以及Redis作为存储方式时,由于消息监听导致创建大量线程的问题及其解决方案。我们将从Spring Session的基础知识、Redis在Spring Session中的作用、监听机制导致线程...
当用户首次访问网站时,服务器会为该用户创建一个唯一的Session ID,并将其存储在服务器的内存中。这个ID随后通过Cookie或者URL重写等方式返回给客户端。每次客户端请求服务器时,都会携带这个Session ID,服务器...
每个用户访问网站时,服务器都会为该用户创建一个唯一的会话标识(session ID),通过这个标识可以在多次请求之间共享数据。系统session和报表session是两个独立的概念,它们在Web服务器下共存时,不会发生冲突,...
首先,`Session` 对象的创建通常发生在用户第一次访问受保护的资源时。服务器通过 `HttpServletRequest` 对象的 `getSession()` 方法来创建一个新的 `HttpSession` 实例。如果当前会话不存在,该方法会创建一个新的...
如果没有sessionId就新创建session,如果有sessionId,就去redis中查看是否有此id的记录,如果没有就新建session,如果有,还是新建session,并把redis中此session的相关数据赋值给新建的session,最后保存sessionId...
6. 取得用户最后一次操作的时间: 方法:`public long getLastAccessedTime()`, 用户在线时间 = Session 最后一次操作时间 - Session 创建时间。 Session 与 Cookie 的区别 Session 将信息保存在服务器上,而 ...
Session监听器是Servlet API提供的一种机制,允许开发者对Session的生命周期事件进行监听和处理,比如Session创建、更新、失效等。下面,我们将深入探讨Session监听及其在实际应用中的作用。 首先,我们需要了解...
Session的工作原理是,当用户访问服务器并进行登录或其他需要记录状态的操作时,服务器会在内存中创建一个唯一的Session ID,并将其发送给浏览器。这个Session ID通常以Cookie的形式存储在客户端。之后,每当客户端...
1. **Session的创建与销毁**:实验可能涉及到如何在服务器端创建一个新的Session,以及在用户登出或会话超时时如何销毁Session。通常,开发者会设置一个会话超时时间,超过这个时间未收到客户端的请求,服务器将自动...
- **创建**:当用户第一次访问服务器时,如果没有提供有效的 Session ID,则服务器会为该用户创建一个新的 Session,并将 Session ID 存储在 Cookie 中返回给客户端。 - **销毁**:Session 的销毁可以由服务器自动...
当用户访问网站时,服务器会为每个用户创建一个唯一的Session ID,并将其通过Cookie返回给浏览器。之后,浏览器在每次发送请求时都会带上这个Session ID,服务器根据ID找到对应的Session数据。 在JavaScript中,...
当用户登录网站后,服务器会创建一个Session对象,并将其关联到用户的浏览器。这个Session对象通常包含用户的一些关键信息,如用户名、权限等。然而,为了安全考虑,Session不会无限期地保持活跃状态,而是设置有...
重写session机制,默认session是以临时文件形式存储在服务器,将session写入数据库,建表和注释写的都很清晰,已测试
HttpSessionListener提供了对Session创建、销毁事件的监听,而HttpSessionAttributeListener则可以监听Session属性的变化,比如添加、移除和替换事件。 以下是创建一个简单的HttpSessionListener的例子: ```java ...
对于更复杂的交互场景,开发者需要借助如CreateProcessAsUser这样的API,或者使用WCF(Windows Communication Foundation)、.NET远程处理等技术进行跨Session通信,实现在用户桌面创建应用程序界面。例如,服务可以...
1. 创建一个Springboot项目,添加spring-session-data-redis依赖项。 2. 配置Redis服务器,用于存储Session数据。 3. 在应用程序中使用Spring Session代替传统的HTTPSession。 4. 使用Nginx或其他反向代理服务器来...
在这种情况下,使用Hibernate-nosession模式可以避免创建和管理Session的开销,从而提高应用性能。nosession模式并不意味着完全不使用Hibernate,而是尽量减少对Session的依赖,转而使用其他API,例如Query或...