Tomcat是一个Http服务器,Servlet是一种实现动态页面的技术,是一组Tomcat提供给程序员的API,帮助程序员简单高效的开发一个web app。
Servlet的工作:
- 允许程序员注册一个类,当Tomcat收到某个特定的HTTP请求时,会执行这个类中的一些代码。
- 解析HTTP请求,从一个字符串解析成一个HttpRequest对象。
- 构造HTTP响应,程序员给指定的HttpResponse对象填写一些属性字段,Servlet就会自动的安装HTTP协议的方式构造一个HTTP响应字符串,通过Socket写回到客户端。
Servlet程序实现步骤:
1.创建项目 2.引入依赖 3.创建目录 4.编写代码 5.打包程序 6.部署项目 7.验证程序
1.创建项目
使用idea创建一个maven项目
maven:工程管理工具,进行依赖的管理,maven工程不直接将jar包导入到工程中,而是通过在pom.xml中添加所需的jar包的坐标,这样就避免了jar直接引入进来,在需要用到jar包的时候,只要查找pom.xml文件,再通过pom.xml中的坐标,到一个专门用于存放jar包的仓库中根据坐标从而找到这些jar包,再把这些jar包拿去运行 。
1.构建工程, 2.管理jar, 3.编译代码, 4.自动运行单元测试, 5.打包 , 6.生成报表, 7.部署项目,生成web站点。 (孙悟空的金箍棒)
2. 引入依赖
在自动生成的pom.xml文件中,引入 Servlet API 依赖的jar包。
在中央仓库mvnrepository中搜索servlet
servlet的版本要和Tomcat匹配(Tomcat8.5 对应 servlet3.1.0 ),将红框中的xml复制到pom.xml
3.创建目录
在Java同级目录下,创建一个webapp目录,并在此目录下,创建一个WEB-INF目录,接着创建一个web.xml文件
编写web.xml文件
<!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>Archetype Created Web Application</display-name> </web-app>
webapp目录中通常会放一些静态资源:html,css...
Tomcat 通过web.xml文件 才能正确处理webapp中的动态资源
4.编写代码
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
//HttpServletRequest请求 HttpServletResponse响应 doGet是根据请求计算响应
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//super.doGet(req, resp);
System.out.println("hello world");
resp.getWriter().write("hello world");
}
}
5.打包程序
需要打成war包,tomcat才能识别,因此需要在pom.xml中新增packaging标签,新增build标签,内置finalName标签可修改war包的名字
<packaging>war</packaging> <build> <finalName>ServletHelloWorld</finalName> </build> </project>
双击package即可打包