Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。支持Servlet和JSP 规范,且最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。
Apache 软件基金会有两款常用软件:apache web 服务器 和 tomcat web服务器。
apache web服务器专门处理HTML页面的。
tomcat web服务器,不仅可以处理servlet和jsp,而且也能处理html页面,不过不如apache web服务器
在开发中,一般使用tomcat处理servlet和jsp,使用apache服务器处理html页面。及apache和tomcat被整合在一起使用。
步骤一:下载一个tomcat服务器软件.
http://tomcat.apache.org/download-70.cgi
步骤二:解压下载好的zip文件.
将解压后的文件copy到一个没有中文和空格的路径下即可.
例如:D:\java\tomcat\apache-tomcat-7.0.6
bin:脚本目录
启动脚本:startup.bat
停止脚本:shutdown.bat
conf:配置文件目录
核心配置文件:server.xml
用户权限配置文件:tomcat-users.xml
所有web项目默认配置文件:web.xml
lib:依赖库,tomcat和web项目中需要使用的jar包
logs:日志文件.
localhost_access_log..txt tomcat记录用户访问信息,星表示时间。
例如:localhost_access_log.2016-02-28.txt
temp:临时文件目录,文件夹内内容可以任意删除。
webapps:默认情况下发布WEB项目所存放的目录。
work:tomcat处理JSP的工作目录。
localhost:8080/
三、Tomcat启动方式(我使用的是Tomcat7)
方式一:通过Tomcat命令启动和访问
直接在安装的Tomcat文件bin目录下使用startup和shutdown
方式二:引入到eclipse
(1)菜单栏windows---preferences----搜索server,如图:
(2)Window----->show View----->Servers,点击后如下图操作
eclipse中创建web项目
File—->new—->Dynamic Web Project—–>如下图
eclipse启动方式:右键项目名—->Run As—->Run on Server
方式三:引入到myEclipse
(1)菜单栏windows—preferences—-搜索server
(2)创建项目
File—->New—->Web Project
Web项目
在JavaEE规范中,WEB项目存在一定的目录结构,具体结构如下:
项目名称
|—–静态资源.HTML,CSS,JS
|—–WEB-INF //WEB-INF 目录下的资源浏览器不能直接访问,可以用来限制用户访问
|—-web.xml 当前WEB项目的核心配置,Servlet2.5必须有,3.0可省略。
|—-lib 当前WEB项目所需要的第三方的jar的存放位置。
|—-classes Java源码编译后生成class文件存放的位置。
创建的项目会存在Tomcat文件中的webapps目录下
*浏览器进行Tomcat访问
Tomcat访问路径:http://localhost:8080/项目名/要访问的文件
若要访问的文件是默认的index.jsp,可不用加“要访问的文件”
1、JAVA_HOME的配置
问题:如果没有配置JAVA_HOME环境变量,在双击“startup.bat”文件运行tomcat时,将一闪立即关闭。
解决:必须配置正确,及JAVA_HOME指向JDK的安装目录
右键“我的电脑”—->属性—->高级系统设置—->环境变量—–>看系统变量里的内容—->新建,如图:
2、端口号冲突
问题:当同一台计算机启动两个tomcat时,第二个tomcat将会在控制台抛异常,摘要信息如下:
严重: Failed to initialize end point associated with ProtocolHandler [“http-bio-8080”]
java.net.BindException: Address already in use: JVM_Bind :8080
…
Caused by: java.net.BindException: Address already in use: JVM_Bind
…
控制台将出现大量异常信息,描述的是3个端口被占用(8080、8009、8005 )
解决:通过 $JAVA_HOME/conf/server.xml修改端口号。
3、修改字符集编码
Window—->Preferences—–>搜索workspace,如图:
4、修改JSP文件的默认字符集
5、展示需要的窗口
1、修改Tomcat端口号
打开server.xml,找到下面修改port后,重启服务器生效,默认8080,如果改成80(生成环境改成80,浏览器默认http端口为80),则在浏览器中可不加端口号
2、配置外部应用(虚拟路径)
除了将web项目放在tomcat的文件路径下部署,也可以将web项目放置在tomcat之外部署。
比如把一个web项目放在C:\hello,而tomcat放在d盘,这就需要将外部的应用C:\hello部署到tomcat中。
配置方式二种:
第一种:config/server.xml,打开server.xml文件,然后找到标签
在其中添加元素如下:
Path:指定当前应用的名称
DocBase:web项目的物理路径,比如C:\hello
那么浏览器访问此项目的路径是:localhost:8080/hellotomcat
第二种:在conf\Catalina\localhost中创建hellotomcat.xml文件,在改文件中编写标签
代码如下
浏览器访问路径:localhost:8080/hellotomcat
3、配置虚拟主机
我们想要在浏览器上输入http://www.iss.com就能访问我们的项目。
需要做如下设置:
修改tomcat端口号为80
在本机上解析域名http://www.iss.com为127.0.0.1,
我们需要修改C:\Windows\System32\drivers\etc\hosts
Server.xml文件中添加Host
<Host appBase="c:\webapps" autoDeploy="true" name="www.iss.com" unpackWARs="true">Host>
appBaes:存放项目的根目录
name:虚拟主机名称
浏览器访问路径:http://www.iss.com 会访问我们的项目。
4、配置https连接
让tomcat支持https协议,HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
第一步:产生秘钥对
keytool -genkey -alias tomcat -keyalg RSA
在C盘找到如上图位置的秘钥文件:
第二步:配置tomcat服务器的https连接器:
将秘钥文件拷贝到tomcat的conf文件中
在conf中server.xml中添加如下配置:
port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="conf/.keystore" keystorePass="123456" truststoreFile="conf/.keystore" truststorePass="123456"/
注意:Server.xml中此段是被注释掉的,所以用的时候需要先把注释去掉
第三步:重启tomcat服务器,浏览器输入:https://localhost:8443/hellotomcat/
电子商务认证授权机构(CA, Certificate Authority),也称为电子商务认证中心,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
关于证书
1、每个人都可以使用一些证书生成工具为自己的https站点生成证书(比如jdk的keytool),大家称它为“自签名证书”,但是自己生成的证书是不被互联网承认的,所以浏览器会报安全提示,要求你手动安装证书。只有通过权威的CA机构付费获得的证书才能被互联网承认(有点类似于根域服务器的权威机构)。
2、证书(无客户端服务端之分)保存着ip信息、证书过期时间、证书所有者地址信息等。
双向认证
1、先决条件是有两个或两个以上的证书,一个是服务端证书,另一个或多个是客户端证书。
2、服务端保存着客户端的证书并信任该证书,客户端保存着服务端的证书并信任该证书。这样,在证书验证成功的情况下即可完成请求响应。
3、双向认证一般企业应用对接。
单向认证
1、客户端保存着服务端的证书并信任该证书即可
2、https一般是单向认证,这样可以让绝大部分人都可以访问你的站点。