Servlet、Servlet过滤器、Servlet监听器

翻译 2014年02月01日 12:04:49

1、Servlet是实现(implements)Servlet接口或继承(extends)Servlet接口的实现类HttpServlet的java类,首先要进行配置:@WebServlet("/Sevlet名"),另一种配置方式为在web.xml中进行配置

  •       使用servlet可以实现页面的转发,利用RequestDispatcher接口的forward()方法
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		RequestDispatcher requestDispatcher=request.getRequestDispatcher("main.jsp");	//创建
		requestDispatcher.forward(request, response);		//转发页面

	}
  •      使用servlet可以处理表单数据,在index.jsp文件中提交表单form1到servlet中处理,
<form id="form1" name="form1" method="post" action="MessageServlet">

                  在servlet中的处理为:

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		request.setCharacterEncoding("UTF-8");
		String person = request.getParameter("person");
		String content = request.getParameter("content");
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter(); 
		out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
		out.println("<HTML>");
		out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
		out.println("  <BODY>");
		out.print("留言人:" + person + "<br>");
		out.print("留言内容:" + content + "<br>");
		out.println("<a href='8-4-index.jsp'返回</a>");
		out.println("  </BODY>");
		out.println("</HTML>");
		out.flush();
		out.close();
	}

2、Servlet过滤器需要实现(implements)java.servlet.Filter接口,直接的配置方式为在类中

@WebFilter(
                  filterName = "CountFilter"
		urlPatterns = { "/8-6-index.jsp" }, 
		initParams = { 
				@WebInitParam(name = "count", value = "1000")
		})
//属性介绍如下:
//filterName用于指定Servlet过滤器名
//urlPatterns用于指定哪些URL应用该过滤器,若所有页面均使用该过滤器则属性值设为"/*"
//initParams用于指定初始化参数
  • 使用Servlet过滤器可以实现网页访问计数器的功能,原理是将计数变量的值在该类的doFilter()方法中递增,因为客户端在请求服务器中的Web应用时,过滤器的拦截请求是通过doFilter()方法进行过滤处理的
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		count ++;											// 访问数量自增
		// 将ServletRequest转换成HttpServletRequest
		HttpServletRequest req = (HttpServletRequest) request;
		// 获取ServletContext
		ServletContext context = req.getServletContext();	
		context.setAttribute("count", count); 			// 将来访数量值放入到ServletContext中
		chain.doFilter(request, response); 			// 向下传递过滤器
	}

3、Servlet监听器可以监听到在特定时间发生的时间,并根据其作出相应的反应。与此相关的是Servlet和Jsp的8个Listener接口和6个Event类

注意事项:

Servlet实现的接口或继承的类都来自tomcat的包,将tomcat的lib文件夹下的jsp-api.jar和servlet-api.jar这两个包添加到classpath下(右击项目,选择Java Build Path>Libraries>Add External JARS,找到你计算机中的tomcat的安装路径,在common\lib文件夹下),就可以在servlet类中导入这个包了(import javax.servlet.*;)。

 

Servlet监听器和过滤器基本使用

实验一 使用listener或filter实现session的有效性的判断(例如用户名为null或session失效);修改监听器的代码,实现同一session下的用户名发生改变时,监听器可以对其...
  • qq_25965053
  • qq_25965053
  • 2017年05月06日 23:34
  • 764

servlet过滤器、监听器、struts2拦截器的区别

1.过滤器 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,只要你在web....
  • xyw591238
  • xyw591238
  • 2016年07月18日 16:59
  • 1296

servlet/过滤器/拦截器/监听器

一、概念:          1、servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中...
  • dengbixuan
  • dengbixuan
  • 2015年08月19日 03:23
  • 1077

Servlet中的过滤器(拦截器)Filter与监听器Listener的作用和区别

Servlet中的过滤器(拦截器)Filter与监听器Listener的作用和区别 0、创建: 加载顺序 监听器-->过滤器-->Servlet. 项目启动后,容器会首先创建声明的各种监听...
  • yansong_8686
  • yansong_8686
  • 2015年12月09日 00:08
  • 1032

servlet八大监听器

概述: Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理。 接口: 目前Servlet2.4和JSP2.0总共有8个监听器接口和6个Even...
  • u011120983
  • u011120983
  • 2016年01月06日 13:48
  • 1412

Spring Boot 监听器 过滤器 Servlet 实例

Listener Filter Servlet的执行顺序通常为: 监听器、过滤器、servlet @RestController中的主Servlet都是DispatcherServlet,其默认的...
  • jixuju
  • jixuju
  • 2016年08月08日 07:12
  • 2009

Servlet学习笔记(九):监听器Listener详解

(一)概述 1、Listener 用于监听 java web程序中的事件,例如创建、修改、删除Session、request、context等,并触发响应的事件。 2、 Listener 对应观察者模...
  • u012228718
  • u012228718
  • 2014年12月10日 13:04
  • 9893

Servlet 监听器实例

Servlet监听器实例
  • cjc211322
  • cjc211322
  • 2014年11月26日 10:14
  • 1232

Servlet3.0介绍~使用注解标注监听器(Listener)和过滤器(Filter)

Servlet3.0提供@WebListener注解将一个实现了特定监听器接口的类定义为监听器。 package me.gacl.web.listener; import javax.servlet...
  • zhengchao1991
  • zhengchao1991
  • 2016年09月29日 12:46
  • 2579

servlet监听器与事件

前言 Servlet中的八大Listener 在Servlet 2.4/JSP 2.0中,共有八个Listener接口,六个Event类别。  入门 Web监听器导图详解 Web监听器导...
  • B_qxzb
  • B_qxzb
  • 2015年08月10日 17:47
  • 1730
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Servlet、Servlet过滤器、Servlet监听器
举报原因:
原因补充:

(最多只允许输入30个字)