`
wang7839186
  • 浏览: 40884 次
  • 性别: 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...

    DicomObjects用户手册-中文版

    ........................17 5.1阅读............................................... ................................................. .......... ....... ....... ..............17 5.2创建...................

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

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

    软件工程师日语 沪江

    【【【软件工程师日语【软件工程师日语软件工程师日语软件工程师日语】】】12.】12.12.12.仕様書仕様書仕様書仕様書(((6(666))))...........................................................................

    软件工程师日语仕様書

    【软件工程师日语】12.仕様書(6).........................................................................................21 【软件工程师日语】13.走查......................................................

    程序文件.doc

    A/0版 发布日期:2018年1月1日 实施日期:2018年1月1日 目 录 文件控制程序(JXHG/CX- 01)........................................................................ ....2 记录控制程序(JXHG/CX- 02)............

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

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

    WorkFlow Specify

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

    服装进销存管理系统

    12.清仓退货 13.清仓退货记录 14.采购入库 15.采购信息 16.销售出库 17.出库信息 18.退货原因设定 19.客户退货 20.调换原因设定 21.客户调换 22.日结算 23.库存统计 24.营业利润 25.添加备忘录 26.备忘录信息 27....

    大物实验数据处理.xlsx

    ) 孔为中心均匀分布的 12 孔, 6-ф 13. 5, 4-M10-6H 深20 孔深 24 及2-M10-6H的孔进行加工 1.3 本章小结 在本章节中对题目所给的零件进行了简要的工艺分析, 注明了各个孔的同轴度、 面的粗糙度。 第二章 工艺规程...

    iSee视频监控 v5.2

    单机容量支持12路D1、48路CIF; 支持单画面、4画面、9画面、16画面、20画面、25画面显示,可全屏显示,支持自动 翻页; 多画面实时显示/录像/回放功能,支持多协议云镜控制,支持多种报警盒实现联动报警; ...

    DBA日记 作者:白鳝

    第一部 (28) 6月17日 完美的效果 85 第一部 (29) 6月18日 准备收工 88 第一部(30) 6月19日 突然事件 90 第一部(31) 7月20日 重回沈阳 92 第一部(32) 7月21日 课堂风波 95 第一部(33) 7月23 世博园一日游...

    Win10优化工具v1.0.1.exe.zip

    12. 使前台任务拥有最大优先级 13. 快速响应应用程序请求 14. 窗口自动刷新 15. 开启自动刷新 (防假死) 16. 加速缩略图弹出速度 17. 禁用故障转储 Dump 18. 提高前台程序的显示速度 19. 清除内存内不使用的 DLL 文件...

    4、(车间)基层风险培训记录.doc

    培训时间 2018年1月15日12:30-17:10 培训地点 车间会议室 培训老师 xx 培训题目 公司风险分级管控方法及识别培训 培训方式 讲授法 验证形式 考试 岗位技能提问 作业演示 总结学习心得 其他 内培 外培 参加培训...

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

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

    j2EE编程时尚百例

    12.写内容到文件 13.函数中投掷异常 14.分行写入数据 15.分页显示 16.分页显示调查问卷 17.删除数据 18.判断是否空白文件 19.利用absolute方法设置记录指标所指向的记录 20.利用applet载入applet 21.单选型列表框] ...

    Win10优化工具v1.0.1.rar

    12. 使前台任务拥有最大优先级 13. 快速响应应用程序请求 14. 窗口自动刷新 15. 开启自动刷新 (防假死) 16. 加速缩略图弹出速度 17. 禁用故障转储 Dump 18. 提高前台程序的显示速度 19. 清除内存内不使用的 DLL 文件...

Global site tag (gtag.js) - Google Analytics