设为首页 收藏本站
查看: 1020|回复: 0

[经验分享] Tomcat总结

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-8 03:21:20 | 显示全部楼层 |阅读模式
1.介绍
  下载地址:
  http://tomcat.apache.org/
  http://jakarta.apache.org/site/downloads/index.html
2.安装
2.1 环境配置
  JAVA_HOME    C:\Program Files\Java\jdk1.6.0_05
  JAVA_BIN    C:\Program Files\Java\jdk1.6.0_05\bin
  TOMCAT_HOME    D:\programming\java\apache-tomcat-6.0.18
  CLASSPATH    .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
  JAVA_OPTS    -Xms64m -Xmx512m
  PATH后加    ;%JAVA_HOME%\bin;%TOMCAT_HOME%\bin
  
  ANT_HOME= D:\programming\java\apache-ant-1.7.1
  PATH=%PATH%;%ANT_HOME%\bin
2.2 测试java环境
  在命令行中输入:
  java –version查看版本
  javac –help查看path路径是否设置完
2.3 源代码安装Tomcat(不推荐)
  下载ANT,地址http://ant.apache.org/
  下载tomcat源码,地址http://tomcat.apache.org/ apache-tomcat-6.0.18-src.zip,解压后将里面的build.properties.default改成build.properties
2.4 二进制安装
  直接解压到某一文件夹下即可,但要更改TOMCAT_HOME变量
  直接启动startup.bat即可
2.5 配置
2.5.1 安装名为Tomcat6的Tomcat服务:service install
  删除tomcat服务service remove
  安装名为MyTomcat的服务:service install MyTomcat
  删除名为MyTomcat的服务:service remove MyTomcat
2.5.2 元素
  
  path代表网络访问的上下文路径,reloadable表示可以在运行时在classes与lib文件夹下自动加载类包,在开发阶段一般为true有助于调试类源文件,但该参数所产生的操作会增加服务器的运行负荷,所以在部署阶段一般都设置成false,docBase表示应用程序的路径,workDir表示缓存文件的放置地点


  • conf/tomcat-users.xml中添加
  
  
2.6 测试运行
  新建一页面hello.jsp
  
  
  
  hello
  
  
  
  
  
  
3 tomcat的安全管理
  提供Realm支持,即将不同的应用赋给不同的用户,没有权限的用户则不能访问这个应用。Tomcat提供三种Realm:
  JDBCRealm:用户信息存在数据库里,通过JDBC获得用户信息。
  JNDIRealm:用户信息存在LDAP的服务器里,通过JNDI获取用户信息。
  MemoryRealm:用户信息存在一个xml里,通过xml进行验证。
4 tomcat与apache的集成
  tomcat处理静态HTML不如apache,所以用apache处理静态HTML,用tomcat处理JSP、Servlet。
5 Tomcat工作原理-Servlet容器
  Servlet容器的作用就是负责处理客户请求。客户请求到来时,Servlet容器获取请求,然后调用某个Servlet,并把Servlet的执行结果返回给客户。

DSC0000.png
  -ServletRequest ――>
  客户端
  -ServletResponse――>



  • 独立的Servlet容器-基于java的web服务器

  • 进程内的Servlet容器-作为进程内的Servlet容器,Servlet容器作为web服务器的插件和java容器(JVM)的实现。

  • 进程外的Servlet容器-作为进程外的Servlet容器,Servlet容器运行于Web服务器之外的地址空间,并且作为Web服务器的插件和java容器(JVM)的实现。插件和JVM使用IPC机制进行通信。
6 Tomcat组织结构-Server.xml
  Tomcat是一个基于组件的服务器,最外层的组件是Catalina Servlet容器,其他的组件按照一定的格式配置在这个顶层容器中。其配置在conf/server.xml文件中:

   一个xml文件只能有一个Server,代表一个服务器
   有一个Engine组件和多个Connector
   通信接口,通过此接口接收客户的请求,然后发送给其他组件,最后把服务器的响应传递给客户
  
  ........
  
  处理用户请求并生成响应,可以有多个Host
  虚拟主机,可以有多个Context
  web应用
  
  
  
  
7 Tomcat web应用
  一个java web应用包含Servlet、JSP页面、java类、静态资源(HTML文档、图片等)、描述Web应用的描述文件。
DSC0001.png
  图 多个Web应用时Tomcat服务的过程
  如果不加任何修改,在一台服务器上同时运行两个Tomcat服务显然会发生端口冲突。假设现在已经按照正常的方式安装配置好了第一个Tomcat,第二个如何设置呢?以下是使用Tomcat6.0.16解压版本所做的实验。
  解决办法:
  1.解压Tomcat到一个新的目录,比如d:\TomcatServer2;
2.新建一个环境变量CATALINA_HOME2,路径为d:\TomcatServer2;
3.编辑Tomcat/bin/startup.bat和catalina.bat,把CATALINA_HOME全部替换成CATALINA_HOME2;
4.编辑Tomcat/conf/server.xml,将端口号8开头都改为9开头(其他端口只要不冲突即可),并修改默认编码为utf-8(以支持中文链接)
    示例:
            
    =====================        
            
  5.运行测试。
8 war文件格式
  ROOT
  |――/ html文件、jsp文件、图片、样式表等
  |____WEB-INF该目录下的所有文件都是不可访问的
  |――classes
  |――lib
  |____web.xml
  
  为了部署方便,src存放java源代码,js存放脚本文件,images存放图片文件,css存放样式表文件,web存放JSP和HTML文件
  WEB-INF下的各种资源文件分开存放,properties存放属性文件等。
9 web.xml
9.1 web应用图标
  
  /images/app small.gif
  /images/app large.gif
  
9.2 web应用名称
  Tomcat Manager Application
9.3 web应用描述
  
  A scriptable management web application for the Tomcat Web Server;
  Manager lets you view, load/unload/etc particular web applications.
  
  分布式属性:Tomcat集群参数
  
9.4 指定欢迎文件页
  
  index.html
  index.htm
  index.jsp
  
9.5 网上摘录部分
  web.xml首先是肯定要包含它的schema.


其它的元素都放在之中。
是对站台的描述
定义站台的名称
是指定该站台是否可分布式处理
用来设定web站台的环境参数,它包含两个子元素:
     用来指定参数的名称
     用来设定参数值

比如:

    my_param
    hello

在此设定的参数,可以在servlet中用 getServletContext().getInitParameter("my_param") 来取得
是用来声明filter的相关设定,它包含以下子元素:
     这当然就是指定filter的名字
     这是用来定义filter的类的名称
     用来定义参数,它有两个子元素:
         用来指定参数的名称
         用来设定参数值
比如:

        setCharacterEncoding
        com.myTest.setCharacterEncodingFilter
        
            encoding
            GB2312
        

与同时使用的是 用来定义filter所对应的URL,它有两个子元素:
     指定filter的名字
     指定filter所对应的URL
比如:

        setCharacterEncoding
        /*


用来设定Listener接口,它的主要子元素为
     定义Listener的类名称

比如:

    com.myTest.ContextListener


用来声明一个servlet的数据,主要有以下子元素:
     指定servlet的名称
     指定servlet的类名称
     指定web站台中的某个JSP网页的完整路径
     用来定义参数,和前面的差不多
同样,与一起使用的是 用来定义servlet所对应的URL,包含两个子元素:
     指定servlet的名称
     指定servlet所对应的URL
比如:

        ShoppingServlet
        com.myTest.ShoppingServlet

   

        ShoppingServlet
        /shop/ShoppingServlet


用来定义web站台中的session参数,包含一个子元素:
     用来定义这个web站台所有session的有效期限,单位为                                                              分钟

定义某一个扩展名和某一个MIME Type做对映,包含两个子元素:
     扩展名的名称
     MIME格式
比如:

    doc
    application/vnd.ms-word


    xls
    application/vnd.ms-excel


用来定义首页的列单,包含一个子元素:
     指定首页的文件名称
比如:

    index.jsp
    index.html


用来处理错误代码或异常的页面,有三个子元素:
     指定错误代码
     指定一个JAVA异常类型
     指定在web站台内的相关资源路径

比如:
  
  404
   /error404.jsp
  
  
   java.lang.Exception
    /exception.jsp
  
  
   用来设定JSP网页所用到的Tag Library路径,有两个子元素:
     定义TLD文件的URI,在JSP网页中用taglib指令便可取得该URI的                                              TLD文件
     指定TLD文件相对于web站台的存放位置
比如:
  
  myTaglib
  /WEB-INF/tlds/MyTaglib.tld
  
  此时JSP页面可通过下面的形式使用标签库
  
  
  
定义利用JNDI取得站台可利用的资源,有五个子元素:
     资源说明
     资源名称
     资源种类
     资源经由Application或Container来许可
     资源是否可以共享,有Shareable和Unshareable两个                                                                     值,默认为Shareable
比如,配置数据库连接池就可在此配置:

        JNDI JDBC DataSource of shop
        jdbc/sample_db
        javax.sql.DataSource
        Container

10 中文编码






  • response.setCharacterEncoding("gb2312")

  • str=new String(username.getBytes("ISO-8859-1"),"gb2312")

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-95241-1-1.html 上篇帖子: maven一键部署tomcat war包 下篇帖子: Tomcat 原理解说:Web容器功能分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表