Tomcat简介
对一个Web应用服务器来说,它会完成底层的网络处理:包括Http协议报文格式的编解码、管理具体web请求处理线程等这些操作。
Tomcat是最流行的基于java的服务器,是Apache软件基金会出品的开源软件。
Tomcat的源代码是java写的,所以运行Tomcat需要依赖java虚拟机JVM,所以在安装Tomcat之前需要安装好JDK。
Tomcat安装(Windows)
- 下载,从官网下载tomcat7的最新ZIP版本
- 解压缩
- 配置Tomcat环境变量
- 计算机属性->高级系统配置->高级->环境变量->系统变量中新建
- 增加环境变量:CATALINA_HOME,路径为Tomcat解压位置,如:D:\apache-tomcat-7.0.75
- 设置UTF-8字符集
- 进入Tomcat安装的conf文件夹,编辑server.xml
- 找到配置8080默认端口的位置,在xml节点末尾增加URIEncoding=”UTF-8”
Tomcat验证安装(Windows)
- 进入系统解压缩后的tomcat目录
- 进入bin目录
- 执行startup.bat,看到如图提示代表启动成功
- 使用浏览器输入:http://localhost:8080/
Tomcat安装(Linux)
- 下载,从官网下载Tomcat7最新的tar.gz格式的版本
- 解压缩: tar -zxvf apache-tomcat-7.0.73.tar.gz
- 配置环境变量
- sudo vim /etc/profile
- 在最下方增加:export CATALINA_HOME=/developer/apache-tomcat-7.0.73,CATALINA_HOME为安装tomcat的路径
- 保存退出,通过vim的 :wq 命令进行保存退出
- 使配置生效 source /etc/profile
- 配置UTF-8字符集
- 进入tomcat安装的conf文件夹,编辑server.xml
- 找到配置8080默认端口的位置,在xml节点末尾增加URIEncoding=”UTF-8”
Tomcat验证安装(Linux)
- 进入系统解压缩后的tomcat目录
- 进入bin目录
- 执行sudo ./startup.sh
- 打开启动tomcat机器的ip地址和默认8080端口,本机访问http://localhost:8080
Tomcat常用命令
- Tomcat启动
- Linux:${CATALINA_HOME}/bin/startup.sh
- Windows:${CATALINA_HOME}/bin/startup.bat
- Tomcat关闭
- Linux:${CATALINA_HOME}/bin/shutdown.sh
- Windows:${CATALINA_HOME}/bin/shutdown.bat
Tomcat运行
Tomcat作为一个Web服务器,可以加载HTML这种静态资源,也可以根据请求参数值得改变从而得到不同结果的动态资源(Servlet实现)。
下面,是一个Tomcat加载资源运行的例子。以去吃黄焖鸡为例。
- 在Tomcat的webapps目录下,建立Restaurant目录。
- 在Restaurant目录下创建BraisedChicken.html文件。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Restaurant-BraisedChicken</title>
</head>
<body>
<h1> 今天中午去吃黄焖鸡米饭</h1>
</body>
</html>
- 黄焖鸡可以选择分量和辣度。
- 在Restaurant目录下创建WEB-INF/classes 文件夹
- 创建BraisedChickenServlet.java
package com.meteor;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class BraisedChickenServlet extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
PrintWriter writer = response.getWriter();
String size = request.getParameter("size");
String spicy = request.getParameter("spicy");
if (size == null && size.equals("")) {
size = "small";
}
if (spicy == null && spicy.equals("")) {
spicy = "no spicy";
}
writer.println("<html><body>");
writer.println("<h1> give me a "+size+" and "+spicy+" chicken</h1>");
writer.println("</body></html>");
}
}
- 在WEB-INF目录下,创建web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0">
<display-name>Restaurant</display-name>
<servlet>
<servlet-name>choose</servlet-name>
<servlet-class>
com.meteor.BraisedChickenServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>choose</servlet-name>
<url-pattern>/choose</url-pattern>
</servlet-mapping>
</web-app>
- 编译上面的Servlet
- 试了很多次,最后把tomcat/lib下的servlet-api.jar和BraisedChickenServlet.java考到G盘根目录
- 去除package com.meteor,把类移动到classes下
- 去除web.xml中servlet中的com.meteor
- 执行javac -cp servlet-api.jar -d . BraisedChickenServlet.java
- 把生成的class文件复制到Restaurant/../WEB-INF/classes下
- 运行Tomcat,localhost:8082/Restaurant/BraisedChicken.html 和 localhost:8082/Restaurant/choose?size=big&spicy=very spicy