- 浏览: 14262 次
- 性别:
- 来自: 深圳
最近访客 更多访客>>
最新评论
-
Aether:
Here is include a jsp file!
Thi ...
JSP拾遗(五)——jsp文件包含指令
一个过滤器必须要实现javax.servlet.Filter,并在web.xml里面正确地配置。过滤器可以用来对客户端对资源(servlet或静态资源如html、图片、影音等)的请求、服务端对请求资源的响应进行分别过滤,或者同时过滤。
Filter接口定义了三个方法:
doFilter(ServletRequest request, ServletResponse response, FilterChain chain):处理过滤信息;
init(FilterConfig filterConfig):初始化filter。在web容器加载filter时执行。
destroy():销毁占用资源。在web容器销毁filter时执行。
以下情形是Filter的应用示例:
1、权限
2、日志及核查
3、图像转换
4、数据压缩
5、加密
6、语义解析
7、触发资源访问事件
8、XSL/T应用
9、 数据类型解析(Mime-type chain Filter)
下面举例说明Filter在语义解析方面的应用。在这个示例中,给出了一种伪静态化的实现方法。这里的伪静态化的含义就是,在客户端表现为静态化的页面链接,但服务端并没有对应的静态html页面,仍然是动态地从数据库读取数据。这需要在Filter里面对静态html资源的请求转化为对servlet或jsp的动态调用。
假设我们做一个小说网站。小说的内容通过后台编辑来发布。一篇小说包括基本信息和章节信息来组成,它们之间是一对多的关系。小说的基本信息用小说名称来唯一标识,章节名称用数字1、2、3等来标识,我们通过传入小说名称和章节号到viewBook.jsp来显示小说的章节内容,在访问地址会是这样的格式: http://127.0.0.1/books/viewBook.jsp?name=guichuideng&article=1
但这种格式对应客户端来说是没有意义的,你可能需要提供一个更友好的访问地址如:
http://127.0.0.1/books/guichuiden/1.html
我们通过BookFilter来实现伪静态化的过程。
在web.xml里面配置:
Java代码:<filter>
<filter-name>BookFilter</filter-name>
<filter-class>com.hx.servlet.BookFilter</filter-class>
<init-param>
<param-name>BOOK_URI</param-name>
<param-value>books/</param-value>
</init-param>
<init-param>
<param-name>BOOK_SERVLET</param-name>
<param-value>/books/viewBook.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>BookFilter</filter-name>
<url-pattern>/books/*</url-pattern>
</filter-mapping>
package com.hx.servlet; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class BookFilter implements Filter { /** 小说放置目录 */ private static String bookURI = ""; /** 小说查看Servlet */ private static String bookServlet = ""; public void init(FilterConfig filterConfig) throws ServletException { bookURI = filterConfig.getInitParameter("BOOK_URI"); bookServlet = filterConfig.getInitParameter("BOOK_SERVLET"); } public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; String contextPath = request.getContextPath(); String uri = request.getRequestURI(); String resource = uri.substring(contextPath.length() + 1, uri.length()); resource = resource.substring(bookURI.length()); String[] tmp = resource.split("/"); if (tmp.length != 2 || tmp[1].indexOf(".htm") <= 0) { filterChain.doFilter(servletRequest, servletResponse); } else { String bookName = tmp[0]; String article = tmp[1].substring(0, tmp[1].indexOf(".htm")); request.setAttribute("name", bookName); request.setAttribute("article", article); //分发请求 //bookServlet里面根据request.getAttribute("name")和request.getAttribute("article") //分别获取小说名和章节编号 request.getRequestDispatcher(bookServlet).forward(request, response); } } public void destroy() { } }
发表评论
-
Hadoop从零开始(一)——环境准备
2012-07-12 23:17 1510一、Linux虚拟机安装 Hadoop要运行在Uni ... -
JSP拾遗(十四)——单点登录
2009-08-03 09:58 0todo -
JSP拾遗(十三)——文件上传
2009-08-01 19:53 0TODO -
JSP拾遗(十二)——分页查询
2009-08-01 19:52 0TODO -
JSP拾遗(十一)——注册验证
2009-08-01 19:52 0TODO -
JSP拾遗(十)——权限控制
2009-08-01 19:51 0TODO -
JSP拾遗(九)——中文乱码
2009-08-01 19:48 0TODO -
JSP拾遗(八)——Listener
2009-08-01 19:44 2051Javax.servlet中定义了三类监听器:ServletC ... -
JSP拾遗(六)——Servlet
2009-08-01 18:42 960在典型的J2EE中,我们的应用是通过应用服务器(如TOMCAT ... -
JSP拾遗(五)——jsp文件包含指令
2009-07-12 19:36 2195<%@include file=”fileName” ... -
JSP拾遗(四)——jsp页面标签
2009-07-10 22:41 1905第二节中,我们通过JSP编译成的java源文件对比出了 ... -
JSP拾遗(三)——jsp内置对象
2009-07-08 22:40 1230在看本章介绍的jsp ... -
JSP拾遗(二)——从jsp到servlet
2009-06-16 22:08 1798无代码无真相。这里我们来看看,一个简单的jsp页面, ... -
JSP拾遗(一)——初识JSP
2009-06-16 21:53 1173我的java编程学习,即是从jsp开始。 什么是jsp ...
相关推荐
【标题】"jsp网络编程——源文件(06——09)" 提供的是一系列关于JSP(Java Server Pages)网络编程的学习资料,主要涵盖了第六章至第九章的内容。这些章节通常会深入讲解JSP的核心概念和技术,帮助开发者更好地...
《jsp程序设计——图灵奖》是一本专为学习Java Server Pages(JSP)技术而编写的书籍,尤其适合编程初学者。这本书以其深入浅出的讲解方式,为读者揭示了JSP编程的核心概念和实战技巧,使得学习过程更为轻松易懂。...
"JSP网络编程——多媒体(1——3)"这一主题,显然关注的是如何利用JSP技术处理和展示多媒体内容,如图像、音频、视频等。下面我们将深入探讨这个主题,了解相关知识点。 1. **JSP基本概念**: JSP是由Sun ...
jsp毕业设计——jsp商品进销存系统.zip
jsp网络编程——多媒体(chap02) 实用
在本教程的"jsp网络编程——源文件(01——05)"中,我们将逐步学习JSP的基本概念、语法结构以及常用功能。 **章节概览** 1. **chap01:JSP基础** - JSP的起源与发展 - JSP与HTML、Servlet的关系 - JSP基本结构...
【标题】"jsp网络编程——源文件(12——13)"主要涵盖了JSP(Java Server Pages)技术在网络编程中的应用,这部分内容通常包括了第十二章和第十三章的知识点。JSP是Java平台上的动态网页技术,它允许开发者在HTML或...
### JSP核心技术——JSP引擎内幕 #### 一、JSP引擎的工作原理 JSP(Java Server Pages)是一种基于Java的服务器端脚本技术,它允许开发者将动态内容嵌入到HTML网页中。JSP的核心功能是通过JSP引擎来实现的。JSP...
【jsp开发案例——租房系统jsp列子】 在IT行业中,JavaServer Pages(JSP)是一种广泛使用的服务器端脚本语言,用于动态网页开发。本案例是基于JSP技术开发的一个租房系统,它涵盖了用户登录、房屋信息查询以及会员...
jsp课程设计——新闻发布系统
**JSP程序设计——交友网站** 本项目是一个基于JSP技术构建的交友网站,它源自于张跃平的JSP程序设计课程中的实例,并经过个人的深入修改和扩展,增加了更多的功能,使得整个系统更加完善且可以直接运行。下面将...
【jsp小游戏——猜数字相加大小】是一款基于JavaServer Pages(JSP)技术开发的简单游戏,旨在帮助用户更好地理解和掌握JSP的基本用法。在这个游戏中,系统会随机生成两个数字,玩家需要猜测这两个数字相加的结果是...
【标题】"jsp网络编程——源文件(10——11)"主要涵盖了JSP(Java Server Pages)技术在网络编程中的应用,这是Java Web开发的重要组成部分。这两个章节可能包括了第10章和第11章的学习内容,涉及到JSP的基础语法、...
jsp网络编程——多媒体教程 实用 希望对大家有用
jsp网络编程——多媒体(chap04) 实用,适合初学
【标题】"用JSP写的——企业人力资源系统"是一个基于Java服务器页面(JSP)技术构建的企业级应用,主要用于管理企业内部的人力资源信息。这个系统涵盖了人力资源管理的核心功能,如员工信息管理、招聘管理、培训发展...
在“jsp网络编程——多媒体文件(7)”这个主题中,我们将深入探讨如何在Java Server Pages(JSP)中处理多媒体文件,这对于任何想要构建动态、交互式网站的开发者来说都是至关重要的。JSP是一种服务器端脚本语言,...
【标题】"jsp毕业设计——jsp报名系统"指的是一个基于JSP技术的毕业设计项目,主要功能是实现一个在线报名系统。这样的系统通常用于教育、活动报名等场景,让用户能够方便快捷地完成报名流程。 【描述】"jsp毕业...
【jsp动态网站——电子书店】项目是一个基于Java技术的Web应用程序,主要利用Eclipse作为集成开发环境,Tomcat作为服务器,以及Access作为数据库来构建一个完整的在线书店系统。这个项目不仅提供了基本的书籍展示、...
【JSP毕业设计——jsp毕业选题系统】是一个基于Java Server Pages(JSP)技术的毕业设计项目,旨在帮助学生在完成学业时选择并管理他们的毕业课题。这个项目的核心是利用JSP和Java来实现一个在线选题系统,提供用户...