☕导航小助手☕
🍚写在前面
🍜一、Maven的介绍
🍱二、第一个Servlet的创建
🍔🍔2.1 创建项目
🥩🥩2.2 引入依赖
🦪🦪2.3 创建目录
🍣🍣2.4 编写代码
🍛🍛2.5 打包程序
🍤🍤2.6 部署程序
🍰🍰2.7 验证程序
🥡三、安装 Smart Tomcat
写在前面
在上一篇博客中,主要介绍了 Tomcat 的下载和安装,当然 也介绍了 Tomcat 的使用(当然,介绍的仅仅是 部署静态页面 的部分) ~
而 这一篇博客 主要介绍的是 关于 Tomcat 的动态页面,这就涉及到了一些关于 Tomcat 所提供的 API —— Servlet ~
于是,就可以基于 Servlet 编写代码,部署到 Tomcat 上,实现 动态页面 的效果 ~
一、Maven的介绍
Maven 是一个 "构建工具",具有可以 针对代码进行依赖管理、编译、打包、验证、部署 等功能 ~
之前所写的代码,都是在 Idea 中,直接点击 "运行",就直接 "运行" 了,而没有经过上面的各种步骤 ~
这是因为 之前所写的代码都很简单(大部分代码都是 单个 .java文件,并且也不需要打包部署给其他人)~
如果是一个很复杂的项目,依赖了很多的第三方库,并且自身还有很多模块,模块也有依赖关系......
此时,程序的编译运行就不是直接一点就可以的 ~
Maven 就可以视为是 针对复杂项目进行管理的一个解决方案 ~
当然,Java 世界中的构建工具有很多(Ant、Gradle 等等),但是 Maven 是当下最主流使用的构建工具之一 ~
其中,Maven 自身的功能有很多的,不过现阶段只需要关心使用 它的两个功能:
- 管理依赖:想使用某个第三方库,就是用 Maven 把这个库下载下来并导入到项目中
- 打包:把代码编译好,把 .calss文件 打成压缩包(.jar 或者 .war)
maven项目 的目录结构:
二、第一个Servlet的创建
2.1 创建项目
需要注意的是,此处不在创建一个普通的 Java项目,而是要创建一个 Maven项目 ~
2.2 引入依赖
此处所涉及的依赖,是写 Servlet 程序 所需要的依赖(需要导入 Servlet 的 jar包),需要把这个 jar包 下载导入到项目中 ~
此处,可以使用 maven 来自动的下载、导入 jar包 ~
下载网址:Maven中央仓库
到了这一步,就可以来下载 jar包 了,但是 现在不想使用 手动下载的套路(具体可以去看一看 MySQL 那部分的下载方式),我们可以使用 Maven 自动帮忙下载 ~
复制内容之后,粘贴到 pom.xml文件 中:
当然,也不是随便就粘贴的~
需要注意一下标签的结构:最外层是 project 标签,是 pom.xml 自带的 ;需要在里面手动创建一个 dependencies 标签,然后再把复制的内容 粘贴到这个标签内部 ~
2.3 创建目录
虽然说,创建项目之后 会自动的创建一些目录,但是 还需要手动的创建出一些其他的必要的目录(这个是固定的操作,没有为什么 )~
创建的目录的名字是 webapp(注意,不是 webapps)
此时,创建的目录名字是 WEB-INF
此时,创建出的文件取名为 web.xml
此时,项目的目录结构是这样的:
至于为什么是这样创建的,这属于 Tomcat 做出的要求,要想使得程序被 Tomcat 识别,那么就只能去遵守 ~
创建好了的 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>
至于 web.xml文件 中的内容是啥意思,我们也不需要去关心,后续也不会去修改这个文件 ~
我们只需要知道,Tomcat 加载一个自己写的程序,就会先读取 web.xml文件 里面的内容 ~
2.4 编写代码
创建 HelloServlet.java文件 ~
- 创建类,继承 HttpServlet类
- 重写 doGet方法
- 编写代码执行逻辑
- 加上 WebServlet注解
import javax.jws.WebService;
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")
//重写 doGet方法 后,还需要需要加上这个注解,约定 HTTP请求的 URL 是啥样的 path,才会调用这个Servlet类
//不是所有的 GET请求,都会触发 doGet方法(只有满足特定的路径的请求,才会触发)
//不能乱写:前面一定要加上 / ,后面一定不要加 /
public class HelloServlet extends HttpServlet {
//HttpServlet 父类里面本身有一个 doGet方法,此处通过重写的形式,让 doGet 执行到自己写的代码
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//把自动生成的调用父类的方法,一定给删掉,否则会出现问题
//super.doGet(req, resp);
//当前只需要写一个 Hello Servlet 的逻辑
//这个是打印在响应报文中,显示到页面上
resp.getWriter().write("Hello Servlet");
}
}
需要注意的是:
- 上述的代码没有 main方法,不能单独执行,main方法 在 Tomcat 里面 ,上述代码需要部署到 Tomcat中,由 Tomcat 进行调用 ~
2.5 打包程序
打包操作,其实非常简单,借助 maven,可以一键式完成 ~
此时,在项目目录下 就生成了所需要的结果:
可是,默认生成的压缩包是 jar包(Java世界 中的通用的压缩包),而 Tomcat 识别的确是 war包 ~
所以,此处需要修改 pox.xml,让生成工作生成 war包 ~
<packaging>war</packaging>
当然,也可以顺便修改一下 生成的包的名字(可选项,但是如果不改 后续会比较麻烦)
<build>
<finalName>hello_servlet</finalName>
</build>
此时,重新 打包:
2.6 部署程序
此时,就可以把刚才得到的 war包,拷贝到 Tomcat 的 webapps目录 中 ~
接下来,当然要 启动 Tomcat:
在启动 Tomcat 的时候,就能在 Tomcat 的日志中,看到一个提示,意思就是 Tomcat 发现了这个 war包,同时就会对这个 war包 进行解压缩和加载 ~
2.7 验证程序
当前 已经把程序部署到 Tomcat 上,还需要让浏览器去构造一个 HTTP 的 GET请求:
127.0.0.1:8080/war包名字/代码中所写的注解
三、安装 Smart Tomcat
一看上面的过程就非常的繁琐,现在就可以介绍一种稍微简单一点的办法(只是稍微简单一点)~
前面的 第一、二、三步骤 创建一个项目的时候,就操作一次就好了;第四、五、六、七步骤 是每次修改代码,都需要进行的;所以说 可以修改 第四、五、六、七步骤 来进行优化,而 编写代码 和 验证 部分 没有办法优化,所以可以优化其他的两点 ~
可以借助 Idea 里面的插件 来进行简化 打包 和 部署 —— Smart Tomcat ~
就是下面的这个:
Smart Tomcat 的功能,就是能够在 Idea 中调用 Tomcat(启动 Tomcat,就不需要手动的找到 启动 Tomcat 的脚本来运行:就是 startup.bat那个),可以直接在 Idea 上面点一下就可以运行 Tomcat 了~
之后点击 OK,就会出现下面的界面:
然后再点击小三角形,编译打包部署程序,并运行 Tomcat ~
Tomcat 已经跑起来了,同时 乱码也是消失不见的 ~
此时,就可以在浏览器输入 127.0.0.1:8080/hello_servlet/hello
后续,如果想重新修改代码,直接重新运行小三角形即可,Smart Tomcat 会自动进行上述操作 ~
好了,关于 的内容就介绍到这里了 ~
希望大家看完之后会收获满满 ~
如果感觉这一篇博客对你有帮助的话,可以一键三连走一波,非常非常感谢啦 ~