- 浏览: 403814 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
holleyangyanges:
name327 写道LZ说句打击你的话, 首先不说Https的 ...
使用httpclient4登录百度 -
holleyangyanges:
,没有登陆成功啊!
使用httpclient4登录百度 -
shenjichao2009:
...
Spring AOP原理解析 -
wuke0210:
[color=red][/color]
CKEditor3.0在asp.net环境下上传文件的配置,集成CKFinder -
wuke0210:
CKEditor3.0在asp.net环境下上传文件的配置,集成CKFinder
为公司内部开发了1个简单的MVC框架,框架中需要向所有JSP页面的<head>中插入2条引用JS的代码,实现如下:
主要是继承HttpServletResponseWrapper写1个类(PageResponseWrapper),代码:
<!-- <br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--> 1
public
class
PageResponseWrapper
extends
HttpServletResponseWrapper {
2 private Buffer buffer;
3 private HttpServletResponse originalResponse;
4
5 public PageResponseWrapper( final HttpServletResponse response){
6 super (response);
7 this .originalResponse = response;
8 buffer = new Buffer();
9 }
10
11 @Override
12 public PrintWriter getWriter() throws IOException {
13 return buffer.getWriter();
14 }
15
16 public CharArrayWriter getContent(){
17 return buffer.getBufferedWriter();
18 }
19
20 public void close() throws IOException {
21 buffer.getWriter().close();
22 }
23
24 public void finalize() throws Throwable {
25 super .finalize();
26 buffer.getWriter().close();
27 }
28
29 /**
30 * 获取原始的response
31 * @return the originalResponse
32 */
33 public HttpServletResponse getOriginalResponse() {
34 return originalResponse;
35 }
36 }
2 private Buffer buffer;
3 private HttpServletResponse originalResponse;
4
5 public PageResponseWrapper( final HttpServletResponse response){
6 super (response);
7 this .originalResponse = response;
8 buffer = new Buffer();
9 }
10
11 @Override
12 public PrintWriter getWriter() throws IOException {
13 return buffer.getWriter();
14 }
15
16 public CharArrayWriter getContent(){
17 return buffer.getBufferedWriter();
18 }
19
20 public void close() throws IOException {
21 buffer.getWriter().close();
22 }
23
24 public void finalize() throws Throwable {
25 super .finalize();
26 buffer.getWriter().close();
27 }
28
29 /**
30 * 获取原始的response
31 * @return the originalResponse
32 */
33 public HttpServletResponse getOriginalResponse() {
34 return originalResponse;
35 }
36 }
Buffer类:
<!-- <br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--> 1
public
class
Buffer {
2
3 private CharArrayWriter bufferedWriter;
4 private PrintWriter exposedWriter;
5
6 public char [] getContents() throws IOException {
7 // bufferedWriter 表示请求的页面的html
8 if (getBufferedWriter() != null ) {
9 return getBufferedWriter().toCharArray();
10 }
11 return null ;
12 }
public PrintWriter getWriter() {
16 if (getBufferedWriter() == null ) {
17 bufferedWriter = new CharArrayWriter();
18 exposedWriter = new PrintWriter(getBufferedWriter());
19 }
20 return exposedWriter;
21 }
22 /**
23 * @return the bufferedWriter
24 */
25 public CharArrayWriter getBufferedWriter() {
26 return bufferedWriter;
27 }
28 }
2
3 private CharArrayWriter bufferedWriter;
4 private PrintWriter exposedWriter;
5
6 public char [] getContents() throws IOException {
7 // bufferedWriter 表示请求的页面的html
8 if (getBufferedWriter() != null ) {
9 return getBufferedWriter().toCharArray();
10 }
11 return null ;
12 }
public PrintWriter getWriter() {
16 if (getBufferedWriter() == null ) {
17 bufferedWriter = new CharArrayWriter();
18 exposedWriter = new PrintWriter(getBufferedWriter());
19 }
20 return exposedWriter;
21 }
22 /**
23 * @return the bufferedWriter
24 */
25 public CharArrayWriter getBufferedWriter() {
26 return bufferedWriter;
27 }
28 }
过滤器的代码:
<!-- <br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--> 1
public
void
doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws
IOException, ServletException {
2 HttpServletRequest hRequest = (HttpServletRequest)request;
3 HttpServletResponse hResponse = (HttpServletResponse)response;
4 PageResponseWrapper prw = new PageResponseWrapper(hResponse);
5
6 chain.doFilter(request, prw);
7 // 得到视图html代码
8 String tmpHtml = prw.getContent();
9 // 最终输出的html代码
10 String retHtml = "" ;
11 // 查找<head>
12 int index = tmpHtml.toLowerCase().indexOf( " <head> " );
13 if (index != - 1 ){
14 index += 6 ;
15 retHtml = tmp.substring( 0 , index) + " <script src='http://./..js'></script> " + tmp.substring(index);
16 } else {
17 retHtml = tmpHtml;
18 }
19 // 输出(注意,这里只能使用hResponse,不能使用prwgetWriter())
20 PrintWriter writer = hResponse.getWriter();
21 writer.write(retHtml);
22 writer.close();
23 writer.close();
24 writer.flush();
25 }
2 HttpServletRequest hRequest = (HttpServletRequest)request;
3 HttpServletResponse hResponse = (HttpServletResponse)response;
4 PageResponseWrapper prw = new PageResponseWrapper(hResponse);
5
6 chain.doFilter(request, prw);
7 // 得到视图html代码
8 String tmpHtml = prw.getContent();
9 // 最终输出的html代码
10 String retHtml = "" ;
11 // 查找<head>
12 int index = tmpHtml.toLowerCase().indexOf( " <head> " );
13 if (index != - 1 ){
14 index += 6 ;
15 retHtml = tmp.substring( 0 , index) + " <script src='http://./..js'></script> " + tmp.substring(index);
16 } else {
17 retHtml = tmpHtml;
18 }
19 // 输出(注意,这里只能使用hResponse,不能使用prwgetWriter())
20 PrintWriter writer = hResponse.getWriter();
21 writer.write(retHtml);
22 writer.close();
23 writer.close();
24 writer.flush();
25 }
发表评论
-
Eclipse很卡的解决方法
2016-04-13 15:03 566配置eclipse.ini文件,可以根据内存大小视情况而定 ... -
shell 跟java 相互调用和获取结果
2011-11-08 15:16 3040被调用的shell a.sh #!/bin/bash e ... -
关于日文编码(Shift_JIS Windows-31 EUC-JP)
2011-03-02 09:50 156431、常用编码 日语的文字编码主要是Shift_JIS、EUC ... -
ITEXT 使用小结
2010-07-21 15:13 1618最近项目中使用到IText5,其实跟之前版本并无特殊差别, ... -
Java 1.5 小手册 Cheat Sheet
2009-12-26 19:07 1078Create a new object instance S ... -
SpringSide 3.2.1 寒冬日志版发布
2009-12-24 22:54 1224最近国内的开源项目非常生猛,与Play!Framework有 ... -
使用HttpComponents获取整个页面的内容
2009-12-14 11:52 2724commons-httpclient已经不再更新了, htt ... -
如何优化JAVA程序开发,提高JAVA性能
2009-12-01 13:35 1028通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分 ... -
weblogic11集群之建立节点信任
2009-11-24 14:56 21701、管理server和被管server的domain名字必须一 ... -
体验一下JBOSSESB The Hello World QuickStart
2009-11-16 17:26 16691)跑到 http://www.jboss.org/jboss ... -
GlassFish替换Tomcat
2009-09-29 09:34 12111. GlassFish替换Tomcat背景 ... -
禁止apache和tomcat列出目录清单的方法
2009-09-28 16:49 2222如果用户uri中没有指定文件名,apache和tomcat在默 ... -
关于apache和tomcat的连接器
2009-09-28 16:28 1480mod_jk2确实很烂。 几天的mod_jk2的云山雾罩之后 ... -
Linux下Tomcat与Apache Web服务器的整合
2009-09-28 16:21 10291、引言 基 ... -
有关使用和部署 Java 持久性体系结构 (JPA) 的案例研究
2009-04-24 17:19 10922006 年夏天发布的 EJB 3 ... -
Spring AOP原理解析
2009-04-24 15:07 10282AOP概念: 实现AOP有两种 ... -
spring aop的原理
2009-04-24 15:06 2807AOP概念 让我们从定义一些重要的AOP概念开始。 — 方 ... -
struts2的struts.properties配置文件详解
2009-04-23 16:34 975struts.action.extension ... -
详解JRE和JDK的区别
2009-02-04 11:07 1434JDK JDK 是整个Java的核心,包括了Java运行环境 ... -
jdk和jre的区别
2009-02-04 11:06 1964对于java初学者来说,往往不懂区分jdk和jre的区别,实际 ...
相关推荐
在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而过滤器(Filter)是Servlet API的一部分,用于对HTTP请求和响应进行处理。本项目"jsp登录验证(含过滤器)"主要关注如何利用过滤器实现...
在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而过滤器(Filter)是Servlet规范的一部分,允许我们在请求处理前后插入逻辑,以实现诸如数据验证、字符编码转换、日志记录等功能。...
1. **JSP(JavaServer Pages)**:JSP是一种动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码,从而实现服务器端的业务逻辑处理。JSP文件会被服务器转换成Servlet,然后由Servlet引擎执行。在"登陆注册...
**JSP(Java Server Pages)** 是一种动态网页技术,它允许开发者将Java代码嵌入到HTML页面中,以便在服务器端处理数据并生成动态内容。这个"JSP后台管理样例代码"是专为初学者设计的一个实践项目,旨在帮助他们理解和...
JSP(JavaServer Pages)是Java平台上的一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,实现服务器端的动态内容生成。这份资源包可能包含了多个JSP开发中的关键组件和示例,旨在帮助初学者和有经验的...
在《JSP设计(第三版)》英文版中,读者可以期待全面覆盖以上所有知识点,并可能涉及更高级的主题,如自定义标签、过滤器、监听器,以及现代Web开发中的最佳实践。通过这本书的学习,开发者能够熟练掌握JSP技术,...
在JSP中,开发者可以将HTML代码与Java代码结合在一起,使得网页具有动态生成的能力。**HTML**(HyperText Markup Language)负责页面的结构,而**Java**代码则用于处理逻辑和数据。JSP的核心概念包括**JSP指令**、**...
在JSP中,可以创建一个表单供用户输入信息,然后通过Servlet或JSP页面处理提交的数据。关键组件包括: - 表单设计:使用HTML元素如`<form>`,`<input>`,`<textarea>`等创建用户界面。 - 数据提交:使用HTTP请求...
总结来说,Java Servlet过滤器是Web应用中的重要工具,它们允许我们在请求处理流程中插入自定义逻辑,比如处理编码、进行安全检查或优化性能。理解并熟练配置过滤器对于提升Web应用的质量和性能至关重要。在实践中,...
在这个名为"ch04"的压缩包中,可能包含的是一个JSP项目的第四章内容,可能涉及到更深入的JSP特性,如自定义标签、过滤器、监听器、异常处理等。对于初学者,可以通过分析和运行这些代码来了解和掌握JSP的实际运用,...
它们通常提供可视化的界面,让用户可以通过拖放、点击按钮等方式来插入和编辑HTML元素,而无需手动编写HTML代码。这大大降低了网页制作的门槛,尤其是对不熟悉HTML语法的人来说。 4. **在线HTML编辑器**:JSP网页...
HTML在线编辑器是一种工具,允许用户在网页上直接编辑HTML代码,实时预览并保存更改。在本范例中,我们将探讨如何将这样的编辑器无缝地嵌入到JSP(JavaServer Pages)环境中,以提供用户友好的界面,用于创建和修改...
- `web.xml`部署描述符定义Web应用的配置,包括Servlet映射、过滤器、监听器等。 7. **JDBC与数据库交互** - JSP项目通常需要与数据库交互,JDBC提供了一套标准接口,用于连接数据库、执行SQL语句、处理结果集。 ...
18. **学习最佳实践**:注意代码中的设计模式、异常处理、性能优化等方面,提升编程水平。 这个"JSP设计第三版(源代码)"压缩包为开发者提供了动手实践的机会,通过深入研究源代码,不仅可以巩固JSP的基础知识,还能...
本实例深入探讨了JSP中的几个关键特性,包括初始化参数的获取、过滤器、监听器以及JSP的组成部分。 ### **初始化参数的获取** 在JSP应用中,我们经常需要设置一些全局的配置参数。这些参数可以通过`web.xml`部署...
JSP页面本质上是HTML,但通过这些元素,我们可以插入Java代码,实现动态内容生成。 **EL(Expression Language)**是JSP 2.0引入的一种轻量级表达式语言,用于获取和设置JavaBean的属性。它简化了页面中的数据绑定...
10. **JSP的部署与配置**:通过web.xml文件进行部署描述,配置Servlet映射、session配置、过滤器等。 在实际项目中,我们通常会结合使用Servlet、JSP、JavaBeans和框架(如Spring MVC)来构建Web应用。通过学习和...
"留言板jsp代码"是对整个项目源码的概括,这些代码会包含处理用户输入、存储留言、显示留言等功能的JSP页面和相关的Java后台处理类。 【压缩包子文件的文件名称列表】"JSP 文本留言簿"可能表示压缩包内包含了实现...
5. **EL(Expression Language)与JSTL(JavaServer Pages Standard Tag Library)**:EL是一种简洁的表达式语言,常用于在JSP页面中获取和设置属性值,简化页面中的Java代码。JSTL则是一套标准标签库,提供了各种...
这个"JSP案例开发集锦源代码"中很可能包含了这些概念的实例,学习者可以通过分析和运行这些代码,进一步了解JSP如何与数据库交互、如何实现用户认证、如何使用过滤器和监听器等高级主题。每个案例都是一个实战的学习...