`
hzh0725
  • 浏览: 82435 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jetty(6.1.11)代码分析

    博客分类:
  • java
阅读更多

Jetty Log

默认情况是使用:Slf4jLog

下面是Jetty的设置代码:

private static String logClass=System.getProperty("org.mortbay.log.class","org.mortbay.log.Slf4jLog");

 

默认情况是使用org.slf4j.Logger(jetty倒是更新的蛮快,spring,hibernate还在common-logging),它默认放在%JETTY_HOME%/lib/jsp-2.0(这个就不知道为什么放在这里)

 

默认情况需要: slf4j-api-1.3.1.jar,slf4j-simple-1.3.1.jar,jcl104-over-slf4j-1.3.1.jar(因为jasper需要common-log)

 

 

Jetty Naming

jetty-naming-6.1.11.jar是jndi一个Local实现,只要把这个包放在classpath中,就可以使用

 

 

 

new InitialContext();

这样语句来,因为jndi.propertise包含在这个包里面.

注意:jndi的local实现和map不同的地方就是,jndi的context是有层次的,比如有subcontext,他们的key是需要parse的比如: java:comp/env/rubbish

 

 

 

 

Jetty Jndi

默认情况下,jetty的jetty.xml是不支持jndi,所以这个时候如果你在web.xml中定义resource-ref这样的tag是不起作用的. 代码层面就是 WebXmlConfiguration 对resource-ref不做处理.

 

支持resource-ref需要做以下工作:

  1. 把jetty-naming包放到classpath里去.
  2. 使用org.mortbay.jetty.plus.webapp.Configuration代理WebXmlConfiguration

  Web.xml

 mime-mapping

 <mime-mapping><extension>AA</extension>  

<mime-type>BB</mime-type>  

</mime-mapping>

上面的意思是 以AA为后缀名的文件,response.setContentType("BB")

 

TLD资源

jetty使用TagLibConfiguration来读取tld资源文件, 默认情况从两个地方都,一个是web-inf下面所有*.tld文件,

 

 一个是所有webcontextclassloader中所有jar url中META-INF/*.tld文件 

 

Session方面

jetty默认使用HashSessionManager来管理所有的session,在它启动的时候会形成一个定时的task来做session timeout操作.

Session形成:

  • 一个request过来,根据cookie中是否存在名字是JSESSIONID ,或者url中是否是以";jsessionid=*",来得到seessionId,如果没有,那么request.getSession(false)=null,如果存在session,那么修改sesion最后的access时间,考虑timeout问题
  • request.getSession(true), 如果当前request中已经有session,那么就直接返回.否则
    HttpSession _session = sessionManager.newHttpSession(this); 
    
     Cookie cookie=_sessionManager.getSessionCookie(_session,getContextPath(),isSecure());//这个cookie.name= JSESSIONID,age是-1,关掉browse,sessionid就不见了。
      if (cookie!=null)
                _connection.getResponse().addCookie(cookie);
    
     

 

InitialContext icontext =

分享到:
评论

相关推荐

    jetty-6.1.11.jar

    jetty-6.1.11.jar jetty-6.1.11.jar jetty-6.1.11.jar

    jetty内嵌到java代码启动

    让我们深入探讨如何将Jetty内嵌到Java代码中,以及这一过程涉及的关键知识点。 1. **Jetty简介** - Jetty是一个开源的HTTP服务器和Servlet容器,支持最新的Servlet规范,如Servlet 4.0。 - 它以其轻量级、模块化...

    jetty源代码下载

    Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它被广泛应用于各种规模的项目,从微型嵌入式应用到大型企业级系统。...通过分析Jetty的实现,你可以学习到如何设计和优化高并发、高性能的网络服务。

    jetty 源代码及example

    标题中的"jetty源代码及example"指的是包含了Jetty服务器的源代码以及相关的示例项目,这对于深入理解Jetty的工作原理、自定义配置以及学习Servlet编程具有很高的价值。 在描述中提到,"jetty源代码,是研究servlet...

    Jetty源码分析.pdf

    ### Jetty源码分析知识点概览 #### 一、Jetty简介与特点 - **Jetty**是一款**100%纯Java编写**的轻量级Web服务器与Servlet容器,与Tomcat等其他流行的Web服务器相比,Jetty以其**体积小、启动快**而著称。 - **...

    远程上传代码容器jetty

    标题中的“远程上传代码容器jetty”涉及到的是在IT领域中使用Jetty作为服务器容器,通过HTTP协议实现代码的远程上传。Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它允许开发者快速地部署和管理Web...

    IntelliJ+Maven+Jetty+Jrebel实现web项目java代码更改后热部署

    "IntelliJ+Maven+Jetty+Jrebel"的组合正是为了解决这一问题,实现Web项目的Java代码更改后能够自动热部署。这个解决方案集成了几个关键工具,包括: 1. **IntelliJ IDEA**: 这是一款强大的Java集成开发环境(IDE)...

    Jetty嵌入项目代码中示例

    Jetty嵌入项目代码中示例,现我有一示例项目 e:/workspace/web-demo(称为project_home),里面的Web根目录是WebContent。 在project_home建一个jetty目录,子目录如:contexts、etc、lib。 把${jetty_home}/etc...

    jetty的main启动代码及相关jar包

    jetty的main启动代码及相关jar包: jetty-6.1.26.jar、jetty-util-6.1.26.jar为jetty相关jar包。 jasper-el.jar、jasper-jdt.jar、jasper.jar为jsp页面解析编译相关jar包。 jsp-api.jar为jstl相关jar包 tomcat-juli....

    Android-I-Jetty服务器部署例子代码

    本教程将深入讲解如何在Android环境中部署并运行Jetty服务器,并提供一个示例代码以供参考。 首先,理解Jetty在Android中的作用。Jetty作为一个嵌入式Web服务器,可以直接集成到Android应用中,无需额外的服务器...

    jetty 源码 2018 zip

    在这个"jetty 源码 2018 zip"压缩包中,包含的是Jetty 9.4.10.RC1版本的源代码,这为我们提供了一个深入了解Jetty内部机制的机会。 首先,我们来看看Jetty的核心组件和架构。Jetty主要由以下几个部分组成: 1. **...

    jetty源码剖析

    本文将对 Jetty 的源码进行剖析,帮助读者了解 Jetty 的实现原理和阅读底层代码。 启动篇 Jetty 的启动方式有多种,可以通过命令行参数来控制启动过程。下面是 Jetty 的标准启动方式: `java -jar start.jar` ...

    jetty服务器性能调整过程分析

    ### Jetty服务器性能调整过程分析 #### 一、目标 Jetty服务器采用了非阻塞I/O(NIO)加线程池的技术方案来实现在高并发场景下的高性能表现。本篇文章的目标是通过调整Jetty服务器的各项配置参数,来观察并评估其对...

    jetty各个版本下载

    选择你需要的版本后,可以选择适合你的操作系统的二进制包或源代码包进行下载。 4. **解压与安装** 下载后的Jetty压缩包,如`jetty-hightide-7.0.1.v20091125`,通常包含服务器运行所需的全部文件,包括Jetty...

    idea的jetty-runner1.2.1插件

    它以其智能代码补全、代码分析、重构工具等功能著称,深受开发者喜爱。IntelliJ IDEA 支持多种插件,使得开发者可以扩展其功能以适应不同的开发需求。 **三、安装 Jetty Runner 插件** 1. 打开 IntelliJ IDEA,进入...

    jetty 8及依赖包

    通过分析源代码和实验,你可以了解到如何自定义配置Jetty以适应特定的应用需求,例如调整线程池大小、添加自定义过滤器或者实现WebSocket端点。 总的来说,这个压缩包是一个极好的起点,无论是对Java Web开发初学者...

    jetty相关的全部jar包

    jetty-security-9.4.8.v20171121.jar,jetty-io-9.4.8.v20171121.jar,jetty-continuation-9.4.8.v20171121.jar,jetty-client-9.4.8.v20171121.jar,jetty-jmx-9.4.8.v20171121.jar,jetty-plus-9.4.8.v20171121....

    jetty的http服务流程分析

    本文主要分析了Jetty的HTTP服务流程,从启动、接受连接到处理请求的各个环节。 首先,启动Jetty服务通常通过执行`jetty -jar start.jar jetty-ssl.xml`命令完成。这里`start.jar`是Jetty的启动脚本,`jetty-ssl.xml...

    jetty 9.4.9

    它允许开发者使用HTML和Java代码混合编写页面,然后由容器(如Jetty)在运行时转换为Servlet。JSP-API.jar包含JSP规范所需的所有接口和类,使得开发者可以在Jetty中使用JSP技术。 3. **jetty 容器.txt**:这个文本...

    jetty+TLS PSK的java代码实例

    【标题】"jetty+TLS PSK的java代码实例"涉及了几个关键的IT知识点,主要集中在Jetty服务器、TLS(Transport Layer Security)协议以及预共享密钥(PSK,Pre-Shared Key)的安全机制上。以下是这些概念的详细解释: ...

Global site tag (gtag.js) - Google Analytics