- 浏览: 380236 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
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 521配置eclipse.ini文件,可以根据内存大小视情况而定 ... -
shell 跟java 相互调用和获取结果
2011-11-08 15:16 2986被调用的shell a.sh #!/bin/bash e ... -
关于日文编码(Shift_JIS Windows-31 EUC-JP)
2011-03-02 09:50 152921、常用编码 日语的文字编码主要是Shift_JIS、EUC ... -
ITEXT 使用小结
2010-07-21 15:13 1547最近项目中使用到IText5,其实跟之前版本并无特殊差别, ... -
Java 1.5 小手册 Cheat Sheet
2009-12-26 19:07 1033Create a new object instance S ... -
SpringSide 3.2.1 寒冬日志版发布
2009-12-24 22:54 1174最近国内的开源项目非常生猛,与Play!Framework有 ... -
使用HttpComponents获取整个页面的内容
2009-12-14 11:52 2670commons-httpclient已经不再更新了, htt ... -
如何优化JAVA程序开发,提高JAVA性能
2009-12-01 13:35 982通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分 ... -
weblogic11集群之建立节点信任
2009-11-24 14:56 21301、管理server和被管server的domain名字必须一 ... -
体验一下JBOSSESB The Hello World QuickStart
2009-11-16 17:26 16361)跑到 http://www.jboss.org/jboss ... -
GlassFish替换Tomcat
2009-09-29 09:34 11621. GlassFish替换Tomcat背景 ... -
禁止apache和tomcat列出目录清单的方法
2009-09-28 16:49 2173如果用户uri中没有指定文件名,apache和tomcat在默 ... -
关于apache和tomcat的连接器
2009-09-28 16:28 1425mod_jk2确实很烂。 几天的mod_jk2的云山雾罩之后 ... -
Linux下Tomcat与Apache Web服务器的整合
2009-09-28 16:21 9831、引言 基 ... -
有关使用和部署 Java 持久性体系结构 (JPA) 的案例研究
2009-04-24 17:19 10292006 年夏天发布的 EJB 3 ... -
Spring AOP原理解析
2009-04-24 15:07 10226AOP概念: 实现AOP有两种 ... -
spring aop的原理
2009-04-24 15:06 2768AOP概念 让我们从定义一些重要的AOP概念开始。 — 方 ... -
struts2的struts.properties配置文件详解
2009-04-23 16:34 920struts.action.extension ... -
详解JRE和JDK的区别
2009-02-04 11:07 1388JDK JDK 是整个Java的核心,包括了Java运行环境 ... -
jdk和jre的区别
2009-02-04 11:06 1916对于java初学者来说,往往不懂区分jdk和jre的区别,实际 ...
相关推荐
16、修复了:编辑、引用帖子时HTML代码的显示错误 17、修复了:查看投票用户时逻辑计算错误的问题。 18、修复了:对联广告在分辨率高情况下不对称。 19、修复了:当发帖需要验证码或验证问答时,游客发帖可能提示...
16、修复了:编辑、引用帖子时HTML代码的显示错误 17、修复了:查看投票用户时逻辑计算错误的问题。 18、修复了:对联广告在分辨率高情况下不对称。 19、修复了:当发帖需要验证码或验证问答时,游客发帖可能提示...
2.8.3 在JSP页面中使用Include指令后,JSP不能编译 2.9 精彩回顾 第3章前人栽树后人乘凉 ——、JSP内置对象 3.1 本章学习任务 3.1.1 本章知识体系 3.1.2 实例开发任务 3.2 简化开发JSP内置对象概述 3.2.1 为什么...
7添加一个过滤器解决网页乱码问题 8给网站添加一个欢迎页面,吸引用户使用 备注: 1)项目中使用的技术: HTML, JavaScript, JSP, Servlet, JSTL, EL. Ajax。缺一不可 2)使用JDBC访问数据库,两种方式:基础代码,Dao...
本课程jsp部分介绍:Servlet底层,jsp的底层原理,jsp与servlet的区别,jsp页面如何插入java代码,jsp中的3个指令、7个动作,9个内置对象的使用,EL表达式,JSTL标签,如何自定义标签,MVC模式,jsp+servlet实战案例
16、修复了:编辑、引用帖子时HTML代码的显示错误 17、修复了:查看投票用户时逻辑计算错误的问题。 18、修复了:对联广告在分辨率高情况下不对称。 19、修复了:当发帖需要验证码或验证问答时,游客发帖可能提示...
本书内容丰富、技术全面、案例实用,而且所有的实例都以MyEclipse工程的形式组织,并按章节的顺序组织在附书光盘中,源代码工程都经过精心调试,可以直接导入MyEclipse中运行。 本书内容精练、重点突出、实例丰富,...
16、修复了:编辑、引用帖子时HTML代码的显示错误 17、修复了:查看投票用户时逻辑计算错误的问题。 18、修复了:对联广告在分辨率高情况下不对称。 19、修复了:当发帖需要验证码或验证问答时,游客发帖可能提示...
5.4 输出实用的HTML代码 182 5.5 窗口与对话框 186 5.6 对数据库操作的JavaBean 189 第6章 Servlet技术 211 6.1 Servlet基础 212 6.2 Servlet应用 223 第7章 过滤器与监听器技术 239 7.1 Servlet过滤器 240 7.2 监听...
5.4 输出实用的HTML代码 182 5.5 窗口与对话框 186 5.6 对数据库操作的JavaBean 189 第6章 Servlet技术 211 6.1 Servlet基础 212 6.2 Servlet应用 223 第7章 过滤器与监听器技术 239 7.1 Servlet过滤器 240 7.2 监听...
1、不能向富文本编辑器中粘贴内容 48 2、设置WCM timeout超时值 48 3、一般用户不能访问内容 49 4、页面导航不能分页 49 5、一些portal常见问题 49 6、Portal中调用PUMA SPI管理用户和组信息 51 7、WCM内存溢出的...
上面的代码中的逻辑表达式用括号括起来主要是因为里面有>符号,由于FreeMarker会将>符号当成标签的结束字符,可能导致程序出错,为了避免这种情况,我们应该在凡是出现这些符号的地方都使用括号. Pythons are ...
{1.11.2.3}插入排序}{40}{subsubsection.1.11.2.3} {1.11.3}递归调用}{41}{subsection.1.11.3} {1.12}Java API}{41}{section.1.12} {1.13}Linux命令}{41}{section.1.13} {1.13.1}基本查看、移动}{41}{...
System.out.printf() 可插入带 % 的输入类型,前两种只可以插入转义符, 不能插入 % 的数据或字符串 在 printf 里面,输出有5个部分 %[argument_index$][flags][width][.precision]conversion 以“%”开头,[第几个...