关于Servlet详解

什么是Servlet?

Servlet是一种Java技术,主要用于在Web服务器上处理HTTP请求和响应。它是一个运行在服务器端的程序,能够接收浏览器发送的请求并相应地生成响应。Servlet通常用于Web应用程序的开发,它可以与JSP(Java ServerPages)一起使用来动态生成Web页面。Servlet可以处理各种类型的请求,例如POST和GET请求,以及与数据库的交互。它是JavaWeb应用程序的基础技术之一。

Servlet的生命周期

1、当浏览器第一次访问 Servlet 的时候,Tomcat 会查询当前 Servlet 的实例化对象是否存在,如果不存在,则通过反射机制动态创建对象,后执行第2步。如果已经存在,直接执⾏第 3 步。
2、调⽤ init ⽅法完成初始化操作。
3、调⽤ service ⽅法完成业务逻辑操作。
4、关闭 Tomcat 时,会调⽤ destory ⽅法,释放当前对象所占⽤的资源。
没有实际演示的介绍就是耍流氓,空洞无力。

演示

我们创建一个ServletTest类,同样去实现Servlet接口,重写方法。并且我们映射到地址为/test
给上面介绍三个方法分别加入打印一句话的功能。
完整的代码如下:

@WebServlet("/test")
public class ServletTest implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("我是init");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("我是service");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("我是destory");
    }
}

Servlet的使用

Servlet是Java编写的服务器端程序,它能够处理客户端发送的请求并返回响应结果。Servlet主要用于创建基于Web的应用程序。以下是使用Servlet的步骤:

1.创建Servlet类,这个类必须扩展javax.servlet.http.HttpServlet类。

2.覆盖doGet()或者doPost()方法,这两个方法都是处理客户端请求的入口,它们接收HttpServletRequest和HttpServletResponse对象,可以从请求对象中获取数据并将结果写回响应对象。

3.在web.xml文件中配置Servlet,这个文件通常放在应用程序的WEB-INF目录下。在web.xml文件中配置Servlet名称、Servlet类、Servlet的映射URL等信息。

4.部署应用程序,将应用程序打包为.war文件并部署到服务器上。

5.启动服务器,当客户端发送请求时,服务器会找到相应的Servlet并调用它的doGet()或doPost()方法处理请求。

需要注意的是,Servlet默认使用GET方式处理请求,如果需要使用POST方式,需要在请求中设置相应的Method属性。另外,为了提高Servlet的性能,应尽量避免在Servlet中使用全局变量和静态变量,这些变量会增加Servlet的内存消耗和运行时间。

对象:

Java万物皆对象,可是我们演示中的ServletTest并没有在任何地方new出来呀。其实这个操作是Tomcat帮我们完成的,它通过反射机制调用无参构造方法创建了这个对象。这也很好的解释了为什么我们在xml配置映射时需要类的全路径,反射就是如此。

我们可以去写一个无参构造,看看情况。

    public ServletTest() {
        System.out.println("我是构造方法,你的对象创建出来啦。");
    }

方法

⽆参构造函数、init、service、destory

1、⽆参构造函数只调⽤⼀次,创建对象。

2、init 只调⽤⼀次,初始化对象。

3、service 调⽤ N 次,执⾏业务⽅法。

4、destory 只调⽤⼀次,卸载对象。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值