1. Servlet
1.1 什么是 Servlet
Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app.
1.2 Servlet 的使用
① 创建 Maven 项目
② 引入依赖
中央仓库搜索servlet
选择 3.1.0 这个版本(因为Tomcat是8.5版)
复制到 pom.xml中
③ 创建目录结构
在 main 下 创建 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>
④ 写一个简单的代码
创建一个类 这个类 继承 HttpServlet
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 MyFirstServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//super.doGet(req, resp);
resp.getWriter().write("hello servlet");
}
}
注: 这里的@WebServlet("/hello")
表示 Tomcat 收到的请求中,路径为 /hello
的请求才会调用 这个类的代码.
想被 Tomcat调用 满足以下条件
- 创建的类继承自 HttpServlet
- 需要使用 @WebServlet 注解一个 HTTP 的路径
- 要实现 doXXX 的方法
⑤ 打包程序(打war包)
war包是java web的程序.里面除了.class文件之外还有HTML,CSS,JavaScript,图片… war包能被Tomcat识别
在pom.xml增加标签
<!-- 打成war包 -->
<packaging>war</packaging>
<!-- 修改包名 -->
<build>
<finalName>FirstServlet</finalName>
</build>
进行打包
⑥ 将 war 包 部署到 Tomcat 的 webapps目录下
启动 Tomcat,Tomcat会把war包进行解压
⑦ 在浏览器上访问
浏览器上输入: http://127.0.0.1:8080/FirstServlet/hello
注意路径的书写:
http://服务器ip:8080/ContextPath/[WebServlet注解中的路径]
1.3 使用 IDEA 的插件部署
① File -> Settings
② Plugins -> Marketplace 搜索 Smart Tomcat 下载 然后重启IDEA
③ 点击 Add Configuration…-> 点击 + -> 选择 Smart Tomcat
④ 选择正确的Tomcat路径
⑤ 运行,然后在浏览器上访问
1.4 访问出现错误的情况
正确的是http://127.0.0.1:8080/MyServlet/hello
1) 404
情况一: Context Path 错误(没写或者写错)
情况二: Servlet Path 错误(写错或者没写)
情况三: web.xml错误
2) 405
情况一: 没有实现DoXXX方法
情况二: DoXXX方法中 super方法没有去掉
3) 500
代码中出现错误
4) 出现空白页
5) 无法访问网站
一般都是Tomcat 启动失败