session对象

ActionContext和ServletActionContext小结

假如想象 提交于 2020-02-29 13:15:32
1. ActionContext 在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对JavaServlet Http的请求(HttpServletRequest),响应(HttpServletResponse)操作. 我们需要在Action中取得request请求参数"username"的值: ActionContext context = ActionContext.getContext(); Map params = context.getParameters(); String username = (String) params.get("username"); ActionContext(com.opensymphony.xwork.ActionContext)是Action执行时的上下文,上下文可以看作是一个容器(其实我们这里的容器就是一个Map而已),它存放的是Action在执行时需要用到的对象. 一般情况, 我们的ActionContext都是通过: ActionContext context = (ActionContext) actionContext.get();来获取的.我们再来看看这里的actionContext对象的创建:

会话技术Cookie&Session

旧巷老猫 提交于 2020-02-29 09:46:56
   学习Servlet三个域对象:ServletContext(web项目)、request(一次请求)、Session(一个客户端)!均有相同的方法!   从用户开始打开浏览器进行操作,便开始了一次会话,直至关闭浏览器为止结束。在此过程中,每次产生请求时均会产生一次cookie,同时会产生一个JESSIONID进入到客户端进行创建内存空间,下次调用直接寻找此唯一的ID值。数据存储在两个地方均有利弊!需要注意的是,浏览器关闭,session并没有销毁! 一、会话技术简介: 1、存储客户端的状态:   因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端的状态。 会话技术是帮助服务器记住客户端状态(区分客户端) 2、会话技术: ①、从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话。会话技术就是记录这次会话中客户端的状态与数据的。 ②、会话技术分为Cookie 和Session: Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清楚cookie. Session:将数据存储到服务器端,安全性相对好,增加服务器的压力。 二、Cookie技术: 1、服务器向客户端发送一个Cookie(不能存中文) Cookie cookie=new Cookie(String

深入研究java.lang.ThreadLocal类

我的梦境 提交于 2020-02-29 08:45:26
一、概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。 从线程的角度看,每个线程都保持一个对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收(除非存在对这些副本的其他引用)。 通过ThreadLocal存取的数据,总是与当前线程相关,也就是说,JVM 为每个运行的线程,绑定了私有的本地实例存取空间,从而为多线程环境常出现的并发访问问题提供了一种隔离机制。 ThreadLocal是如何做到为每一个线程维护变量的副本的呢?其实实现的思路很简单,在ThreadLocal类中有一个Map,用于存储每一个线程的变量的副本。 概括起来说,对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal采用了“以空间换时间”的方式。前者仅提供一份变量,让不同的线程排队访问

Django session 详解-part II-session

邮差的信 提交于 2020-02-29 05:58:16
Django中的session是一个高级工具,它可以让用户存储个人信息以便在下次访问网站中使用这些信息。session的基础还是cookie,但是它提供了一些更加高级的功能。请看下面的一个例子: 使用session: 这个例子中实现了一个简单的计数功能: def test_count_session(request): if 'count' in request.session: request.session['count'] += 1 return HttpResponse('new count=%s' % request.session['count']) else: request.session['count'] = 1 return HttpResponse('No count in session. Setting to 1') 比较session和cookie的使用我们可以发现他们有一下几点不同: session管理更加统一和方便:每个session中的属性值可以使用查询以及修改操作。 虽然我们在例子中只是使用了一个整数的属性,但实际上session中还可以包含很多类型的属性,比如字典属性,并且它可以很方便地用 Python 中的内建方法访问它们。 虽然我们在session中设置了一个计数器count,但是如果我们抓取当前的cookie时会发现

springboot+websocket+vue

£可爱£侵袭症+ 提交于 2020-02-29 04:32:53
一 后端 1. pom.xml中引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> 2. 写一个websocket配置类 @Configuration public class WebSocketConfig { @Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); } } 3. 写一个websocket工具类 @Component @ServerEndpoint("/socket") public class WebSocketServer { /** * 全部在线会话 */ private static Map<String, Session> onlineSessions = new ConcurrentHashMap<>(); /** * 当客户端打开连接:1.添加会话对象 2.更新在线人数 */ @OnOpen public void onOpen(Session session) { onlineSessions.put

Toad 所有 菜单说明(太多)

对着背影说爱祢 提交于 2020-02-28 15:33:02
菜单说明 新版本 toad 软件中, 比较有用的菜单 session 菜单 Session Information: 显示当前session的用户的情况, 比如权限, 授权等 Database 菜单 (很多功能都是重复的) administrator: 审计, 参数, redo, tablespace 等 monitor: ~ top session finder(监控session), ~ database browser : database 的全部内容, 包括参数, 表空间, 数据文件等 ~ database monitor : 动态监视, 包括 logical I/O, session, sga, physical IO, call rates, shared pool, waitevent 等等. ~ server statistics: 包括, waits, latches, sessions 等等 ~ session browser : 可以用来 kill session, 另外还有针对 session 的 wait event 等. ~ SGA Trace : 针对 SGA 的使用情况, 详细列出了所有的 sql list. ~ SQL Tracker : 打开这个, 你在toad中的所有操作, 都会有对应的SQL语句被输出. diagnose: alert log

JavaEE 7 新特性之WebSocket

荒凉一梦 提交于 2020-02-28 07:28:29
开发环境: JDK:1.7及以上 JavaEE:1.7,因为只有javaee7才有websocke的api, 也可以使用1.6单都导入websocket-api.jar试试(本人不清楚) 注意:没有使用springmvc websocket包,利用的是JavaEE7 javax.websocket包,不需要任何xml配置     springMVC也集成了websocket,不了解 -------------------------------------------------------------------------------------------------------------------------------------------- Servlet和JSP规范版本对应关系: Servlet规范版本 JSP版本 JSF版本 JAVA EE版本 Servlet2.3 JSP1.2、JSP1.1 J2EE1.3 Servlet2.4 JSP2.0 JSF1.1 J2EE1.4 Servlet2.5 JSP2.1 JSF1.2、JSF2.0 Java EE5 Servlet3.0 JSP2.2 Java EE6 Tomcat所对应的Servlet/JSP规范和JDK版本: Servlet/JSP Spec Apache Tomcat version Actual

SpringBoot + WebSocket 开发笔记

我怕爱的太早我们不能终老 提交于 2020-02-28 07:21:27
1. 服务端的实现 ,我尝试了两种方式: 第一种是用“@ServerEndPoint”注解来实现,实现简单; 第二种稍显麻烦,但是可以添加拦截器在WebSocket连接建立和断开前进行一些额外操作。   不管用哪种实现方式,都需要先导入jar包(如下),其中version根据实际springboot版本选择,避免冲突 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> <!-- <version>1.3.5.RELEASE</version> --> </dependency> 1.1 第一种实现方法 (1)WebSocket 业务逻辑实现。参数传递采用路径参数的方法,通过以下方式获取参数: @ServerEndpoint("/testWebSocket/ {id} / {name} " ) public void onOpen(Session session, @PathParam(" id ") long id, @PathParam(" name ") String name) import java.util.concurrent.CopyOnWriteArraySet; import javax

WebSocket的介绍

妖精的绣舞 提交于 2020-02-28 02:04:34
WebSocket websocket的背景 现在,很多网站为了实现推送技术,所用的技术都是 Ajax 轮询或者long poll 。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。 websocket的特点 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。 在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。 Ajax轮询 ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息。 场景再现: 客户端:啦啦啦,有没有新信息(Request) 服务端:没有(Response) 客户端:啦啦啦,有没有新消息(Request) 服务端:好啦好啦,有啦给你。(Response) 客户端:啦啦啦,有没有新消息

关于Session过期和失效

怎甘沉沦 提交于 2020-02-28 00:44:49
20:02:47    Session虽然我们经常在用,但以前对此理解不深,今天特别整理如下:      1.什么是Session? session其实就是一个Map,【键=值】对,通过session.getAttribute("name"); 获得session中设置的参数。      2.session的过期时间是从什么时候开始计算的?是从一登录就开始计算还是说从停止活动开始计算?       从session不活动的时候开始计算,如果session一直活动,session就总不会过期。 从该Session未被访问,开始计时, 一旦Session被访问, 计时清零。      3.设置session的失效时间   a)web.xml中  <session-config> <session-timeout>30</session-timeout> </session-config>   b)在程序中手动设置    session.setMaxInactiveInterval(30 * 60); //设置单位为秒,设置为-1永不过期   c)tomcat也可以修改session过期时间,在server.xml中定义context时采用如下定义:    <Context path="/livsorder" docBase="/home/httpd/html/livsorder"