缓存静态页面的编码问题
2015-12-12 00:00
495 查看
在CMS系统中一个基本问题是对基于模板的动态页面结果进行缓存,如果模板采用jsp,常常使用response重定向截获输出结果。
常见的代码如下:
java 代码
WrapperResponse wp = new WrapperResponse(response);
request.getRequestDispatcher(tp).include(request, wp);
但是如果我的jsp中指定了字符编码呢,例如:
java 代码
<%@ page contentType="text/html;charset=utf-8"...
如何让生成的静态页面的编码与之一致呢?
查看jsp对应的servlet代码,找到与上述指令对应的一行
java 代码
response.setContentType("text/html;charset=utf-8");
于是猜想是否可以response.getContentType来获得编码指定呢
即: String ct = wp.getResponse().getContentType();
但是结果为null。
查javaDoc说明
链接
The
根据此说明上述jsp对应的servlet代码中
setContentType的语句被忽略了。
但是我的问题还是没有解决。
将
request.getRequestDispatcher(tp).include(request, wp);
改为request.getRequestDispatcher(tp).forward(request, wp);
问题解决了:
写静态文件的代码为
java 代码
FileOutputStream fos = new FileOutputStream(to); // 把jsp输出的内容写到xxx.htm
fos.write(wp.getContent().getBytes(wp.getCharacterEncoding()));
fos.close();
常见的代码如下:
java 代码
WrapperResponse wp = new WrapperResponse(response);
request.getRequestDispatcher(tp).include(request, wp);
但是如果我的jsp中指定了字符编码呢,例如:
java 代码
<%@ page contentType="text/html;charset=utf-8"...
如何让生成的静态页面的编码与之一致呢?
查看jsp对应的servlet代码,找到与上述指令对应的一行
java 代码
response.setContentType("text/html;charset=utf-8");
于是猜想是否可以response.getContentType来获得编码指定呢
即: String ct = wp.getResponse().getContentType();
但是结果为null。
查javaDoc说明
链接
The
ServletResponseobject has its path elements and parameters remain unchanged from the caller's. The included servlet cannot change the response status code or set headers; any attempt to make a change is ignored.
根据此说明上述jsp对应的servlet代码中
setContentType的语句被忽略了。
但是我的问题还是没有解决。
将
request.getRequestDispatcher(tp).include(request, wp);
改为request.getRequestDispatcher(tp).forward(request, wp);
问题解决了:
写静态文件的代码为
java 代码
FileOutputStream fos = new FileOutputStream(to); // 把jsp输出的内容写到xxx.htm
fos.write(wp.getContent().getBytes(wp.getCharacterEncoding()));
fos.close();
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- JSP/PHP基于Ajax的分页功能实现
- 插入排序
- 冒泡排序
- 堆排序