Tomcat源码走读——session管理(续)

2. session创建、过时处理等

public Session createSession(String sessionId ) {

        if ((maxActiveSessions >= 0) &&
                (getActiveSessions() >= maxActiveSessions)) {
            rejectedSessions++;[......]

Read more

Posted in J2EE | Tagged | Leave a comment

《The Definitive Guide ——JRockit虚拟机》 笔记

1. 从JVM层次来说final修饰方法带来的好处

JVM对方法的调用分两种,直接调用(方法只有一个实现)以及间接调用(多态情况下,方法可能有多个实现,需要在dispatch表中查找以确实是使用哪个地址)。

 

对于JIT来说,如果JVM能确定方法只有一个实现,则可以采用直接调用方式将其编译到native代码,这能提供程序的效率,但是,除非方法是被final修饰的,否则其可能在任何时候被覆盖。

 

2. JIT编译器及JVM一般会做出的假设[......]

Read more

Posted in JVM, 读书笔记 | Tagged | Leave a comment

spring mvc处理json类型返回结果异常

晚上弄个项目骨架出了点小插曲,发发牢骚……

 

异常情况:

一请求就是错误:The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request “accept” headers.

 

http 406,请求头的accept不匹配,主要是在spr[......]

Read more

Posted in Spring | Tagged | Leave a comment

Tomcat源码走读——session管理

1. session是如何来的?

首先,看发生请求的时候,Request是如何获取session,Request的获取session函数getSession()如:

public HttpSession getSession() {
        Session session = doGetSession(true);
        if (session == null) {
            return null ;
        }

        ret[......]

Read more

Posted in 读书笔记 | Tagged | Leave a comment

Tomcat源码走读——backgroundProcessor(后台处理机制)

在 Tomcat源码走读3:启动过程续中有提到,在Container启动的时候,会通过threadStart()函数为子Container启动一个daemon线程,这个线程便是ContainerBackgroundProcessor,这为相关的Container、Value提供了一个机制,可以在后台定时运行一些任务,如Session Manager就借助这个检查session是否过期等。

 

这个线程的功能如:

protected class ContainerBackg[......]

Read more

Posted in 读书笔记 | Tagged | Leave a comment