简单理解Servlet

Posted 汤米先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单理解Servlet相关的知识,希望对你有一定的参考价值。

一. 什么是servlet?

servlet 是运行在服务器上的小程序,专门负责处理客户机的请求,它是一个接口,定义了一些规则(被游览器访问了如何处理的规则)。

二. servlet怎么用?

1. 创建实现servlet接口的类

  1. 首先创建一个类来实现servlet接口 ,这里我们只在service类中写入 System.out.println("你好!");

package Servlet;

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

public class ServletDemo1 implements  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 
        System.out.println("你好!");
    

    @Override
    public String getServletInfo() 
        return null;
    

    @Override
    public void destroy() 

    


2. 修改web.xml文件


下面红框内为添加部分,第一demo1为虚拟目录名字,下面为类的全类名,下面的servlet-mapping 内 第一个是虚拟目录名字(通过这个来搜索上面名字相同的servlet),第二个为虚拟目录。
标签及其内容可以不写,在类中,用下面的注解代替

3. 开启服务器


等待服务器开启,访问指定的虚拟目录,然后web.xml文件就会查询是否有 url-pattern 标签,如果有 再根据 虚拟目录名字 查找 相应的servlet标签下的 全类名(不懂可以看上一个步骤),并调用类中的方法(多种方法根据需求不同都可调用)。

得到结果 ,因为我刷新了一次,打印了两遍 你好。

servlet 接口方法的介绍

1. init()

init :起始方法,仅在服务器开启时执行一次。

2 .service()

service : 服务方法,更新开启服务器都会执行。

3 . destroy()

destroy: 摧毁方法,仅在服务器正常关闭时执行一次 。


以上三种方法,统称为servlet的生命周期方法,是servlet最主要的功能

4. getServletConfig()

getServletConfig():获取servlet的配置信息。

5 .getServletInfo()

getServletInfo():获取servlet的一些基本信息,比如作者,版权等等。


注意:内存中只存在一个servlet对象,但它可被多个类引用,存在安全问题,所以尽量不要在它的方法中定义成员变量。

HttpServlet抽象类用法

HttpServlet:继承了 GenericServlet抽象类(实现了Servlet接口,并且只用了servel()方法,其他方法置为空,可以重写),而且是对http协议的一种封装,具有doGet和doPost方法应对不同的请求。

@ WebServlet()

主要设计路径,格式如下:
1 . @ WebServlet(urlPatterns = "/demo1"),加单个虚拟目录
2 .@ WebServlet(urlPatterns = "demo1","demo","ddd"),加多个虚拟路径
3. @ WebServlet(urlPatterns = "/user/demo"),加双重路径
4. 也有很多特殊写法 @ WebServlet(urlPatterns = "/*")@ WebServlet(urlPatterns = " *.do") .

以上是关于简单理解Servlet的主要内容,如果未能解决你的问题,请参考以下文章

简单理解Servlet

如何阅读Tomcat源代码?

带有 servlet 的 jQuery 自动完成 UI 不返回任何数据

Java基础——JSP

学习总结------Servlet的简单理解

金蝶handler中 collection 代码片段理解