Tomcat部署war包并成功访问网页

简介: Tomcat部署war包并成功访问网页

一. 什么是Servlet



servlet是一种实现动态页面所需的技术, 是一组Tomcat提供给程序员的API,帮助程序员高效开发的一个web app


二. 如何利用Tomcat部署war包



1. 创建一个maven项目


使用idea创建一个maven项目

09ef39c673e64bd49070a6a75402d130.png


只需要填写好存放位置, 并选择Maven项目即可. Name选项可根据自己需要填写

创建过后进入idea, 首次创建时, 会有一个加载过程, 稍等一会儿即可, 完成后会自动生成一个pom.xml文件

27d05e69f7b54ffb9ae97cec3565887f.png


2. 引入依赖


进入中央仓库(中央仓库首页地址), 在搜索栏进行搜索servlet, 选择 Java Servlet API ,即可到达以下界面选择自己需要的版本号(Servlet版本号必须和Tomcat匹配)进行下载即可(对应servlet和Tomcat查询地址)

d05553ed8bc343ca99f618d56b117f8a.png


点击下载对应版本号进入该页面

f9be668a61804da9a03accace87d429d.png


选择Maven对话框, 将下面maven下面蓝色对话框中的内容复制到pom.xml文件中


10fd0a375ee84b82be19f1a127b0f7ed.png


输入 dependencies标签, 将上述复制内容粘贴到该标签内引入依赖. 首次引入时, 框内文字有些地方在idea上是红色的, 此时idea会自动将该依赖对应的jar包下载到本地, 等待下载完成刷新就不红了. 此时, 基本上我们的引入servlet就算完成了


除了将maven框内的内容复制到pom.xml文件中, 还可以选择下载对应的jar包, 然后将其拖拽到idea中即可


3. 创建目录


当上述都完成以后, 在idea项目栏中可以看到如下几个包

841f36dd286d422999ff4be3b3da9c5d.png


src包 : 代表源代码所在目录

main/java : 表示源代码的根目录, 后续创建的.java文件都会在该目录中

main/resources : 表示项目的一些资源文件所在目录

test/java : 表示测试代码的根目录


除了上述这些创建maven项目过后本身就有的文件, 还需要自身创建几个文件


1.创建webapp文件

image.png


注意一定是在main目录下创建一个名为 webapp 的目录


2.创建web.xml


先在 webapp 目录下创建一个 WEB-INF 目录

a3c5d9de8a28402ba1566af98631ac45.png


接着在 创建的 WEB-INF 目录下创建一个 web.xml 文件

8817e159888f40d3ae04e58bf2682348.png


完成过后, 在项目栏中便有了如下目录关系

ea27f09c1c354580a559ee71c28948ee.png


3.编写 web.xml 文件


在web.xml 文件中直接粘贴以下代码, 可能会有红色报错, 此处并非代码错误, 而是ieda对于除java格式外的其他检测并不一定十分准确, 可以尝试利用ctrl + enter 处理报错, 不处理也可以.

<!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/java下创建一个java类并继承 HttpServlet, 重写doGet方法.

@WebServlet("/hello")
// 父类中已经有了doGet. 此处希望用子类代替父类的
public class HolleServlet extends HttpServlet {
    @Override
    // 由Tomcat来自动调用
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 父类的doGet方法只是返回一个错误页面 需要注释掉
        //super.doGet(req, resp);
        System.out.println("hello world");
        // resp.getWriter()返回的是一个PrintWriter,这是一个打印输出流
        // resp.getWriter().write 只能打印文本输出格式(包括标签), 但不可以打印对象
        resp.getWriter().write("hello");
    }
}


需要注意的事以下几点:


1.在这个类上方加上@WebServlet(“/hello”) 注解 : 表示Tomcat收到的请求中, 只有路径为/hello的请求才会去调用这个类的代码 (该注解必须加, 才能关联一个路径)


2.重写doGet方法(不一定为doGet方法, 需要构造什么请求就重写什么) , req表示收到的HTTP请求, resp表示要构造的HTTP响应. 当Tomcat收到Get请求时, 则会调用该方法.


3.HttpServletRequest 表示 HTTP 请求. Tomcat 按照 HTTP 请求的格式把 字符串 格式的请求转成了一个HttpServletRequest 对象. 后续想获取请求中的信息(方法, url, header, body 等) 都是通过这个对象来获取.


4.HttpServletResponse 表示 HTTP 响应. 代码中把响应对象构造好(构造响应的状态码, header, body 等)

5.resp.getWriter() 会获取到一个流对象, 通过这个流对象就可以写入一些数据, 写入的数据会被构造成一个 HTTP 响应的 body 部分, Tomcat 会把整个响应转成字符串, 通过 socket 写回给浏览器.


5. 打包程序


使用maven窗口进行打包

6f01fe1493674c4c8c46ddde90479f60.png


找到里面的打包功能双击即可

30bea0049d9c479f8654777d806ce4fd.png


需要注意的是, 当我们此时直接点击打包, 生成默认是一个名称复杂的 jar 包, 但是 Tomcat 认的是 war 包, 因此 我们需要修改一些 pom.xml 文件, 让其默认打包为一个自命名的 war包.

e5c4dce8478143a887c50350fe1822fa.png


通过 packaging 标签表明打包形式, finalName标签表明 war 包名称. 完成后, 重新点击打包此时就可以获得一个自命名的 war 包了.

该 war 包位于一个 target 目录下

cb40e749525746b8b09a93b369dcd4f5.png


6. 部署程序


将上面的 war 包复制一份到 Tomcat/webapps 下

b57c1451df7c425da03afcae46162cb3.png


启动 Tomcat (Tomcat/bin/startup.bat) 加载 war 包, 在 webapps目录下便会生成一个同 war 包同名的目录, 此时便算部署完成了

b84e5aa0a19b49dd98c24e751e53d7d0.png


7. 检验程序


运行 Tomcat 打开网页输入127.01.01:8080/0310/hello, 得到如下页面说明程序正确

7634b40ea8234a53a27d2c7b02a2c777.png


这里, /0310 即为第一级目录, 也就是你的 Context Path 路径(包名路径) , hello 为Servlet Path 路径, 也就是你注解中的路径


至此, Tomcat 部署 war 包并访问就算告成了 !!!

相关文章
|
4月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
322 0
|
7月前
|
Java 应用服务中间件
多项目分接口:在同一Tomcat下使用不同的端口号访问不同的项目。
总而言之,要在同一Tomcat服务器下使用不同端口访问不同项目,关键是通过对server.xml文件的配置创建多个 `<Service>`实例和相应的虚拟主机。这种方法既实现了项目隔离,也有助于优化资源利用率。通过遵循本文的详细说明,很容易地就能满足需求实现多项目分接口。
289 38
|
7月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
537 17
|
7月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
167 18
|
7月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
241 10
|
存储 应用服务中间件 数据库
|
3月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
628 5
|
6月前
|
Java 应用服务中间件 Linux
在Java 12环境中配置和部署Apache Tomcat的步骤。
这段部署Tomcat的冒险旅程充满技术挑战,但同时也像游戏一样充满乐趣。它需要你提前准备,仔细执行,并随时准备解决意外情况。成功后,你就可以在这匹强壮的网络野马上,带着你的Java应用,冲向Web开发的璀璨星空。
225 56
|
9月前
|
网络协议 Java 应用服务中间件
框架源码私享笔记(01)Tomcat核心架构功能 | 配置详解
本文首先分享了《活出意义来》一书序言中的感悟,强调成功如同幸福,不是刻意追求就能得到,而是全心投入时的副产品。接着探讨了Tomcat的核心功能与架构解析,包括网络连接器(Connector)和Servlet容器(Container),并介绍了其处理HTTP请求的工作流程。文章还详细解释了Tomcat的server.xml配置文件,涵盖了从顶级容器Server到子组件Connector、Engine、Host、Context等的配置参数及作用,帮助读者理解Tomcat的内部机制和配置方法。
|
7月前
|
Java 应用服务中间件 Maven
在IntelliJ IDEA中如何配置使用Maven以创建Tomcat环境
所以,别担心这些工具看起来有些吓人,实际上这些都是为了帮助你更好的完成工作的工具,就像超市里的各种烹饪工具一样,尽管它们看起来可能很复杂,但只要你学会用,它们会为你烹饪出一道道美妙的食物。这就是学习新技能的乐趣,让我们一起享受这个过程,攀登知识的高峰!
482 27