session

java servlet Listener监听器

核能气质少年 提交于 2020-03-10 11:08:18
现在来说说Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,它也是随web应用的启动 而启动,只初始化一次,随web应用的停止而销毁。主要作用是:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些 固定的对象等等。首先来看一下ServletContextListener接口的源代码: [java] view plain copy public abstract interface ServletContextListener extends EventListener{ public abstract void contextInitialized(ServletContextEvent paramServletContextEvent); public abstract void contextDestroyed(ServletContextEvent paramServletContextEvent); } 下面利用监听器对数据库连接池DataSource的初始化演示它的使用:ListenerTest.java [java] view plain copy import javax.servlet.ServletContext; import javax

第7章 监听器Listener

霸气de小男生 提交于 2020-03-10 11:07:04
Listener概述 Listener的使用 使用Listener需要实现相应的Listener接口。 public class SessionListenerTest implements HttpSessionListener { public void sessionCreated(HttpSessionEvent se) { HttpSession session = se.getSession(); System.out.println(" 新创建了一个 session: " + session); } public void sessionDestroyed(HttpSessionEvent se) { HttpSession session = se.getSession(); System.out.println(" 销毁了一个 session: " + session); } } 以上代码实现了HttpSessionListener接口。创建Session时会是服务器调用SessionCreated()方法,销毁Session时服务器调用sessionDestroyed()方法。他们都以HttpSessionEvent对象为参数,可以从该参数中获取session。Listener需要在web.xml中配置才能生效。 配置如下: <listener>

面试实题:No.13

梦想的初衷 提交于 2020-03-10 10:51:59
1、简单介绍一下dubbo,dubbo的作用,以及dubbo的原理 。 Dubbo是阿里巴巴公司开源的一个高性能优秀的分布式服务框架。 分析源代码,基本原理如下: client一个线程调用远程接口,生成一个唯一的ID(比如一段随机字符串,UUID等),Dubbo是使用AtomicLong从0开始累计数字的将打包的方法调用信息(如调用的接口名称,方法名称,参数值列表等),和处理结果的回调对象callback,全部封装在一起,组成一个对象object向专门存放调用信息的全局ConcurrentHashMap里面put(ID, object)将ID和打包的方法调用信息封装成一对象connRequest,使用IoSession.write(connRequest)异步发送出去 当前线程再使用callback的get()方法试图获取远程返回的结果,在get()内部,则使用synchronized获取回调对象callback的锁, 再先检测是否已经获取到结果,如果没有,然后调用callback的wait()方法,释放callback上的锁,让当前线程处于等待状态。 服务端接收到请求并处理后,将结果(此结果中包含了前面的ID,即回传)发送给客户端,客户端socket连接上专门监听消息的线程收到消息,分析结果,取到ID,再从前面的ConcurrentHashMap里面get(ID)

php168分类系统与dz ucenter整合

情到浓时终转凉″ 提交于 2020-03-10 09:44:11
今天有个学弟问我关于168和UC整合的问题,稍微观察了一下php168的系统。后台整合中仅可以选择7.X版本。目测是针对以前单纯的论坛系统,并且还是UC和DZ放在一起的那种安装方式。 整合过程中关于站点选择的问题,选择dz7.x路径无论如何选择都是错误的 这里查看了一下源代码,正则匹配的路径是错误的,所以无论如何选择都是无法查找到正确的地址 这需要修改admin文件夹blend.php地16行的代码 if(eregi("^dzbbs",$webdbs[passport_type])) 修改为 if(eregi("^dzbbs\d+",$webdbs[passport_type])) 即可匹配到正确的地址 接着在UC添加新的应用,将应用路径指向php168根目录的do文件夹,提交之后复制生成的UC连接信息,打开do文件夹下的config.php文件 将UC生成的连接信息覆盖原本的信息,到这里为止应用的对接已经完成。用户已经可以同步了。 打开网站会出现一个sessions表不存在的提示。由于本人对X系列以下的版本并不熟悉,猜测是因为纯论坛系统的session表与X系列是不一样的 这里需要把X系列的common_session表整个表复制到UC库中 并把表前缀修改为跟UC一致就可以解决 来源: oschina 链接: https://my.oschina.net/u/1012422

java反射修改final的属性值

[亡魂溺海] 提交于 2020-03-10 03:54:01
Field field = RedisOperationsSessionRepository.class.getDeclaredField("DEFAULT_SPRING_SESSION_REDIS_PREFIX"); field.setAccessible(true); Field modifiersField = Field.class.getDeclaredField("modifiers"); modifiersField.setAccessible(true); //Field 的 modifiers 是私有的 modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); field.set(null, "w_spring:session:"); 来源: CSDN 作者: xiaoniuxqq 链接: https://blog.csdn.net/u011649691/article/details/104757476

MyBatis的使用

偶尔善良 提交于 2020-03-09 21:51:28
1.使用maven引入依赖: <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.4</version> </dependency> 2.在resources目录下编写主配置文件(mybasit.xml): <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> //使用的数据库连接池 <property name="driver" value="com.mysql.jdbc.Driver"/>      //使用的数据库驱动 <property name="url" value="jdbc:mysql:/

java的servlet之cookies和session篇

本小妞迷上赌 提交于 2020-03-09 18:41:14
Cookie:客户端会话技术,将数据保存到客户端 1.基于响应头set-cookie和请求cookie实现   创建cookie对象new Cookie();   发送Cookie对象response.addCookie();   获取Cookie对象request.getCookies(); 2. 一次可不可以发送多个cookie?   可以   可以创建多个Cookie对象,使用response调用多次addCookie方法发送cookie即可。 3. cookie在浏览器中保存多长时间?   默认情况下,当浏览器关闭后,Cookie数据被销毁   持久化存储:   setMaxAge(int seconds)     正数:将Cookie数据写到硬盘的文件中。持久化存储。并指定cookie存活时间,时间到后,cookie文件自动失效     负数:默认值     零:删除cookie信息 4. cookie能不能存中文?   在tomcat 8 之前 cookie中不能直接存储中文数据。   需要将中文数据转码---一般采用URL编码(%E3)   在tomcat 8 之后,cookie支持中文数据。特殊字符还是不支持,建议使用URL编码存储,URL解码解析 5.cookie共享问题?   假设在一个tomcat服务器中,部署了多个web项目

request response session的常用方法

偶尔善良 提交于 2020-03-09 17:43:24
.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。 序号 方 法 说 明 1 object getAttribute(String name) 返回指定属性的属性值 2 Enumeration getAttributeNames() 返回所有可用属性名的枚举 3 String getCharacterEncoding() 返回字符编码方式 4 int getContentLength() 返回请求体的长度(以字节数) 5 String getContentType() 得到请求体的MIME类型 6 ServletInputStream getInputStream() 得到请求体中一行的二进制流 7 String getParameter(String name) 返回name指定参数的参数值 8 Enumeration getParameterNames() 返回可用参数名的枚举 9 String[] getParameterValues(String name) 返回包含参数name的所有值的数组 10 String getProtocol() 返回请求用的协议类型及版本号 11 String getScheme() 返回请求用的计划名,如:http

网络基础知识 - HTTP协议

社会主义新天地 提交于 2020-03-09 17:40:24
这里还有一篇帖子写得很详细,可以拜读一下 https://www.cnblogs.com/ranyonsue/p/5984001.html 前传:HTTP协议的演变过程   HTTP(HyperText Transfer Protocol)协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容。默认端口是80。 1.HTTP 0.9版本  1991年   这个版本就是最初用来向客户端传输HTML页面的,所以只有一个GET命令,然后服务器返回客户端一个HTML页面,不能是其他格式。利用这个版本完全可以构建一个简单的静态网站了。 2.HTTP 1.0版本  1996年   1.0版本是改变比较大的,奠定了现在HTTP协议的基础。这个版本的协议不仅可以传输HTML的文本页面,还可以传输其他二进制文件,例如图片、视频。而且还增加了现在常用的POST和HEAD命令。请求消息和响应消息也不是单一的了,规定了一些元数据字段。例如字符集、编码、状态响应码等。 3.HTTP 1.1版本  1997年   实际上是在1.0版本之后半年时间又发布了一个版本,这个版本在1.0版本的基础上更加完善了。这个版本增加了持久连接,就是说之前版本的协议一次请求就是一次TCP连接,请求完成后这个连接就关闭掉了

会话Cookie与session的关系

冷暖自知 提交于 2020-03-09 17:11:10
在通常的使用中,我们只知道session信息是存放在服务器端,而cookie是存放在客户端。但服务器如何使用session和客户端之间进行通信,以及jsessionId是怎么回事,这并没有一个完整和正确的认识,因此这里将这类信息汇总。 session中的jsessionId是在session创建好之后,发送给客户端。然后在每一次请求中,客户端即会将这个信息传递给服务器端,服务器端使用这个信息来维护和客户端之间的会话通信,在浏览器关闭之后,这个session就消失了。 而对于普通的cookie来说,它是有着一定的时间存放在客户端的机器中的。当下次打开浏览器时,这个cookie就会被读取,同时在请求时发放到服务器端。在关闭浏览器,这个cookie仍然存在的,并没有消失。 那么,这两者之间有没有联系呢,这就要看官方对于Cookie的不同分类,其实就对应着session Cookie和psersistent Cookie的描述了。如下所示: Session Cookie A user’s session cookie[15] (also known as an in-memory cookie or transient cookie) for a website exists in temporary memory only while the user is reading and