Servlet学习笔记

Servlet概念

  1. Servlet是Java语言编写的程序,一个Java类。
  2. 运行在WEB服务器。
  3. 用于处理用户的请求
  4. 对用户请求作出对应的响应,然后将处理的结果封装到HTML代码中返回给客户端

Tomcat服务器访问Servlet步骤

  1. 客户端发出请求
  2. 查找该链接对应的servlet-name
  3. 到servlet标签中查找servlet-name,与2中servlet-name匹配的项
  4. 查找对应的serlvet-class
  5. 利用反射机制访问对应的servlet类

Servlet容器与Servlet区别

Tomcat是一个WEB容器,因为Tomcat是J2EE标准的产品,因此需要Tomcat支持Servlet。因此可以认为tomcat是一个Servlet容器。
区别:

  1. Servlet是一个Java类,初始化时调用init方法,销毁时调用destroy方法,实例化和销毁是由Servlet容器完成。
  2. Servlet在Servlet容器中运行,Servlet容器负责调度Servlet的生命周期

Servlet生命周期

  1. init方法
    在服务器启动时,不会调用该方法。
    当访问Servlet时,将调用该Servlet中的init方法。
    但是注意,该方法在服务器运行期间仅仅运行一次。
    一般用于初始化工作。
  2. destroy方法
    用于销毁处理,在服务器关闭时将调用,因此一般用于清理工作。
    仅仅运行一次。
  3. doGet和doPost方法
    当客户端发出的数据已get方式进行提交,那么将会执行doGet方法。
    当客户端发出的数据已post方式进行提交,那么将会执行doPost方法。
  4. 生命周期
    Servlet生命周期由Servlet容器控制,分为初始化阶段、运行阶段、销毁阶段。
    ① 初始化阶段,Servlet容器开始加载Servlet类,把其Class文件中的数据读取到内存中,然后Servlet容器会读取ServletConfig对象,然后Servlet容器创建Servlet。
    ② 运行阶段
    Servlet接收到一个请求,Servlet容器会针对这个请求创建ServletRequest和ServletResponse对象,然后调用service方法,此时service将会判断发出的请求方式,从而决定调用哪个方法(doGet或者doPost方法)。
    ③ 销毁阶段
    Web应用终止时,Servlet容器会调用Servlet的destroy方法,然后销毁Servlet对象。同时会销毁ServletConfig。因此可以在销毁时关闭数据库连接以及Servlet占用的资源。在整个Web生命周期中只运行一次。

过滤器

Servlet过滤器是Java中非常有用的一种技术,其有用之处在于减少代码量。过滤器是用户请求和处理程序之间的一层处理程序。可以对用户请求和响应的结果进行处理,利用该特征可以实现字符编码处理、权限控制、访问控制等。

  1. 写过滤器 implements Filter
public class CharacterFilter implements Filter{

	public void destroy() {
		
	}

	public void doFilter(ServletRequest request, 
ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
	}

	public void init(FilterConfig config) throws ServletException {
	}

}

Init方法会在服务器启动的时候调用。
Destroy方法会在服务器关闭的时候调用
doFilter会在访问对应的页面的页面时调用。和url-pattern相关

  1. 配置配置文件 web.xml
<filter>
  	<filter-name>CharacterFilter</filter-name>
  	<filter-class>com.xxx.CharacterFilter</filter-class>
</filter>
<filter-mapping>
  	 <filter-name>CharacterFilter</filter-name>
  	 <url-pattern>/*</url-pattern>
</filter-mapping>

事件监听器

事件监听器用于监听一些重要事情的发生,监听器对象可以在事件发生前和事件发生后做出相应的处理。

Servlet上下文监听,表现为Servlet容器创建和销毁触发事件。

public class MyServletContextListener implements ServletContextListener {

	public void contextDestroyed(ServletContextEvent arg0) {
		System.out.println("--------destroy-------------");
	}

	public void contextInitialized(ServletContextEvent arg0) {
		System.out.println("--------init-------------");
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值