Servlet配置与使用

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


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

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


一、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。
在这里插入图片描述
在这里插入图片描述

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
在这里插入图片描述
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>

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

结果如下:
在这里插入图片描述

这就是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"));
    }
}

在这里插入图片描述

两种方式总结

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

总结

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

  • 10
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
servletJava语言编写的服务端程序,用于处理客户端的请求并生成响应。要配置和编写servlet,首先需要在web应用程序的配置文件web.xml中进行配置,声明servlet的名称、类名、映射路径等信息。然后在Java项目中编写servlet类,继承HttpServlet类,并重写doGet、doPost等方法来处理客户端的请求。 在web.xml中配置servlet时,需要使用<servlet>和<servlet-mapping>标签来分别声明servlet和其映射路径。在<servlet>标签中,使用<servlet-name>和<servlet-class>子标签来声明servlet的名称和类名。在<servlet-mapping>标签中,使用<servlet-name>和<url-pattern>子标签来将servlet映射到具体的URL路径上。 在编写servlet类时,需要继承HttpServlet类,并重写doGet、doPost等方法来处理GET和POST请求。在servlet类中可以获取客户端请求的参数、操作数据库、生成响应等。编写servlet时需要注意线程安全性和异常处理,确保servlet能够正确地处理客户端请求并生成正确的响应。 除了在web.xml中配置servlet外,还可以使用注解的方式对servlet进行配置。通过在servlet类上使用@WebServlet注解来声明servlet的URL路径和名称,可以避免在web.xml中进行繁琐的配置使用注解配置servlet可以简化开发流程并提高代码的可读性。 总之,配置和编写servlet需要在web.xml中进行声明和映射,并在Java项目中编写servlet类来处理客户端请求和生成响应。同时可以使用注解来简化servlet配置,提高开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值