了解Servlet及Servlet的使用

目录

1、创建程序 

2、引入依赖

3、创建目录结构 

4、编写servlet代码 

5、打包  

6、部署程序 

7、验证程序 

简便部署: 


前面学习了然后使用Maven,在Maven的基础上我们可以通过七个步骤来实现一个servlet程序

1、创建项目

2、引入依赖

3、创建目录结构

4、编写servlet代码

5、打包

6、部署

7、验证程序

1、创建程序 

  

2、引入依赖

通过Maven中央仓库搜索servlet:

选择第一个,找到3.1.0版本

复制Maven中的代码:

创建<dependencies>标签,将代码复制到pom.xml当中:

点击刷新:

依赖引入完成。

3、创建目录结构 

1、选中main右键创建一个目录,目录名叫做webapp

2、右键webapp,新建一个目录叫做WEB-INF

3、右键WEB-INF创建一个文件web.xml

然后,我们可以给web.xml中写一点东西进去;这些常用的代码我们可以放在gitee上面 

<!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、编写servlet代码 

首先在java这个目录下创建一个java类,TestServlet,继承自HttpServlet;如果代码爆红,说明HttpServlet没有被正确引入,只需要点击maven中的刷新即可! 

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class TestServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        
    }
}

HttpServletRequest req代表一个http请求,HttpServletResponse resp代表http响应,当前方法中并没有代码,这里的resp是一个空的响应对象,需要给这个方法中设置一些属性,doGet方法需要做的事情就是根据请求,计算响应 

由于服务器的接受请求及解析和构造响应数据发送给客户端这两步Tomcat已经帮我们完成了,所以我们只需要完成根据请求计算响应即可。

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().write("test servlet"+System.currentTimeMillis());
    }

getWriter其实返回了一个Writer对象,此处的Writer对象不是往文件里面写;而是往http响应的body中写入数据;write()是真正用来干活的,写数据的方法 

同时还需要在类的上面加上个@WebServlet("/test") 注解, 表示 Tomcat 收到的请求中, 路径为 /test
的请求才会调用 TestServlet 这个类的代码。 (这个路径未包含 Context Path)

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("/test")
public class TestServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().write("test servlet"+System.currentTimeMillis());
    }
}

5、打包  

使用打包就可以把程序放到Tomcat上运行 

使用 maven 进行打包。打开 maven 窗口 (一般在 IDEA 右侧就可以看到 Maven 窗口, 如果看不到的话,可以通过 菜单 -> View -> Tool Window -> Maven 打开)然后展开 Lifecycle , 双击 package 即可进行打包

当控制台出现BUILD SUCCESS时打包完成

然后点开新的target目录:

这里打包出现了一个jar包,但这并不是我们想要的,因为Tomcat识别的是war包,所以我们想要对pom.xml进行一定的修改。

war 包和 jar 包的区别
jar 包是普通的 java 程序打包的结果. 里面会包含一些 .class 文件。
war 包是 java web 的程序, 里面除了会包含 。class 文件之外, 还会包含 HTML, CSS, JavaScript, 图片, 以及其他的 jar 包. 打成 war 包格式才能被 Tomcat 识别。

在 pom.xml 中新增一个 packing 标签, 表示打包的方式是打一个 war 包

<packaging>war</packaging>

在 pom.xml 中再新增一个 build 标签, 内置一个 finalName 标签, 表示打出的 war 包的名字是TestServlet

    <build>
        <finalName>TestServlet</finalName>
    </build>

完整的 pom.xml

重新使用 maven 打包, 可以看到生成的新的 war 包的结果
 打包完毕 

6、部署程序 

把刚才的war包拷贝到tomcat的webapps目录下 

 将该war包复制粘贴到tomcat的webapps

粘贴过来后启动Tomcat:

 启动完毕

7、验证程序 

在浏览器输入对应的地址 :127.0.0.1:8080/TestServlet/test

注意: URL 中的 PATH 分成两个部分, 其中 TestServlet 为 Context Path, test 为 Servlet Path
 

当然了上述的打包部署过程较为繁琐,我们也有更简便的方法!!!

简便部署: 

通过一些第三方的工具来简化打包和部署这两步的操作,IDEA上有一个插件叫做smart tomcat就可以自动完成打包部署的操作。

下载安装即可。

下载安装后首先要进行一波配置,后续就像点击启动一样方便使用了。

点击这里,然后点击+号

点击smart Tomcat

点击右上角的这个绿色的三角,便可自动的进行打包部署 

 注意使用这种方法要把启动的Tomcat关闭,以免造成端口冲突。

点击绿色三角一键打包部署:

这样就部署完成了

猜你喜欢

转载自blog.csdn.net/m0_67995737/article/details/129863257