1. 静态资源和动态资源
静态资源:html、htm。用户看到的永远都是静态页面。Css、js
动态资源:运行在服务器端,主要功能是输出静态内容。
2.JavaWeb的服务器
JavaEE:多种java开发技术的总称.
容器:指软件服务器程序,实现了什么规范的服务器就是什么容器
重量级服务器:支持的服务多。WebSphereAS,JbossAS
轻量级的服务器:Tomcat。支持jsp/Servlet规范
3. JavaWeb应用的标准目录结构(SUN公司制定)
myApp: html,htm,css,js,a\a.html,WEB-INF(必须有,没有不能称之为javaWeb,顶多称为Web,且此目录端的资源客户端无法访问)
WEB-INF: classes文件夹,lib文件夹,web.xml
如下:
maApp:
html.js.jsp.
WEB-INF:
classes
lib
web.xml
4.Tomcat的安装与启动遇到的问题解决
1.目录不能有空格,中文。
2.启动时一闪而过,需要配置环境变量
3.端口被占用了:默认端口8080,Web中的默认使用的端口是80。
Catalina_home环境变量指向Tomcat的安装目录。一般不建议配置。
环境变量:
JAVA_HOME:执行JDK的安装目录C:\jdk1.6.0_20
path:.....;%JAVA_HOME%\bin 保证能在任意目录下执行java命令
命令搜索顺序:内部命令
外部命令
当前目录下:exe com bat
依次从path环境变量中指定的目录下搜索。
环境变量的改变,当前窗口不起作用。需要开启新窗口。
5. Tomcat的目录结构(应用厂商自己制定的)
Tomcat版本 | Servlet/JSP规范 | JDK版本 |
7.0 | 3.0/2.2 | 1.6 |
6.0.x | 2.5/2.1 | 1.5 |
bin:存放启动Tomcat的一些命令。
conf:Tomcat的配置文件所在目录。server.xml最为重要。
lib:Tomcat所需的jar包(Tomcat6.0之后只需装JRE,而tomcat5.0之前需要jdk,因为JSP要翻译成JAVA类,需要用到jdk里面的几个类,而6.0之后只需使用Eclipese的工具,即jdt,他封装在Tomcat的jar(ecj)包中)
logs:tomcat运行日志
temp:临时文件
webapps:存放JavaWeb应用的。默认目录。此目录中有几个文件夹,就说明当前Tom
管理着几个JavaWeb应用
work:Tomcat的工作目录
6.如何部署应用到服务器上
1.直接将应用的目录拷贝到Tomcat/webapps目录中(开放式目录部署)
2.打成war包,拷贝到Tomcat/webapps目录中
进入应用的目录:c:/MyApp
执行 jar -cvf MyApp.war .
7.Tomcat的组成结构
Server : 代表整个servlet容器组件,包含一个或多个Service元素
Service: 包含一个Engine元素和多个Connector元素,这些Connector共享同一个Engine.
Connector: 代表和客户程序实际交互的组件。负责接收客户请求和返回响应,可有多个
Engine: 处理所有<Connector>接收到的客户请求,每个Service元素只能包含一个Engine元素。。
Host: 他代表一个虚拟主机,包含一个或多个web应用
Context:代表一个web应用
配置虚拟目录
方式一:Context元素是Host元素的子元素。(修改server.xml。不建议使用。因为该文件更改后,需要重启Tomcat才起作用)
在server.xml的Host元素中添加:
<Contextpath="/MyApp" docBase="c:\MyApp"/>
path:虚拟目录名称。必须以/开头
docBase:应用的真实存放路径。
方式二:(推荐的方式。此种方式不用重新启动Tomcat)
在Tomcat安装目录/conf/[enginename]/[hostname]目录下建立一个[contextPath].xml配置文件
[enginename]:server.xml中引擎的名称生成的文件夹
[hostname]]:server.xml中引擎下的主机名称生成的文件夹
[contextPath]:新建的配置文件的主文件名就是应用的虚拟路径
在该文件中添加以下内容:
<?xmlversion="1.0" encoding="gbk"?>
<ContextdocBase="c:\MyApp"/>
配置默认端口
当有程序占用你要的端口的时候,你想从任务中删除这些进程,那么就要在管理服务那里看那个程序是不是自动的,是的话就停用。不然你删除了这些进程他还会自动生成。
把8080改为80.修改server.xml,找到8080端口的连接器Connector.
Doc命令 netstat –an
默认端口:80(W3C规定。HTTp协议)
配置默认应用:
在Tomcat安装目录/conf/[enginename]/[hostname]目录下建立一个名字为ROOT.xml的配 置文件。里面写<ContextdocBase="c:\MyApp"/>
比较特殊,需要重新启动
配置默认主页:修改应用中的web.xml
<welcome-file-list>
<welcome-file>a.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
配置虚拟主机:
server.xml中的Host元素用于配置虚拟主机,system32/drivers/hosts添加主机域名相对应的ip地址。
<Hostname="主机域名"appBase="所有应用所在的文件夹路径"/>
8.SSL(https)
配置SSL:https:Connector
HTTPS=http+SSL.默认的端口是8443
安全证书的获得有两种方式:
1、从权威机构获得证书
Certificate Authority,CA和VeriSign和Thawte,它们保证了证书的可信性。申请证书时,需要付费,且一个证书只针对一个IP有效。
2、创建自我签名的证书
如果只关心数据在网络上的安全传输,而不需要对方身份验证,可以创建自我签名的证书。与权威机构颁发的证书采用的加密技术是一样的。
为Tomcat配置SSL,它包含以下两个步骤:
1、准备安全证书
2、配置Tomcat的SSL连接器(Connector)
创建自我签名的证书。
通过这个工具生成证书的命令为:
keytool -genkey -alias tomcat -keyalg RSA
以上命令将生成包含一对非对称密钥和自我签名的证书,这个命令中参数的意思
-genkey:生成一对非对称密钥。
-alias:指定密钥对的别名,该别名是公开的。
-keyalg:指定加密算法,此处采用通用的RSA算法。
以上命令将在操作系统的用户目录下生成名为”.keystore”的文件.
如果希望生成的keystore文件放在其他目录中,可以使用-keystore参数
keytool -genkey -alias tomcat -keyalg RSA -keystored:\.keystore
配置SSL连接器
在Tomcat的servlet.xml文件中,已经提供了现成的配置SSL连接器的代码,只要把注释去掉即可
<Connectorport="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150"scheme="https" secure="true"
clientAuth="false"sslProtocol="TLS" />
其他属性:
keystoreFile:指定keystore文件的存放位置,可以指定绝对路经。如果此项没有设定,在默认情况下,Tomcat将从当前操作系统用户的用户名目录下读取名为”.keystore”的文件。
keystorePass:指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使用”changeit”密码。
错误
在配置tomcat的SSL双向握手中,由于6.0.33版本中默认启用了APR(APR是通 过JNI(解析c语言)访问的可移植库,可以提高Tomcat的性能和伸缩性),所以采用传 统的配置方式会报异常