目录
Servlet概念
创建一个Servlet程序
1、创建项目
2、导入依赖
3、创建目录
4、编写代码
5、打包程序
6、部署程序
7、验证程序
Servlet概念
Servlet 是一种实现动态页面的技术
.
是一组
Tomcat
提供给程序猿的
API,
帮助程序猿简单高效的开发一个 web app.
Servlet
主要做的工作:
- 允许程序猿注册一个类, Tomcat 收到某个特定的 HTTP 请求的时候, 执行这个类中的一些代码.
- 帮助程序猿解析 HTTP 请求, 把 HTTP 请求从一个字符串解析成一个 HttpRequest 对象
-
帮助程序猿构造 HTTP 响应 . 程序猿只要给指定的 HttpResponse 对象填写一些属性字段 , Servlet就会自动的安装 HTTP 协议的方式构造出一个 HTTP 响应字符串 , 并通过 Socket 写回给客户端 .
创建一个Servlet程序
1、创建项目
使用
IDEA
创建一个
Maven
项目
.
1. 菜单
->
文件
->
新建项目
-> Maven
2、导入依赖
Maven 项目创建完毕后
,
会自动生成一个
pom.xml
文件,
我们需要在 pom.xml
中引入
Servlet API
依赖的
jar
包
.
在Maven中央仓库https://mvnrepository.com/ 搜索Servlet进行下载
选择下载的servlet api包的版本
Servlet 的版本要和 Tomcat 匹配 .可以在 http://tomcat.apache.org/whichversion.html 查询版本对应关系
把中央仓库中提供的 xml 复制到项目的 pom.xml 中
3、创建目录
1)在
main
目录下
,
和
java
目录并列
,
创建一个
webapp
目录
2)在刚创建的webapp文件夹下创建文件夹WEB-INF,然后在该文件夹下创建web.xml
3)在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>
4、编写代码
在main目录下创建一个HelloServlet类:
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("hello Servlet");
resp.getWriter().write("hello Servlet");
}
}
HttpServletRequest 表示 HTTP 请求。 Tomcat 按照 HTTP 请求的格式把 字符串 格式的请求转成了一个 HttpServletRequest 对象 HttpServletResponse 表示 HTTP 响应。 代码中把响应对象构造好 ( 构造响应的状态码 , header, body 等 ) resp.getWriter() 会获取到字符流对象 , 通过字符流对象就可以写入一些数据 , 写入的数据会被构造成一个 HTTP 响应的 body 部分 , Tomcat 会把整个响应转成字符串 , 通过 socket 写回给浏览器.
注意点:
1、我们的代码不是通过 main 方法作为入口了. main 方法已经被包含在 Tomcat 里, 我们写的代码会被 Tomcat 在合适的时机调用起来. 此时我们写的代码并不是一个完整的程序, 而是 Tomcat 这个程序的一小部分逻辑.
2、我们随便写个类都能被 Tomcat 调用嘛? 满足啥样条件才能被调用呢?
主要满足三个条件:
a) 创建的类需要继承自 HttpServlet
b) 这个类需要使用 @WebServlet 注解关联上一个 HTTP 的路径
c) 这个类需要实现 doXXX 方法.
当这三个条件都满足之后, Tomcat 就可以找到这个类, 并且在合适的时机进行调用.
5、打包程序
点击maven->package,就可以打包程序了
出现以下信息则打包成功
注意点:如果想要修改打包的压缩包名字,可以在pom.xml文件里面增加如下代码:
<!-- war为tomcat打包压缩包的后缀-->
<packaging>war</packaging>
<!-- hello_servlet为自己想要修改打包压缩包的名字-->
<build>
<finalName>hello_servlet</finalName>
</build>
6、部署程序
把
war
包拷贝到
Tomcat
的
webapps
目录下,
启动 Tomcat , Tomcat
就会自动把
war
包解压缩
7、验证程序
运行Tomcat文件 :startup.bat ,在浏览器输入运行文件路径,观察结果