`
wang7839186
  • 浏览: 42054 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

12.17日记

 
阅读更多

一、一直觉得用户请求和struts处理请求之间有一些空白的知识点,所以,今天准备看看tomcat。

其实像struts这类的控制层框架都是实现了servlet api,然后对一些业务进行进一步封装后的产物,但是它也只是负责处理业务的,那么用户的请求怎么就到达控制层呢?这就是servlet容器的作用了,tomcat作为开源的servlet容器,也实现了servlet api,在用户请求到来时,会为处理请求的servlet创建request和response,然后调用servlet的生命周期函数,当servelt处理完请求后,仍然由容器接受response,然后返回给客户端。

我们先看看tomcat安装完成后,在server.xml中默认的配置:

 

<?xml version='1.0' encoding='utf-8'?>

<Server port="8005" shutdown="SHUTDOWN">
  
  <Service name="Catalina">
  
    <!--The connectors can use a shared executor, you can define one or more named thread pools-->
    <!--
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" 
        maxThreads="150" minSpareThreads="4"/>
    -->
    
    
   
    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
    <!-- A "Connector" using the shared thread pool-->
    <!--
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
    -->           
    <!-- Define a SSL HTTP/1.1 Connector on port 8443
         This connector uses the JSSE configuration, when using APR, the 
         connector should be using the OpenSSL style configuration
         described in the APR documentation -->
    <!--
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">         
    --> 
    <Engine name="Catalina" defaultHost="localhost">

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

      </Host>
    </Engine>
  </Service>
</Server>

 从配置上,我们对tomcat的结构就比较了解了,顶层的元素是server和service,一个server可以包含多个service,在service中,可以包含多个connector和一个engine,engine中又包含多个host,代表多个虚拟主机,在host中,我们可以配置多个context,代表一个虚拟主机中多个app,我们可以由此联想一个tomcat配置多个虚拟主机,或者一个虚拟主机中配置多个共存的应用。

 

二、session机制

在看tomcat时,涉及到了session的管理,所以顺便回顾了一下session的知识,session与cookie不同的是,它是服务器端的状态,但是底层是基于cookie实现的,在客户端第一次请求的时候,服务器会返回一个sessionId,然后客户端会把它存在cookie中,然后下一次请的时候会向服务器端发送这个id,然后服务器会根据这个id去取出相应的session。

由于session是基于cookie的,所以一旦客户端把cookie禁用之后,session的状态就无法维护了。这个时候我们就要用到response.encodeURL(url)了,它的实现机制是这样的:

(1)先判断页面是否禁用session,如果禁用,那么直接返回url

(2)如果没有禁用,那么继续判断是否禁用cookie,如果没有禁用,那么直接返回url,sessionId会在header的cookie中找到

(3)如果禁用,那么会在url后面自动加上sessionID,然后发送到服务器端,就保证了session状态不会受到是否禁用cookie的影响

 

三、发现tomcat的源码时ant项目,就顺便看了下ant的东西。

ant和maven都是项目项目管理工具,它的安装和maven类似,都是先去下载bin的zip包(如果你的操作系统是windows的话),然后解压,配置path,然后再命令行中测试ant -version,如果有版本输出,证明ant被正确安装了

具体的用法就没仔细看了,以后需要了再学习吧。

 

四、在做项目时一般是拷贝之前的log4j文件,今天了解了一下

 

###rootLogger是所有log的超类
###格式是:[日志级别]appender类型,appender类型
log4j.rootLogger=debug, console,file
log4j.logger.service=debug, service


### direct messages to file *.log ###
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%p] [%t] [%c:%L] - %m%n

log4j.appender.service=org.apache.log4j.DailyRollingFileAppender
log4j.appender.service.File=${catalina.home}/logs/main.log
log4j.appender.service.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.service.Append=true
log4j.appender.service.layout=org.apache.log4j.PatternLayout
log4j.appender.service.layout.ConversionPattern=%d [%5p] [%F:%L] %M: %m%n

 

 

 

分享到:
评论

相关推荐

    Java入门级项目云日记(3.29G)

    12_012_云R记_用户模块_用户登录_思路分析.mp4 13_013_云R记_用户模块_用户登录_后端代码实现.mp4 14_014_云R记_用户模块_用户登录__功能测试.mp4 15_015_云R记_用户模块_BaseDao.mp4 16_016_云R记_用户模块_BaseDao...

    招商银行银企直连接口说明书5.36.0

    1.1 用户登录..........................................................15 1.2 用户退出..........................................................17 1.3 系统参数设置........................................

    HSP_SPEC_V12.pdf

    - **D12r03**:2007 年 8 月 17 日,更新了包含蓝牙核心规范 2.1 + EDR 的内容,并解决了 HSP 错误编号 350、368 和 446。 - **D12r04**:2007 年 8 月 19 日,基于 BARB 电话会议讨论结果移除了 PARK 参考。 - **...

    监理日记的模板.doc

    12. **工程材料、构配件、设备报验**:确认使用的材料、配件和设备是否符合设计和规范要求,是否有合格证明。 13. **工程报验检测**:记录工程报验的过程,包括检测结果,确保符合标准。 14. **见证取样送检**:...

    report_vip_2021-12-18-15-17-07.zip

    标题“report_vip_2021-12-18-15-17-07.zip”表明这是一个VIP级别的报告,生成于2021年12月18日15点17分07秒。通常,这样的命名格式用于记录文件的创建日期和时间,以便后续追踪和管理。在IT领域,VIP(Very ...

    秋季学期二年级(上册)语文作业批改记录.doc

    3. **作业完成度**:整体来看,大多数学生的作业完成质量较高,例如9月15日、17日、20日等日期的作业,学生表现良好。但也有部分作业不尽人意,如10月8日的第10课生字练习,可能是由于假期后调整状态的时间不足。 4...

    质量记录表格汇编.doc

    12. 年度员工培训工作计划表:规划全年的员工培训活动,提升员工技能。 13. 员工培训申请表:员工申请参加培训时填写,为培训资源分配提供依据。 14. 年度员工培训实施情况汇总表:总结培训效果,评估培训项目的...

    公司客户供应品异常单.doc

    12. □电话连络 □传真联络:记录处理该异常单的人员的联系方式,以便于与处理人进行沟通。 13. 联络人:记录处理该异常单的人员的名称,以便于了解处理人。 14. 客户答复或承诺:记录客户对异常单的答复或承诺,以...

    电梯日巡视记录.doc

    17. **天花板、壁板、地面**:检查轿厢内部装饰完好,无破损,确保乘客使用体验。 18. **通风扇**:保证轿厢内空气流通,提高乘坐舒适度。 19. **照明灯**:确保电梯内照明充足,为乘客提供清晰的视线。 20. **...

    excel中161个VBA_自定义函数超级实用

    '17.函数作用:计算日期差,除去星期六、星期日...........45 '18.函数作用:将英文字反转的自定函数...................46 '19.函数作用:计算个人所得税...........................46 '20.函数作用:一个能计算是否有...

    2021温湿度表原始记录2.docx

    13. 有效日期:有效日期是指温湿度表仪器的有效日期,例如2014年12月08日。 14. 温度:温度是指温湿度表仪器测量的温度值,例如25℃。 15. 湿度:湿度是指温湿度表仪器测量的湿度值,例如60%RH。 16. 检定员:...

    Oracle优化日记:一个金牌DBA的故事 白鳝.扫描版

    STATSPACK报告分析之DB Cache1优化小技巧 STATSPACK报告分析之PGA6月15日 青岛今日点评优化小技巧 如何 优化闩锁6月16日 SQL 优化效果今日点评优化小技巧 如何转储数据块优化小技巧 通过树转储来分析索引碎片6月17日 ...

    bugreport-2022-12-17-172658.zip

    标题“bugreport-2022-12-17-172658.zip”和描述中的信息表明这是一个包含设备错误报告的压缩文件,时间戳为2022年12月17日17时26分58秒。在IT领域,尤其是软件开发和故障排查过程中,bugreport是非常重要的工具。它...

    WorkFlow Specify

    12. 关系路由(Relationship Based Routings).............................................................7 13. 动态路由(Dynamic Routing)...................................................................

    病例书写规范考试题带答案借鉴.pdf

    1. 病历书写规范的生效日期:根据题目,卫医政发 [2010]11 号规定的新的《病历书写基本规范》自2010年3月1日起施行。 2. 问诊技巧:正确问诊应以患者自身感受为主,例如选项D“你觉得主要是哪里不适”,避免引导性...

    2018年11月17日托福阅读机经.pdf

    以上是2018年11月17日托福阅读机经中涵盖的主要知识点,这些内容涵盖了生物学、地质学、历史、生态学等多个领域,是托福阅读考试中常见的科学和历史主题。准备托福考试的学生应熟悉这些话题,提升阅读理解和综合推理...

    SE2020-G06-会议纪要_2020.12.091

    会议纪要"SE2020-G06-会议纪要_2020.12.091"详细记录了2020年12月9日17:15至17:45在明德一413宿舍进行的一次项目团队会议。该会议由邢海粟主持,黄德煜担任记录员,主要讨论了关于详细设计模块的总结、不足以及后续...

Global site tag (gtag.js) - Google Analytics