Servlet之基础介绍

一、定义

Servlet是在服务器端运行的一个小程序,实际上一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里的servlet程序。主要用来处理客户端请求响应给浏览器的动态资源

二、最基础的Servlet类(直接实现Servlet接口)

 1.HelloServlet类

public class HelloServlet implements Servlet{
	
	public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {
		System.out.println("HelloServlet...");
	}

	@Override
	public void destroy() {}

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

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

	@Override
	public void init(ServletConfig config) throws ServletException {}

	@Override
	public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {}

}

2.web.xml注册这个Servlet

 <!-- 通知tomcat,应用里面有个Servlet,名字叫做HelloServlet,具体的路径是com.mark.servlet.HelloServlet -->
  <servlet>
  	<servlet-name>HelloServlet</servlet-name>
  	<servlet-class>com.mark.servlet.HelloServlet</servlet-class>
  </servlet>
  
  <!-- 注册servlet的映射,servletName:找到上面注册的具体servlet,url-pattern:在地址栏上的path一定要以/开头 -->
  <servlet-mapping>
  	<servlet-name>HelloServlet</servlet-name>
  	<url-pattern>/*</url-pattern>
  </servlet-mapping>

 三、通用Servlet类写法(继承于Servlet的实现类HttpServlet)

可以把具体方法写在doGet()方法中,在doPost()方法中调用执行。这样,无论你提交的是post还是get方法都可以在doGet方法中执行

public class HelloServlet0 extends HttpServlet {
    //Get请求会进入这个方法
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("get----");
    }
	
    //POST请求会进入这个方法
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("post----");
    }
}


public class HelloServlet0 extends HttpServlet {
    //Get请求会进入这个方法
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //具体方法
    }
	
    //POST请求会进入这个方法
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }
}

四、生命周期

1.init(ServletConfig config) 初始化执行一次

执行时间:在创建该Servlet的实例时,就执行该方法。一个Servlet只会初始化一次init方法只会执行一次。默认情况下是初次访问该servlet,才会创建实例。

默认情况下,只有在初次访问servlet的时候,才会执行init方法。 有的时候,我们可能需要在这个方法里面执行一些初始化工作,甚至是做一些比较耗时的逻辑。 那么这个时候,初次访问,可能会在init方法中逗留太久的时间。我们可以在配置的时候, 使用load-on-startup元素来指定启动时机, 给定的数字越小,启动的时机就越早。 一般不写负数, 从2开始即可

<load-on-startup>1(2,3,4....)</load-on-startup>   数字代表优先级,数字越小,优先级越高

ServletConfig : 代表的是该Servlet对象的配置信息

2.service(ServletRequest req,ServletResponse resp)每次请求

执行时间:每次请求都会执行,一次请求,对应一次service方法的调用。

ServletRequest :代表请求,认为ServletRequest内部封装的是HTTP请求的信息

ServletResponse :代表响应,认为要封装的是响应的信息

3.destroy() 销毁执行

执行时间:Servlet销毁的时候执行,将项目从tomcat的里面移除正常关闭tomcat就会执行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值