代码结构如下:
$:~/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是Java Web开发中的两个重要概念,它们在构建动态Web应用程序中起着关键作用。Servlet是一种Java类,用于扩展服务器的功能,处理客户端(如浏览器)的请求,并向其发送响应。而Filter则是在Servlet...
本教程可能包含PDF文档,如阅读器下载.htm和pdg格式的章节文件,这些文件可能提供了详细的讲解和示例代码,帮助读者深入理解Java Servlet网络编程。 总之,Java Servlet 是企业级Web开发的重要技术,通过理解和掌握...
JavaServlet帮助文档中的CHM文件是一个编译过的HTML帮助文档,它包含详细的API参考、教程、示例代码和常见问题解答,是开发者学习和查阅Servlet技术的重要资源。利用其内置的搜索功能,开发者可以快速找到所需的信息...
在Java Web开发中,Servlet和Filter是两个非常重要的概念。Servlet是Java提供的一个用于扩展服务器功能的接口,而Filter则是一种动态web资源过滤机制,它允许我们在数据处理流程中进行预处理和后处理,比如登录验证...
Java Servlet是Java Web开发中的核心组件之一,它主要用于构建动态Web应用程序。..."深入Java Servlet网络编程"这本书或资料可能包含这些实践案例和详细讲解,帮助读者深入理解和掌握Java Servlet在网络编程中的应用。
Java Servlet API 2.1文档详细解释了这些概念和接口的使用,对于理解Web服务器端编程至关重要。开发者可以通过阅读这份中文文档,深入理解Servlet的工作原理,并利用其提供的功能构建高效、可靠的Web应用程序。同时...
9. **JSP和EL**:虽然JSP(JavaServer Pages)不是Servlet API的一部分,但它们通常与Servlet一起使用,提供视图层的功能。EL(Expression Language)是JSP 2.0引入的,用于简化页面表达式。 10. **部署描述符**:`...
Java Servlet过滤器是Java Web开发中的一个重要组件,它在Servlet规范中被定义为一个拦截请求和响应的机制。过滤器可以被配置来处理特定的URL模式,以在请求到达目标Servlet或JSP之前以及响应返回给客户端之前进行...
10. **安全性**:讲解如何使用Servlet来实现认证和授权,以及与Java EE安全模型的集成。 11. **最佳实践和示例**:文档可能会提供代码示例和最佳实践,帮助开发者避免常见错误,提高代码质量和可维护性。 尽管这个...
1.6 与 Java Servlet 规范 2.5 版本间的兼容性 ..............................................................................................14 1.6.1 监听器(Listener)顺序 .................................
### Servlet与JSP与Filter的使用详解 #### 一、Servlet与JSP的基本概念 Servlet是一种Java技术,用于创建动态Web应用程序。它本质上是一个Java类,由Web服务器或应用服务器加载,以响应客户端请求。Servlet可以...
Java Servlet Filter实现全站动态转静态是一种常见的优化技术,它能提高网站的访问速度和搜索引擎友好性。在本文中,我们将深入探讨这个主题,并通过实际的代码示例来理解其工作原理。 首先,Servlet Filter是Java ...
Java Servlet过滤器是Java Web开发中的一个重要组件,它在...总的来说,Java Servlet过滤器是构建强大和灵活的Web应用程序不可或缺的工具,通过合理的配置和实现,我们可以实现多种功能,提升应用的安全性和效率。
在这个"JavaServlet帮助文档"中,你应该能找到关于Servlet API的详细信息,包括如何创建、配置和使用Servlet的指导。 Servlet生命周期主要包括三个阶段:加载与实例化、初始化和服务、销毁。在加载与实例化阶段,...
总结来说,Servlet、Filter和Listener是Java Web开发中不可或缺的部分,它们共同协作以提供高效、安全和可扩展的Web服务。理解并熟练运用这三个组件,对于任何Java Web开发者来说都是至关重要的技能。在实践中,...
"java-servlet-hello"例子是一个初学者常用的教程,旨在帮助理解Servlet的基本工作原理和如何在实际中运用。在这个例子中,我们将深入探讨Servlet的创建、配置和运行过程。 首先,Servlet是一个Java类,它继承自`...
总的来说,这个"Servlet小例子源码"涵盖了Java Web开发的基础知识,是学习和理解Servlet、Filter和Listener功能和用法的理想资源。通过深入研究和实践,初学者可以快速提升自己的Java Web开发技能。
在提供的“servlet-api.chm”文件中,很可能包含了完整的Servlet API文档,其中包括详细的接口和类说明、方法签名、示例代码等,可以帮助开发者快速理解和使用Servlet API。这个压缩包是学习和开发Java Web应用时不...
总的来说,Servlet之Filter是Java Web开发中的重要工具,它提供了一种灵活的方式来进行请求和响应的预处理和后处理,从而增强了Web应用程序的功能和安全性。通过深入学习和实践,开发者可以更好地利用Filter解决各种...
在Web开发领域,Java技术是不可或缺的一部分,其中JSP(JavaServer Pages)、Servlet和Filter是三个核心概念。本文将深入探讨这些技术,帮助开发者温故知新,理解它们的功能、工作原理以及如何在实际项目中应用。 #...