servlet入门超简单

本文详细介绍了Servlet的入门,包括如何创建和配置Servlet。深入讲解了Servlet的生命周期,强调了init方法在服务器启动时执行的重要性。讨论了Servlet的加载方式,通过设置`load-on-startup`可以在服务器启动时创建Servlet实例。此外,文章详细阐述了Servlet的url-pattern配置,包括完全路径匹配、目录匹配和扩展名匹配的优先级。最后,探讨了ServletConfig和ServletContext对象的使用,它们在获取web项目信息、读取文件和作为域对象存取数据方面的作用。
摘要由CSDN通过智能技术生成


一、servlet入门

servlet :其实就一个运行在web服务器上的小的Java程序,用于处理从web客户端发送的请求并且对请求作出响应。

服务器向浏览器打印一个hello:
第一步:建立一个类去实现servlet接口,实现service方法
在这里插入图片描述


import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class HelloServlet implements Servlet{
   

	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
   
		res.getWriter().println("Hello Servlet");
	}	
	@Override
	public void destroy() {
   	
	}

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

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

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

第二步:在web.xml配置servlet,如下图:

  <servlet><!--配置servlet-->
  	<servlet-name>HelloServlet</servlet-name><!--配置servlet名称-->
  	<servlet-class>com.servlet.demo.HelloServlet</servlet-class><!--配置servlet类全路径-->
  </servlet>

  <servlet-mapping>  <!--配置servlet的映射-->
  	<servlet-name>HelloServlet</servlet-name>  <!--配置servlet名称,与上面必须一致-->
  	<url-pattern>/hello</url-pattern>  <!--配置servlet访问路径-->
  </servlet-mapping>

在这里插入图片描述
第三步:启动服务器,然后输出访问路径,查看页面即可
在这里插入图片描述
地址栏的/hello先和url-pattern匹配然后根据映射servlet-name找到servlet-name相同的然后执行servlet-class的类然后执行里面service方法。

通常情况下,我们不会像上面那么编写,因为要实现的方法多,一般可以使用servlet的实现类去继承。例如,HttpServlet.是一个与协议相关的Servlet是专门用来处理HTTP协议的请求。通常编写一个 Servlet一般都会让这个 servlet继承HttpServlet重写service方法。
在service方法内部根据请求方式不同执行不同的doXxx()的方法(get 请求执行doGet方法,如果是post请求就会执行doPost方法)。
所以往往继承了HttpServlet之后不需要重写service方法,只需要重写doGet和doPost方法。往往请求要处理的内容的代码都是一致的,所以需要让doGet和doPost相互调用可以简化编程。

二、servlet生命周期

servlet生命周期:Servlet对象从创建到销毁的过程。

servlet何时被创建又是何时被销毁的?
Servlet中有init, service,destroy方法,这几个方法称为是Servlet生命周期相关的方法。
Servlet是在第一次被访问的时候会被实例化,只要servlet一被实例化那么servlet 中的init方法就会执行(init只会执行一次)。任何一次从客户端发送来的请求,那么servlet中的service方法就会执行(在service方法的内部根据请求的方式不同调用不同doXxx方法)。当servlet从服务器中移除或者服务器关闭的时候Servlet对象被销毁,里面的destroy方法就会执行,然后垃圾回收就会将其回收掉。

三、servlet启动时加载

Servlet对象是第一次被访问的时候会被创建的,init方法就会执行。假设在init方法中做了一些比较耗时的操作(比如:加载了一些配置文件并且解析可能需要花费3秒钟)。第一个用户第一次访问这个Servlet的时候,需要等待3秒钟。如何使第一个用户在第一次访问的时候不需要花费这么长时间?

Servlet 默认是在第一次访问的时候创建的对象,现在通过一个配置将Servlet的实例化的过程放在服务器启动的时候(让服务器启动的时候创建Servlet 的对象)。如果现在这样做那么之前花费的时间就会在服务器启动的时候一起花费掉了。对于用户来讲就不需要额外花费这个时间。

建立一个继承httpservlet的实例化对象。然后去web.xml中配置load-on-startup 一般是要写2,如果有多个servlet数字越小,优先级越高

  <servlet
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值