Servlet概念-原理-操作[Java-web]

本文详细介绍了Servlet的概念、实现、请求响应原理、生命周期、HttpServlet、ServletConfig、Servlet路径映射以及单例Servlet。Servlet是JavaWeb三大组件之一,主要负责处理用户请求。Tomcat在接收到请求后,会根据web.xml配置找到对应的Servlet并创建实例,调用service方法进行处理。Servlet的生命周期包括init、service和destroy三个关键方法。同时,文章还讨论了如何在Tomcat启动时创建Servlet,以及Servlet数据共享和路径映射的配置方法。
摘要由CSDN通过智能技术生成

Servlet概念-原理-操作[Java-web]

Javaweb三大组件相关博客

Listener:
Filter:

WHAT IS SERVLET

Servlet是JavaWeb三大组件之一,它是我们学习JavaWeb最为基本的组件,也就是说一定要掌握它

Servlet,用来处理用户请求,当客户端发出请求后,由Tomcat去找到可以处理这一请求的Servlet来处理

也就是说,用户的请求是由Servlet来处理的

例如用户发出登录请求,那么就应该由处理登录的Servlet来处理;

用户发出登录请求,那么就应该有登录Servlet来处理

Servlet实现

servlet运行在 Web 服务器中小型 Java 程序servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求

也就是说,Servlet是由我们自己来完成的!但Servlet一定要实现javax.servlet.Servlet接口,并且还要在web.xml配置文件中部署!不然Tomcat是找不到我们写的Servlet的

javax.servlet.Servlet接口中方法如下:

  • void init(ServletConfig servletConfig)

    当Tomcat创建Servlet实例后,马上调用init()方法。这个方法只在创建后调用一次!用来做Servlet初始化工作!一个Servlet实例只被创建一次,所以init()方法也只被调用一次!

  • `void service(ServletRequest request, ServletResponse response):

    Servlet实例在每次处理请求时都调用service()方法

  • void destroy()

    Tomcat要销毁Servlet实例时,会先调用destroy()方法,再销毁它。所谓销毁Servlet,其实就是在Servlet缓存池中把Servlet移除一般只有Tomcat关闭时,才会销毁Servlet实例

  • ServletConfig getServletConfig():

    这个方法返回ServletConfig对象,但我们不能自己去创建ServletConfig对象,所以一般我们会在init()方法中把init()方法的参数保存起来,然后再在本方法中返回它ServletConfig对象对应web.xml中当前Servlet实例的配置信息

  • String getServletInfo():

    这个方法只是返回一个字符串,用来说明当前Servlet。基本没用!

编写一个Servlet,实现Javax提供的servlet接口:

import javax.servlet.*;
import java.io.IOException;

public class testServlet implements Servlet {
    //实现 Servlet 接口

	//初始化方法
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
   
    }

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

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
   
       /*servlet里的逻辑*/
        //以字节流的形式写入页面
        servletResponse.getOutputStream().write(" i am login..".getBytes());
    }

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

配置web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <servlet>
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值