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

[经验分享] Java开发环境及开发基础-环境配置-Tomcat服务器

[复制链接]

尚未签到

发表于 2017-2-6 09:29:52 | 显示全部楼层 |阅读模式
  Tomcat服务器
  

  Tomcat是纯Java实现的,具有平台无关性。
  

  ◆Tomcat版本的选择:
        JDK1.4 建议使用 Tomcat5.0.x系列
        JDK1.5 建议使用 Tomcat5.5.x系列
        JDK1.6 建议使用 Tomcat6.0.x以上系列
        对于Servlet3.0规范,需要使用 Tomcat7.0.x或更新的版本系列。
  

  ◆Tomcat工具的选择:
        Windows平台下载ZIP包,Linux平台下载TAR包,建议不要下载安装文件,因为安装的Tomcat看不到启动、运行时控制台的输出,不利于开发。
  

        解压缩后的文件主要具有以下结构:
            bin:存放启动和关闭Tomcat的命令的路径。
            conf:存放Tomcat的配置,所有的Tomcat的配置都在该路径下设置。
            lib:存放着Tomcat服务器的核心类库(Jar文件),如果需要扩展Tomcat功能,也可将第三方类库复制到该路径下。
            logs:这是一个空路径,该路径用于保存Tomcat每次运行后产生的日志。
            temp:保存Web应用运行过程中生成的临时文件。
            webapps:该路径用于自动部署Web应用,将Web应用复制在该路径下,Tomcat会将该应用自动部署在容器中。
            work:保存Web应用运行过程中,编译生成的class文件。该文件夹可以删除,但每次启动Tomcat服务器时,系统将再次建立该路径。
  

  ◆Tomcat使用的前提条件:
        运行Tomcat只需要一个环境变量:JAVA_HOME;该环境变量的值指向JDK安装路径;JDK安装路径下有javac.exe、native2ascii.exe等程序;JDK安装路径下还含有一个lib目录,该路径下应该还有dt.jar和tools.jar两个文件。
  

  ◆启动Tomcat:
        对于Windows平台只需要双击Tomcat安装路径下bin路径中的startup.bat文件即可,启动后的画面如下所示(下图是Tomcat7启动的画面):
  
DSC0000.jpg
 
  ◆配置Tomcat的服务端口:
        Tomcat的默认服务端口是8080,可以通过管理Tomcat配置文件来改变该服务端口,甚至可以通过修改配置文件让Tomcat同时在多个端口提供服务。Tomcat的配置文件都放在conf目录下,控制端口的server.xml文件也存放在该路径下,其中有以下配置:
        <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
        其中,port="8080"就是Tomcat提供Web服务的端口,将8080修改成任意端口,建议使用1024以上的端口,避免与公用端口冲突。
  

        如果需要让Tomcat运行多个服务,只需要复制server.xml文件中的<service>元素,并修改相应的参数即可实现一个Tomcat运行多个服务,当然必须使用不同的端口提供服务。<service>元素如下:
  

    <Service name="Catalina">
      <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
      <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
      <Engine defaultHost="localhost" name="Catalina">
        <Realm className="org.apache.catalina.realm.LockOutRealm">
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
        </Realm>
        <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
          <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." suffix=".txt"/>
        <Context docBase="E:\iDev\jdev\ide\jee3.7_zh\tomcat\7.0.22\wtpwebapps\servlet2_5" path="/servlet2_5" reloadable="true" source="org.eclipse.jst.jee.server:servlet2_5"/></Host>
      </Engine>
    </Service>


◆配置Tomcat列出web应用根路径下的所有页面以便选择需要调试的JSP页面:
      在默认情况下,Tomcat不会列出web应用根路径下的所有页面,可以打开conf目录下的web.xml文件,找到如下配置,将listings参数的值修改为true即可让Tomcat列出web应用根路径下的所有页面。
      <init-param>
          <param-name>listings</param-name>
          <param-value>true</param-value>
      </init-param>



◆配置Tomcat的用户及密码:
      控制台的用户名和密码是通过Tomcat的JAAS控制的,JAAS的全称是Java Authentication Authorization Service即Java验证和授权API,它用于控制对Java Web应用的授权访问。
      webapps路径是Web应用的存放路径,而Manager控制台对应的Web应用也存放在该路径下,进入webapps/manager/WEB-INF路径下,该路径存放了Manager应用的配置文件,使用无格式编辑器打开web.xml文件,可以看到如下片段:
  <!-- Define a Security Constraint on this Application -->
  <!-- NOTE:  None of these roles are present in the default users file -->
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>HTML Manager interface (for humans)</web-resource-name>
      <url-pattern>/html/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-gui</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Text Manager interface (for scripts)</web-resource-name>
      <url-pattern>/text/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-script</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>JMX Proxy interface</web-resource-name>
      <url-pattern>/jmxproxy/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-jmx</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Status interface</web-resource-name>
      <url-pattern>/status/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-gui</role-name>
       <role-name>manager-script</role-name>
       <role-name>manager-jmx</role-name>
       <role-name>manager-status</role-name>
    </auth-constraint>
  </security-constraint>


  <!-- Define the Login Configuration for this Application -->
  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Tomcat Manager Application</realm-name>
  </login-config>

      通过以上的配置文件可知:登录Manageer控制台可能需要不同的Manager角色,对于普通开发者,通常需要匹配/text/*、/status/*的资源,因此为该用户分配一个manager-gui角色即可。
      Tomcat默认采用文件安全域,即以文件存放用户名和密码,Tomcat的用户由conf路径下的tomcat-users.xml文件控制,打开该文件,配置如下内容:
<?xml version="1.0" encoding="UTF-8"?>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager-gui"/>
  <user username="admin" password="admin" roles="tomcat"/>
  <user username="manager" password="manager" roles="manager-gui"/>
  <user password="admin" roles="manager" username="admin"/>
  <user password="admin" roles="manager" username="admin"/>
  <user password="admin" roles="manager" username="admin"/>
  <user password="admin" roles="manager" username="admin"/>
</tomcat-users>

以上配置文件中粗体字代码增加了一个用户,用户名:manager,密码:manager,角色属于manager-gui


◆Tomcat的部署形式(两种):
      1)、将整个路径部署成Web应用
      2)、将War文件部署成Web应用


◆Tomcat的部署方式:
      1)、利用Tomcat自动部署
          将Web应用复制到Tomcat的webapps下即可
      2)、利用控制台部署
          使用Tomcat的用户登录控制台,在Deploy视图中,填写context path(required)和WAR or Directory URL
          例如,context path(required):/aaa
                   WAR or Directory URL: E:\iDev\jdev\prj\meple37zh\webServlet25
          则Tomcat的webapps路径下多了一个名为aaa的文件夹,该文件夹的内容与E:\iDev\jdev\prj\meple37zh\webServlet25 路径下文件夹内容一致。
      3)、增加自定义的Web部署文件
          需要在conf目录下新建Catalina目录,再在Catalina目录下新建localhost目录,最后在该目录下新建一个名字任意的xml文件;该文件就是部署Web应用的配置文件,该文件的主文件名将作为web应用的虚拟url路径。该文件的内容通常是一个Context的标签,指明了web工程所在的绝对路径。
      4)、修改server.xml文件部署Web应用
          修改server.xml文件,一般不建议使用。
          例如:Tomcat的server.xml中的配置
           <Context path="" docBase="E:\MyEclipse\Workspaces\PrjCase\WebRoot" reloadable="true"/>


◆Tomcat配置数据源的方式(两种):
      1)、全局数据源:该数据源可以让所有的web应用访问
      2)、局部数据源:只能让单独的web应用访问
      <context docBase="G:/publish/codes/01/aa" privileged="true">
      <!-- 其中name指定数据源在容器中的JNDI名
            driverClassName指定连接数据库的驱动
      url指定数据库服务的URL
      username指定连接数据库的用户名
      password指定连接数据库的密码
      maxActive指定数据源最大活动连接数
      maxIdle指定数据池中最大的空闲连接数
      maxWait指定数据池中最大等待获取连接的客户端
      -->
            <Resource name="jdbc/dstest" auth="Container"
      type="javax.sql.DataSource"
      driverClassName="com.mysql.jdbc.Driver"
      url="jdbc:mysql://localhost:3306/javaee"
      username="root" password="32147" maxActive="5"
      maxIdle="2" maxWait="10000"/>
      </context>

运维网声明 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-338096-1-1.html 上篇帖子: [zt]tomcat中通过JNDI数据源配置使用 下篇帖子: Tomcat 在處理 GET、POST 參數時預設是採用 ISO-8859-1 編碼
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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