tomcat介绍:
web服务器只能完成静态资源的请求;
web容器能够进行动态资源的请求;
tomcat就是一个最简单的web容器,是apache的jarkata项目的子项目。
tomcat 7.0.x支持servlet 3.0规范,因此建议使用7.0.x;
tomcat有两种版本:
(1)二进制版本:解压后需要配置环境变量,建议使用此版本。
(2)服务版本:可执行文件,安装好后会在系统中注册服务.
tomcat目录介绍:
tomcat有几个文件夹:
(1)bin:存放可执行命令,比如开启和关闭tomcat:startup.bat;
(2)conf:配置文件。
(3)webapps:发布web应用。
(4)lib:库文件,可以通过此目录扩展,比如放置数据库驱动在此文件中。
(5)work:临时的java或class文件。
tomcat基本配置
注意:tomcat不要放在中文目录或带有空格的目录中;
一、配置环境变量
1.配置 java_home :c:\java\jdk1.6.0_27
2.配置 catalina_home:c:\apache-tomcat-7.0.6 (这个环境变量可以不配)
这里以我的配置为例,根据自己的安装位置调整;
catalina_home配置了以后,当出现如图情况:
当点击c:\tomcat\bin\startup.bat后 启动的是d:\tomcat
二、配置端口
默认为8080,可以在tomcat/conf/server.xml中的配置.
1
2
3
|
< connector port = "8888" protocol = "http/1.1" //此处可以把8888换成任意端口. connectiontimeout = "20000" redirectport = "8443" /> |
配置完这些后已经可以使用tomcat了,在浏览器中输入 http://localhost:8888 后弹出如下页面:
端口被占用问题:
如果有其他软件占用了此端口,则会导致tomcat不能启动;
解决方案:
用fport等软件查看端口使用情况,然后 kill 此进程即可;
三、配置用户角色
为了在页面中管理部署web应用,必须要有用户,因此需要配置新用户和密码(原本无用户)。
在tomcat/conf/tomcat-users.xml中的<tomcat-users></tomcat-users>中添加如下语句:
1
2
|
< role rolename = "manager-gui" /> < user username = "admin" password = "12345" roles = "manager-gui" /> //用户名为admin,密码为12345 |
jaas:java authentication authorization service 即java验证授权服务
如图可以利用前面设定的用户名和密码登陆:
四、配置部署web应用路径
1.可以在webapps目录中进行部署,即直接将整个web应用复制到webapps下。
2.可以在conf/catalina/localhost目录中创建一个test.xml,在此文件中添加:
1
2
3
|
<? xml version = "1.0" encoding = "gbk" ?> < context docbase = "f:/publish" debug = "0" privileged = "true" > //docbase是路径,可以自己调整 </ context > |
这样可以输入 http://localhost:8080/test 访问,注意这个test就是xml文件的名字。
比如xml文件的名字为x.xml,则输入 http://localhost:8888/x
还需要在f:\publish,也就是web应用的目录新建一个web-inf文件夹,在此文件夹中新建一个web.xml,为了偷懒,可以把tomcat/webapps/web-inf/web.xml 的文件黏贴到f:\publish\web-inf中.
3.可以在网页中部署,如图所示:
可以通过war包或者一个路径部署,war包可以从eclipse中导出。
常见注意点:
1.设置端口号:在conf/server.xml中修改。
2.配置虚拟目录:在conf/server.xml中最后添加<context path = "...." docbase = "..."/>,
比如 <context path = "/test" docbase = "d:\test"/>,则浏览器中输入http://localhost:8080/test则可以运行d:\test的内容。
注:在配置完后还要在conf/web.xml中
1
2
|
<param-name>listings</param-name> <param-value>false</param-value>改成true |
3.配置默认首页:在conf/web.xml中最后
1
|
< welcome-file >index.html</ welcome-file > |
说明默认为index.html,因此如果输入http://localhost:8080/test则会自动调用index.html.
4.每个web应用中都需要web-inf和web.xml文件,最简单的办法就是去tomcat主目录下的webapps/root/的web-inf拷贝到你所需要的web应用文件夹下。
5.第一次用户请求某个jsp会比较慢。
原因:jsp首先会转换成java文件,然后再编译成class文件,最后才执行,这些java和class的文件都在tomcat主目录的work文件夹下。
http常见状态:
(1)404错误:客户路径不正确造成。
(2)500错误:服务器内部错误。
因此总的来说:
(1)2##:请求成功。
(2)4##:客户端错误。
(3)5##:服务器错误。
jsp文件简介:html+java代码。
<%。。。%>中嵌入java代码。
在html中<form>的action属性可以设置服务器处理请求的jsp文件,例如:
1
|
<form action = "hello.jsp" method = "post" > |
接下来是一个最简单的应用tomcat的程序,用户输入任意字符串比如world,服务器返回hello加上字符串,比如hello,world.
1
2
3
4
5
6
7
8
9
10
11
12
|
< html > < head > < title >demo</ title > </ head > < body > 输入内容: < form action = "input.jsp" method = "post" > < input type = "text" name = "info" /> < input type = "submit" value = "显示" /> </ form > </ body > </ html > |
jsp文件:
1
2
3
4
5
6
7
8
9
10
11
12
|
<html> <head> <title>demo</title> </head> <body> <% string str = request.getparameter( "info" ); str = "hello," +str; out.println( "<h1>" +str+ "</h1>" ); %> </body> </html> |
web应用目录布局建议:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
主目录 | |-web-inf | |- web.xml | |- classes | | |-放置class文件 | |- lib | | |-放置第三方jar包 | |- src | | |-存放源文件 |-存放jsp、html | |-image | |-存放图片 |