三种servlet的总结

1. 实现Servelt的第一种方法 实现servlet接口

一.servelt是以个普通类,创建一个servlet接口的实现类

1).public class HelloServlet implements Servlet{}

2).web.xml中配置和映射servlet

	<!-- 配置servlet和映射servlet -->
	  <!-- 注册一个servlet -->
	  <servlet>
		<!-- 注册名 -->
		<servlet-name>hello</servlet-name>
		<!-- servlet类的全类名 -->
		<servlet-class>com.java.servlet.HelloServlet</servlet-class>
	  </servlet>
	  <!-- 映射servlet -->
	  <servlet-mapping>
	  	<!-- 必须和注册名一致 -->
	  	<servlet-name>hello</servlet-name>
	  	<!-- 浏览器访问路径/代表当前web应用的根目录 -->
	  	<url-pattern>/hello</url-pattern>
	  </servlet-mapping>

访问路径:http://localhost:8080/demo1/hello

二.servlet容器,运行servlet或者jsp等软件环境

1)可以创建servlet和管理servlet的生命周期

2)servlet的生命周期是由servlet容器负责管理
	构造器:执行时调用,只有第一次请求servlet时调用。
	init():只被调用一次,在创建好实例以后直接调用。
	service():被调用多次,每一次请求的时候都调用service方法,用于获取和响应请求。
	destory():只被调用一次,当前web应用程序被卸载时被调用,用于释放资源。

三.load-on-startup:
1)配置:


hello

com.java.servlet.HelloServlet

2

2).load-on-startup:指定servlet被创建和初始化的时机,
如果是负数:在第一次请求时被创建
如果是正数或0:在当前web应用被加载的时候创建servlet实例和初始化,数值越小越早创建。

四. servlet-mapping
1).同一个servlet可以有多个servlet-mapping,即多个
的子节点的设置值可以是同一个servlet注册名

	2)<url-pattern>通配符:.html和/url/*俩者不能同时使用,会出现端口冲突

五.ServletConfig:代表当前servlet,可以获取当前servlet的配置信息,还可以获取ServletContext对象
常用方法:
1).//getInitParameter(String) 获取当前Servlet指定名称的初始化参数的值
String initParameter = config.getInitParameter(“username”);

		2).//getInitParameterNames()  获取当前Servlet所有初始化参数的名字组成的枚举
		Enumeration<String> names = config.getInitParameterNames();
	
		while (names.hasMoreElements()) {
			
			String name1 = (String) names.nextElement();
			
			String value=config.getInitParameter(name1);
			System.out.println("name1:"+name1+",value:"+value);
		}
		
		
		3).//getServletName()    获取当前Servlet在web.xml中配置的名字
		String servletName = config.getServletName();
		
		
		4).//getServletContext()   获取代表当前web应用的ServletContext对象
		
		ServletContext sc = config.getServletContext();
		sc.getContextPath();//获取web应用的根目录

2. 实现servlet的第二种方法

GenericServlet是一个抽象方法,继承该抽象方法

一.
1)GenericServlet是一个servlet,是servlet和servletConfig接口的实现类,
是一个抽象类,其中service是一个抽象方法
2)具体实现
1.GenericServlet中声明了一个成员变量ServletConfig,并且init(ServletConfig config)
里面对象这个变量初始化
2.利用servletConfig成员变量实现了servletConfig接口里面的方法
3.还定义了init()方法,如果子类需要在初始化的时候完成一些特定功能,可以重写无参的init方法,并且在init(ServletConfig config)
里面调用了init方法,注意:重写的init的方法不是生命周期方法,init(ServletConfig config)才是生命周期方法

3. 第三中servlet的实现方式
一.
HttpServlet是实现servlet最常用的一种方式
1).继承GenericServlet,他是针对http协议定制的
2).在service(ServletRequest req,ServletResponse res)中直接把俩个参数
转换为HttpServletRequest req, HttpServletResponse resp 并调用service(HttpServletRequest req, HttpServletResponse resp)
在重载的service(HttpServletRequest req, HttpServletResponse resp)方法中,获取请求方式,并且根据请求方式调用doGet或doPost
3).继承HttpServlet只需要重写doGet()和doPost()方法即可

二.
//ServletContext:当前web应用对象(在当前web应用下所有的地方都可以获取他,只有一个,相当于这个项目的全局变量)
//获取ServletContext对象的方式
//1
ServletContext context = getServletContext();
//2
ServletContext context2 = getServletConfig().getServletContext();

	ServletContext常用方法:
	//getInitParameter(String)   获取当前Servlet指定名称的初始化参数的值
	String initParameter = config.getInitParameter("username");
	
	//getInitParameterNames()  获取当前Servlet所有初始化参数的名字组成的枚举
	Enumeration<String> names = config.getInitParameterNames();
	//getServletName()    获取当前Servlet在web.xml中配置的名字
	String servletName = config.getServletName();
	
	//getServletContext()   获取代表当前web应用的ServletContext对象
	
	ServletContext sc = config.getServletContext();
	sc.getContextPath();//获取web应用的根目录
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值