1、tomcat的安装使用

  tomcat是实现了J2EE标准的最简单轻巧的WEB服务器,所以使用tomcat必须安装JDK咯!

  ① 安装JDK并设置环境变量;

  ②设置tomcat的环境变量;

  这两小步随便一百度就OK,没有什么难度。

  运行“命令提示符”输入startup  即可正常启动,如果出现闪退,就是环境变量设置的有问题。。需要重新设置环境变量!

2、tomcat目录结构

     

    受本人水平限制,只是简单说明tomcat的目录结构

    bin    此文件夹中是一些批处理命令(.bat文件,其中包括启动/关闭( startup.bat/shutdown.bat ))命令;还有一些动态链接库、jar包等。

    config   此文件夹中是服务器的一些配置文件,其中最主要的是service.xml文件  服务器监听的端口号就在此配置 默认为8080

    lib    jar包

    log    服务器的日志存在此文件夹内

    temp      存放临时文件

    wepapps 默认站点的文件就放在这里面

    work  存放JSP生成的Servlet源文件和字节码文件

3、搭建自己的站点

  ① 在webApps文件夹下新建一个文件夹,命名为myWebApp (可随意命名);

   ② 在myWebAPP文件夹下新建一个文件(index.html)和文件夹(WEB-INF)  文件和文件夹的名字不能随意命名

   ③ 拷贝其他示例中的WEB-INF文件夹下的web.xml到自己的WEB-INF文件夹下

   ④ 修改web.xml文件内容如下:

<?xml version="1.0" encoding="ISO-8859-1"?>  

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app>
<display-name>My Web Application</display-name>
<description>
A application for test.
</description>
</web-app>

   ⑤ 在index.html文件中添加自定义内容,如:

 <html>
<head>
<title>Myself Webstation</title>
</head>
<body>
<h1>利用tomcat搭建自己的站点</h1>
<body>
</html>

  OK了,现在在浏览器中输入:http://localhost:8080/myWepApp/index.html   就可以看到自己创建的HTML页面了。局域网内部,就可以通过你的http://你的IP:8080/myWepApp/index.html    访问了

  那么,如果想像examples 一样 输入:http://localhost:8080/myWepApp   就可以访问了,该怎么做呢?

  修改web.xml文件,添加如下内容就OK了,(这是如果加上index.xml就不管用了。。)

 <welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.xhtml</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

4、细说server.xml

  server.xml是tomcat服务器的配置文件,其中各个标签含义如下:

<Server port=”8005″ shutdown=”SHUTDOWN” debug=”0″>

  在8005端口处监听服务器的关闭请求,如果收到“shutdown” 就关闭服务器。可以在命令行中输入:telnet localhost 8005然后输入shutdown tomcat即关闭;

  <service>元素,<service>中包含一个<engine>元素和多个<Connector>元素,<service>可以理解为一个“容器”,但实际上并不是容器,只是<Connector>(连接器)的组合。

  

<Connector port=”8080″ maxThread=”50″ minSpareThreads=”25″  maxSpareThread=”75″ enableLookups=”false” redirectPort=”8443″  acceptCount=”100″ debug=”0″ connectionTimeout=”20000″  disableUploadTimeout=”true” />

  <Connector> 连接器,代表一个请求或应答所需要的端点,只是传递请求,不处理请求。处理请求是通过<container>容器;

      enableLookups属性:开启或关闭DNS查询  默认是开启,但比较影响性能;

      acceptCount属性   :线程超过100时,后来的请求返回 connector refused;

      maxThreads 属性  : tomcat可创建的最大线程数  可以根据机器的内存可性能调整 最大可以在800左右

      minSpareThreads :初始化线程数目

      maxSpareThreads :一旦线程数目超过此值,tomcat 就会关掉不再需要的socket线程

      connectionTimeout:网络连接超时时间  设置为0 永不超时

   <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm> <Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" /> </Host>
</Engine>

  一个<service>元素只能有一个我<engine>元素

  defaultHost:  处理客户请求的默认主机名

    每一个<Host>元素定义了一个虚拟主机,一个<engine>元素可以有一个或多个虚拟主机

    appBase:虚拟主机的目录

    autoDeploy:设置为true  当虚拟主机下有目录添加进来是,tomcat会自动部署

    unpackWARs:设置为true 表示会将war文件先展开,然后运行;设置为false 表示可以直接运行.war文件

  <host>元素下的<context>元素  一个<context>元素代表一个web应用

<!– Context,对应于一个Web App  path : 该Context的路径名是”",故该Context是该Host的默认Context docBase : 该Context的根目录是webapps/mycontext/ reloadable:如果这个属性设为true,  Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改运.如果监视到有class文件 被更新,服务器自重新加载Web应用 useNaming:指定是否支持JNDI,默认值为了true cookies指定是否通过Cookies来支持Session,默认值为true –>
<Context path=”" docBase=”mycontext” debug=”0″/>

  下面总结一些server.xml的结构:

<server>
<service>
<engine>
<Host>
</Host>
</engine>
<Connector>
</Connector>
<Connector>
</Connector>
</service>
</server>

  对应的示意图如下:

            

    大概就是这个样子的!

5、tomcat处理一个请求的过程

  加入客户的请求是:http://localhost:8080/wsota/wsota_index.jsp

  ① 请求被发送到主机的8080端口,被在8080端口侦听的connector获取;

  ② connector 将请求交给他所在service的engine处理 并等待engine的回应

  ③ engine首先匹配虚拟主机  找到localhost,匹配不到 则交给默认主机处理

  ④ 虚拟主机获得请求 wsota/wsota_index.jsp

  ⑤ 虚拟主机根据请求路径”/wsota“匹配他所拥有的context  匹配不到交由默认的context去处理

  ⑥ path=”/wsota”的Context获得请求/wsota_index.jsp

  ⑦ Context 根据请求在他的mapping table 中找对应的servlet,对应于JSPservlet类

  ⑧ 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法(暂时不太懂)

  ⑨ Context把执行完了之后的HttpServletResponse对象返回给Host

  ⑩ Host把HttpServletResponse对象返回给Engine

  ⑪ Engine把HttpServletResponse对象返回给Connector

  ⑫ Connector把HttpServletResponse对象返回给客户browser

6、web.xml详解

  web.xml是针对每一个具体的web站点而进行的配置,如果没有配置 则默认使用config中的web.xml

  web.xml文件中的标签比起service.xml中的标签容易理解好多 在此不详细描述,只介绍个别标签  百度”tomcat web.xml 配置详解“ 很容易得到想要的东西。

<servlet-mapping>
<servlet-name>calculate</servlet-name>
<url-pattern>/getvalue</url-pattern>
</servlet-mapping>

  <servlet-mapping>  是定义在servlet 和URL之间的一种映射,context就是通过这种映射去根据URL请求去匹配servlet的。

  在<servlet-mapping> 下包含两个标签  <servlet-name>和<url-pattern>  当接受到getvalue请求时,便用名字为calculate的servlet去处理。

<init-param>
<!-- 请求对应的commandid -->
<param-name>name1</param-name>
       <param-value>value</param-value>
</init-param>

  在web.xml中使用<init-param>标签的作用,就是为了在servlet中通过方法获取值,如:

this.getInitParameter("name1")

  返回值即为:   value

7、tomcat实现基础认证(base64)

  首先修改tomcat—user.xml文件(在conf文件夹下,这个文件默认包含了三个用户 (tomcat、role1、both) 的定义);这时候创建了用户角色。

  下面需要为用户角色分配权限(设置用户角色的属性)

  为了配合测试,在webapp目录下新建一个目录 authority,里面放一个文件 important.html   下面修改WEB-INF下面的web.xml配置文件。

  添加如下内容

<security-constraint>        <!--此标签的作用是限制访问资源-->
<web-resource-collection>
<web-resource-name>
Restricted Area
</web-resource-name>
<url-pattern>/authority/*</url-pattern> <!--通过URL的方式 限制访问资源; 也可以通过<http-method> 限制访问方法的方式限制-->
</web-resource-collection>
<auth-constraint> <!--具有访问权限的用户-->
<role-name>tomcat</role-name>
</auth-constraint>
</security-constraint> <login-config>
<auth-method>BASIC</auth-method> <!--用于指定验证方法 有BASIC、DIGEST、FORM、CLIENT-CERT-->
<realm-name>Authenticate yourself</realm-name> <!--如果选用 BASIC 方法进行验证的时候,标准登录对话框中的一个描述名称。-->
</login-config>

  好了,现在通过http://localhost:8080/webapp/authority/important.html  访问,就会出现对应需要输入用户名和密码的对话框了!

8、使用tomcat实现HTTPS安全访问

  首先需要生成两个文件,.keystore   和 .cer文件,然后导入JVM,之后修改配置文件,就OK !这些操作都是通过key-too命令完成的。百度一下,就可以了,自己试过  不过过了几天,就不想再整理了。

9、使用tomcat 实现摘要验证

10、tomcat 配置serverlet程序

  http://www.cnblogs.com/tengpan-cn/p/4908964.html

从零深入 tomcat的更多相关文章

  1. 新入手服务器不会玩?抢占式实例服务器教程,从零搭建tomcat超简流程

    新入手服务器不会玩?抢占式实例服务器教程,从零搭建tomcat超简流程 相信很多新人入手Linux服务器后,一脸无奈,这黑框框究竟能干啥?忽觉巨亏血亏不是? 这里面门道可不是你想象中的那么点,简则服务 ...

  2. 攻城狮在路上(肆)How tomcat works(零) 前言说明

    最近几篇是关于How tomcat works一书的读书笔记. 通过数个章节逐渐实现一个tomcat的功能. 源码下载地址:http://zhidao.baidu.com/share/7007af0f ...

  3. 从零搭建SSM框架(五)Maven实现Tomcat热部署

    配置tomcat 第一步:需要修改tomcat的conf/tomcat-users.xml配置文件.添加用户名.密码.权限. <role rolename="manager-gui&q ...

  4. 《JSP+Servlet+Tomcat应用开发从零開始学》

    当当网页面:  http://product.dangdang.com/23619990.html 内容简单介绍      本书全面介绍了 JSP开发中涉及的相关技术要点和实战技巧. 全书结构清晰,难 ...

  5. 零基础学习java------33---------http协议,tomcat(其如何在eclipse上发布),注册案例

    一. HTTP协议 https://www.cnblogs.com/vamei/archive/2013/05/11/3069788.html 二. tomcat---------->web服务 ...

  6. 从零搭建SSM框架(四)手动实现Tomcat部署

    发布War包 Windows环境部署 增加如下配置 <Context path="/" docBase="cnki" debug="0" ...

  7. Tomcat 日志清除(含扩展AccessLogValve)

    1.tomcat的访问日志AccessLogs定期或者定量删除 a 开启tomcat访问日志 编辑${catalina}/conf/server.xml文件.注:${catalina}是tomcat的 ...

  8. Tomcat服务器配置以及相关配置文件介绍

    摘自:http://blog.163.com/ny_lonely/blog/static/18892427320136925044357/ context.xml 文件   配置属性说明     用于 ...

  9. 阿里云服务器Linux CentOS安装配置(零)目录

    阿里云服务器Linux CentOS安装配置(零)目录 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 阿里云服务器Linux CentOS安装配置(二)yum安装svn 阿里云服 ...

随机推荐

  1. First blogs start

    这是我第一次写博客笔记,为了更好的成长,从现在开始我的博客记录. 我是从事linux运维的,到目前为止,已经有2年的工作经验了. 希望从此以后我能够坚持每天记录下点点滴滴.

  2. Vasya and String(尺取法)

    Vasya and String time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  3. oracle 序列介绍

    序列介绍 序列是一个计数器,它并不会与特定的表关联.通过创建Oracle序列和触发器实现表的主键自增. 序列的用途一般用来填充主键和计数. 序列使用 1.创建序列 ORACLE序列的语法格式为: CR ...

  4. 【转载】将绿色版Tomcat服务添加到系统服务并设为开机运行

    转自: http://www.cnblogs.com/lan0725/archive/2009/11/04/1873859.html   运行cmd打开控制台,进入Tomat目录/bin文件夹,输入如 ...

  5. Python第三方库安装技巧

    pytho下有三种安装第三方库方法: 1.通过easy_install安装 2.通过Pip安装 前面两种,由于受国内部门网站原因,如果安装失败,可采用接下来的第三种方法 3.在指定网站下载安装 第三方 ...

  6. 关于LR监视Windows和linux的说明

    一.监控windows系统: 1.监视连接前的准备工作 1)进入被监视windows系统,开启以下二个服务Remote Procedure Call(RPC) 和Remote Registry Ser ...

  7. python selenium基本

    基本 from selenium import webdriver import re driver = webdriver.Firefox() driver.get('https://www.goo ...

  8. JavaScript高级程序设计:第二章

    在HTML中使用JavaScript 1.<script>元素:向HTML页面中插入JavaScript的主要方法就是使用<scritp>元素.HTML4.01为<scr ...

  9. ASP.NET MVC View向Controller提交数据

    我们知道使用MVC的一个很重的的用途就是把Controller和View之间进行解耦,通过控制器来调用不同的视图,这就注定了Controller和View之间的传值是一个很重的知识点,这篇博文主要解释 ...

  10. Java-多重if 结构

    import java.util.*;public class ifs { public static void main(String args[]){ Scanner in=new Scanner ...