Servlet配置与使用

原生Servlet配置与使用【详解】


接上篇文章介绍了如何创建一个javaweb的项目,这期我们就来看看如何配置servlet,并且使用servlet接收与响应请求。

提示:新手小伙伴可以先看上篇文章,如何创建一个javaweb项目!

文章目录

  • 原生Servlet配置与使用【详解】
  • 一、Servlet简介
    • 1、Servlet容器
    • 2、实现过程
    • 3、生命周期
      • 1、实例化阶段
      • 2、初始化阶段
      • 3、服务阶段(处理请求)
      • 4、销毁阶段
  • 二、快速开始
    • 1.导入jar包
    • 2.配置servlet
      • 1.web.xml文件
      • 2.@WebServlet注解
      • 两种方式总结
  • 总结


一、Servlet简介

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
狭义方面来讲 Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

1、Servlet容器

所谓容器,顾名思义就是放东西的地方。Servlet容器自然就是放Servlet的地方。由J2EE开发。
Tomcat是Servlet的运行环境,即一个Servlet容器。
Servlet容器的作用是负责处理客户请求,当客户端发送请求过来时,Servlet容器获取请求,然后调用某个Servlet,并把Servlet的执行结果返回给客户端。因此,Servlet容器是Web服务器和servlet进行交互的必不可少的组件

2、实现过程

Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容,过程为:
1,客户端发送请求至服务器端;
2,服务器将请求信息发送至 Servlet;
3,Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
4,服务器将响应返回给客户端。

3、生命周期

Servlet生命周期是指Servlet从创建直到毁灭的整个过程。可以分为以下几个阶段:
1、加载实例化阶段;
2、初始化阶段:
3、服务阶段:
4、销毁阶段:

1、实例化阶段

Servlet 容器负责加载和实例化 Servlet。当容器启动或第一个发送请求给某个 Servlet 时,容器会读取 web.xml 或 @WebServlet 中的配置信息。对指定的 Servlet 进行加载。加载成功后,容器会通过反射对 Servlet 进行实例化。

2、初始化阶段

当客户端向 Servlet 容器发出请求时,Servlet 容器首先会解析请求,判断是否已经有了该 Servlet 对象,如果有,则直接使用该 Servlet 对象,如果没有,则创建 Servlet 实例对象,然后通过调用 init() 方法(在servlet生命周期内只能调用一次init方法)去初始化 Servlet 实例。

3、服务阶段(处理请求)

这个阶段也是 Servlet 生命周期中最重要的阶段,在这个阶段中,Servlet 容器会为这个请求创建代表 HTTP 请求的 ServletRequest 对象和代表 HTTP 响应的 ServletResponse 对象,然后将它们作为参数传递给 Servlet 的 service() 方法。
service() 方法从 ServletRequest 对象中获得客户请求信息并处理该请求,通过 ServletResponse 对象生成响应结果。
在 Servlet 的整个生命周期内,对于 Servlet 的每一次访问请求,Servlet 容器都会调用一次 Servlet 的 service() 方法,并且创建新ServletRequest 和 ServletResponse 对象,就是说,service() 方法在 Servlet 的整个生命周期中会被调用多次。

4、销毁阶段

当 Servlet 容器关闭、重启时,就表示Servlet的生命周期结束。在销毁 Servlet 之前,容器就会调用 Servlet 的destory() 方法 ,以便让 Servlet 对象释放它所占用的资源。随后该实例就会被 Java 的垃圾收集器所回收在 Servlet 的整个生命周期中,destroy() 方法也只能被调用一次。
需要注意的是,Servlet 对象一旦创建就会驻留在内存中等待客户端的访问,直到服务器关闭或 Web 应用被移除出容器时,Servlet 对象才会销毁。

二、快速开始

1.导入jar包

File-> Project Structure-> libraries 选择“+”,选择java-> 找到tomcat路径下的lib文件夹里选择servlet-api和jsp-api。
Servlet配置与使用_第1张图片
Servlet配置与使用_第2张图片

2.配置servlet

这里我们有两种方式web.xml文件的方式和@WebServlet。

1.web.xml文件

web.xml配置如下:

    <!-- 声明servlet -->
    <servlet>
        <!-- Servlet别名 自定义-->
        <servlet-name>test</servlet-name>
        <!--servlet的类全名-->
        <servlet-class>ccc.com.servlet.testServlet</servlet-class>
    </servlet>
    <!-- 将Servlet和URL绑定 -->
    <!--给Servlet提供(映射)一个可供客户端访问的URI-->
    <servlet-mapping>
        <!--必须和servlet中的name相同-->
        <servlet-name>test</servlet-name>
        <!-- servlet的映射路径(访问serclet的名称) -->
        <url-pattern>/test</url-pattern>
    </servlet-mapping>

在src文件下新建包 ccc.com.servlet,在里面新建一个类 testServlet
Servlet配置与使用_第3张图片
testServlet类里继承HttpServlet

代码如下:

public class testServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) {
        System.out.println(request.getParameter("id"));
    }
}

在index.jsp里面写入以下代码
注意name属性要对应

<form action="/test" method="get">
    <input type="text" name="id">
    <input type="submit" value="提交">
  </form>

然后我们启动服务器进入浏览器页面
Servlet配置与使用_第4张图片
随便输入一个内容,点击提交发现
Servlet配置与使用_第5张图片
我们找到Run-> Edit Configurations ->右边找到Deployment
Servlet配置与使用_第6张图片
把他改成
Servlet配置与使用_第7张图片
重新启动服务器
然后输入框里随便输入字符串点击提交,就可以发现已经在控制台打印出来了
Servlet配置与使用_第8张图片
Servlet配置与使用_第9张图片
设置返回数据,servlet接收请求,返回客户端信息
Servlet配置与使用_第10张图片

结果如下:
Servlet配置与使用_第11张图片

这就是web.xml文件的方式:

2.@WebServlet注解

这种方式的话比较简单,只需要添加一个@WebServlet就可以达到目的

如下:

@WebServlet(name = "test",urlPatterns = "/test")
public class testServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) {
        System.out.println(request.getParameter("id"));
    }
}

Servlet配置与使用_第12张图片

两种方式总结

web.xml:
优点:便于集中管理和修改。
缺点:代码量大且繁琐,可读性差;手工配置文件,容易导致错误。
@webservlet:
优点:代码少,配置简单。
缺点:无法集中配置,不方便集中管理和修改。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了servlet的使用,利用servlet实现了前后端的一个交互。

你可能感兴趣的:(java,servlet,java,前端)