`

java的Servlet和Filter使用示例

阅读更多

代码结构如下:

$:~/hotel.com/ROOT #
index.jsp
WEB-INF
	classes
		hello
			HelloFilter.class  HelloServlet.class
	src
		hello
			HelloFilter.java  HelloServlet.java
	web.xml

其中web.xml配置

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	version="2.5">
	<!--   Please see the "Using Jikes" section of the Jasper-HowTo           -->
	<filter>
		<filter-name>helloFilter</filter-name>
		<filter-class>hello.HelloFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>helloFilter</filter-name>
		<url-pattern>/hello</url-pattern>
	</filter-mapping>

	<servlet>
		<servlet-name>HelloServlet</servlet-name>
		<servlet-class>hello.HelloServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>HelloServlet</servlet-name>
		<url-pattern>/hello</url-pattern>
	</servlet-mapping>
</web-app>

HelloServlet.java代码如下

package hello;
import java.util.Vector;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletConfig;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {
	public void init(ServletConfig conf) throws ServletException {
		super.init(conf);
	}
	public void doGet (HttpServletRequest req, HttpServletResponse res)
		throws ServletException, IOException {
		doPost(req, res);
	}
	public void doPost (HttpServletRequest req, HttpServletResponse res)
		throws ServletException, IOException {
		String out = "Hello You";
		PrintWriter writer = res.getWriter();
		writer.write("<html><head></head><body>");
		writer.write(out);
		writer.write("</body></html>");
	} // doPost
}

HelloFilter.java代码如下

package hello;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

public class HelloFilter implements Filter {

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		System.out.println("Filter 初始化");
	}

	@Override
	public void doFilter(ServletRequest req, ServletResponse res,
			FilterChain chain) throws IOException, ServletException {
		HttpServletRequest request = (HttpServletRequest)req;
		System.out.println("拦截 URI="+request.getRequestURI());
		PrintWriter writer = res.getWriter();
		writer.write("<!-- BEGIN -->");
		chain.doFilter(req, res);
		writer.write("<!-- END -->");
	}

	@Override
	public void destroy() {
		System.out.println("Filter 结束");
	}
}

编译运行效果如下

javac -classpath .:/root/apache/apache-tomcat-6.0.37/lib/servlet-api.jar:/usr/share/java/servlet.jar *.java
/usr/share/tomcat6/bin/catalina.sh start

curl 127.0.0.1:8080/hello
<!-- BEGIN --><html><head></head><body>Hello You</body></html><!-- END -->
tail -f /var/log/tomcat6/catalina.out
拦截 URI=/hello

 

分享到:
评论

相关推荐

    Java™ Servlet 规范.

    1.6 与 Java Servlet 规范 2.5 版本间的兼容性 ..............................................................................................14 1.6.1 监听器(Listener)顺序 .................................

    Servlet过滤器小实例

    java中有个Filter类专门从事这类工作,下面以一个简单的实例进行演示: 实例说明:假设有一个web应用软件,如果是正常途径登录,我们会在其session中放入一个“user”对象进行标记,在随后的会话中我们都用过滤器...

    java servlet过滤器使用示例

    Servlet过滤器简介 Servlet过滤器实际上就是一个标准的java类,这个类通过实现Filter接口获得过滤器的功能。它在jsp容器启动的时候通过web.xml配置文件被系统加载。Servlet过滤器在接收到用户请求的时候被调用,当...

    Listener、Filter、Servlet与Java Web项目初始化项目例子 源代码

    通常JavaWeb项目启动时我们需要... 下面代码是模拟初始化的一个示例,可以在控制台看到程序的输出,和Listener、Filter、Servlet的启动先后顺序,强烈建议跟我一样喜欢动手的Coder操作一下,废话不多说,直接上代码了。

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    How Tomcat Works: A Guide to Developing Your Own Java Servlet Container

    3.3.3.7 静态资源处理器和servlet处理器 17 第4章 tomcat的默认连接器 18 4.1 简介 18 4.2 HTTP1.1的新特性 18 4.2.1 持久化连接 18 4.2.2 编码 18 4.2.3 状态码100的使用 19 4.3 Connector接口 19 4.4 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    Servlet3.1规范(最终版) PDF

    14 与 Java Servlet 规范 2.5 版本间的兼容性 .............................................................................................. 14 1.6.1 监听器(Listener)顺序 .................................

    ContentSecurityPolicyFilter:一个可配置的Java Servlet过滤器,将“ Content-Security-Policy”标头添加到ServletResponse

    内容安全策略过滤器(Java) 将“ Content-Security-Policy”或“ Content-Security-Policy-Report-Only”标头添加到响应中。 另请参阅: 通常,您只需要有限的数目,也不需要任何init参数。 如果未定义init参数...

    servlet3-filter-async-test

    因此,流行的 Jetty 和 Tomcat 容器在异步处理方面有一些“粗糙的边缘”,尤其是与过滤器结合使用时。 Tomcat 码头 入门 调整build.gradle选择容器版本,在 Tomcat 和 Jetty 之间选择,然后gradle run 。 ...

    DAO实训例子

    个人自己学习所做的DAO例子,希望对他人起到帮助。关键地方配有注释。

    jsp filter 过滤器功能与简单用法示例

    本文实例讲述了jsp filter 过滤器功能与简单用法。分享给大家供大家参考,具体如下: 过滤器的作用是什么?...过滤器的实现要实现 java.servlet.Filter 这个接口类 一个简易的filter 类示例 package demo; impor

    Java优化编程(第2版)

    7.2.4 filter servlet与listener servlet 小结 第8章 开发高性能的ejb应用 8.1 采用ejb技术的必要性 8.1.1 ejb技术的优势特性 8.1.2 ejb技术体系具有清晰的架构层次 8.1.3 ejb与传统bean相比的性能优势 8.2 ejb的...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...

    基于Servlet3.0+IBatis+BootStrip技术构建简单会议管理系统

    本课程针对有一定程序开发基础并有志于JAVA WEB开发的学员,理解MVC开发模式,能够熟练使用PowerDesigner 设计数据库,熟练使用mybatis进行开发,熟悉Servlet3.0的一些新特性,掌握bootstrap基本用法 课程大纲 ...

    java视频教程Day01 免费

    35. 使用Java WEB技术编写网页QQ J2EE 框架部分 36. Eclipse工具使用 37. Struts 38. Hibernate 39. Spring J2EE 高级部分 40. EJB 学完上述课程以后,和大家一起开发一个网上书店 先上传第一课,后续会...

    Java项目图书管理系统(前后端不分离 web入门).zip

    Web开发基础,tomcat、servlet、JSP、session、cookie、el、jstl、filter、ajax、json、jdbc、c3p0、DButils等。 这是没有进行前后端分离的项目(高耦合),用于了解java web开发的发展。

    JSP2.0技术手册pdf(带示例源码).zip

    JSP 2.0,重点介绍Java在展示层的两项重要技术:Java Servlet与JavaServer Pages。 它们是最重要的 Java 核心技术。对这两项技术的深入了解,将有助于您未来对于 JavaServer Faces(JSF)技术以及Java Web Services...

Global site tag (gtag.js) - Google Analytics