`

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

 

分享到:
评论

相关推荐

    简单的servlet+Filter的例子

    Servlet和Filter是Java Web开发中的两个重要概念,它们在构建动态Web应用程序中起着关键作用。Servlet是一种Java类,用于扩展服务器的功能,处理客户端(如浏览器)的请求,并向其发送响应。而Filter则是在Servlet...

    深入 Java Servlet 网络编程

    本教程可能包含PDF文档,如阅读器下载.htm和pdg格式的章节文件,这些文件可能提供了详细的讲解和示例代码,帮助读者深入理解Java Servlet网络编程。 总之,Java Servlet 是企业级Web开发的重要技术,通过理解和掌握...

    JavaServlet帮助文档

    JavaServlet帮助文档中的CHM文件是一个编译过的HTML帮助文档,它包含详细的API参考、教程、示例代码和常见问题解答,是开发者学习和查阅Servlet技术的重要资源。利用其内置的搜索功能,开发者可以快速找到所需的信息...

    servlet之Filter使用范例--登陆验证

    在Java Web开发中,Servlet和Filter是两个非常重要的概念。Servlet是Java提供的一个用于扩展服务器功能的接口,而Filter则是一种动态web资源过滤机制,它允许我们在数据处理流程中进行预处理和后处理,比如登录验证...

    深入Java Servlet网络编程

    Java Servlet是Java Web开发中的核心组件之一,它主要用于构建动态Web应用程序。..."深入Java Servlet网络编程"这本书或资料可能包含这些实践案例和详细讲解,帮助读者深入理解和掌握Java Servlet在网络编程中的应用。

    Java Servlet API2.1中文文档

    Java Servlet API 2.1文档详细解释了这些概念和接口的使用,对于理解Web服务器端编程至关重要。开发者可以通过阅读这份中文文档,深入理解Servlet的工作原理,并利用其提供的功能构建高效、可靠的Web应用程序。同时...

    Java+Servlet+Api

    9. **JSP和EL**:虽然JSP(JavaServer Pages)不是Servlet API的一部分,但它们通常与Servlet一起使用,提供视图层的功能。EL(Expression Language)是JSP 2.0引入的,用于简化页面表达式。 10. **部署描述符**:`...

    java servlet 过滤器

    Java Servlet过滤器是Java Web开发中的一个重要组件,它在Servlet规范中被定义为一个拦截请求和响应的机制。过滤器可以被配置来处理特定的URL模式,以在请求到达目标Servlet或JSP之前以及响应返回给客户端之前进行...

    java servlet帮助文档

    10. **安全性**:讲解如何使用Servlet来实现认证和授权,以及与Java EE安全模型的集成。 11. **最佳实践和示例**:文档可能会提供代码示例和最佳实践,帮助开发者避免常见错误,提高代码质量和可维护性。 尽管这个...

    Java™ Servlet 规范.

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

    Servlet与jsp与Filter的使用

    ### Servlet与JSP与Filter的使用详解 #### 一、Servlet与JSP的基本概念 Servlet是一种Java技术,用于创建动态Web应用程序。它本质上是一个Java类,由Web服务器或应用服务器加载,以响应客户端请求。Servlet可以...

    java servletfilter实现全站动转静

    Java Servlet Filter实现全站动态转静态是一种常见的优化技术,它能提高网站的访问速度和搜索引擎友好性。在本文中,我们将深入探讨这个主题,并通过实际的代码示例来理解其工作原理。 首先,Servlet Filter是Java ...

    javaServlet过滤器

    Java Servlet过滤器是Java Web开发中的一个重要组件,它在...总的来说,Java Servlet过滤器是构建强大和灵活的Web应用程序不可或缺的工具,通过合理的配置和实现,我们可以实现多种功能,提升应用的安全性和效率。

    javaservlet帮助文档

    在这个"JavaServlet帮助文档"中,你应该能找到关于Servlet API的详细信息,包括如何创建、配置和使用Servlet的指导。 Servlet生命周期主要包括三个阶段:加载与实例化、初始化和服务、销毁。在加载与实例化阶段,...

    servlet+filter+lisenter 例子

    总结来说,Servlet、Filter和Listener是Java Web开发中不可或缺的部分,它们共同协作以提供高效、安全和可扩展的Web服务。理解并熟练运用这三个组件,对于任何Java Web开发者来说都是至关重要的技能。在实践中,...

    java-servlethello例子

    "java-servlet-hello"例子是一个初学者常用的教程,旨在帮助理解Servlet的基本工作原理和如何在实际中运用。在这个例子中,我们将深入探讨Servlet的创建、配置和运行过程。 首先,Servlet是一个Java类,它继承自`...

    Servlet小例子源码

    总的来说,这个"Servlet小例子源码"涵盖了Java Web开发的基础知识,是学习和理解Servlet、Filter和Listener功能和用法的理想资源。通过深入研究和实践,初学者可以快速提升自己的Java Web开发技能。

    servlet-api.rar_java servlet_servlet api_servlet api hmtl_servle

    在提供的“servlet-api.chm”文件中,很可能包含了完整的Servlet API文档,其中包括详细的接口和类说明、方法签名、示例代码等,可以帮助开发者快速理解和使用Servlet API。这个压缩包是学习和开发Java Web应用时不...

    Servlet之Filter深入讲解及实例研究

    总的来说,Servlet之Filter是Java Web开发中的重要工具,它提供了一种灵活的方式来进行请求和响应的预处理和后处理,从而增强了Web应用程序的功能和安全性。通过深入学习和实践,开发者可以更好地利用Filter解决各种...

    jsp,servlet,filter温故知新

    在Web开发领域,Java技术是不可或缺的一部分,其中JSP(JavaServer Pages)、Servlet和Filter是三个核心概念。本文将深入探讨这些技术,帮助开发者温故知新,理解它们的功能、工作原理以及如何在实际项目中应用。 #...

Global site tag (gtag.js) - Google Analytics