`

缓存静态页面的编码问题

    博客分类:
  • java
阅读更多
在CMS系统中一个基本问题是对基于模板的动态页面结果进行缓存,如果模板采用jsp,常常使用response重定向截获输出结果。
常见的代码如下:
java 代码
 
  1. WrapperResponse wp = new WrapperResponse(response);  
  2. request.getRequestDispatcher(tp).include(request, wp);  
但是如果我的jsp中指定了字符编码呢,例如:
java 代码
 
  1. <%@ page contentType="text/html;charset=utf-8"...  
如何让生成的静态页面的编码与之一致呢?
查看jsp对应的servlet代码,找到与上述指令对应的一行
java 代码
 
  1. response.setContentType("text/html;charset=utf-8");  
于是猜想是否可以response.getContentType来获得编码指定呢
即: String ct = wp.getResponse().getContentType();
但是结果为null。
查javaDoc说明
 链接
The ServletResponse object 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 代码
 
  1. FileOutputStream fos = new FileOutputStream(to); // 把jsp输出的内容写到xxx.htm  
  2. fos.write(wp.getContent().getBytes(wp.getCharacterEncoding()));  
  3. fos.close();            

分享到:
评论

相关推荐

    一个简易实现ASP.NET网页静态数据Static Data 进行缓存Cache 的程序例子

    1. 定义静态数据:这可能是硬编码在代码中的字典、列表或其他集合,代表需要缓存的信息。 2. 实现缓存逻辑:在页面加载或应用程序启动时,检查缓存中是否存在该静态数据。如果不存在,就从源头获取数据(例如数据库...

    彻底解决httpClient乱码问题

    5. **静态化处理**:在处理HTML页面时,静态化是一种常见的技术,它将动态内容转化为静态HTML,以便于缓存和提高访问速度。HttpClient在静态化过程中,需要正确解析HTML中的编码信息,以避免在保存或展示时出现乱码...

    NET生成HTML静态页面

    在.NET框架下生成HTML静态页面是一项实用且高效的技术,尤其对于需要快速生成大量静态网页的应用场景,如新闻网站、博客系统或任何需要缓存页面提高访问速度的网站。本文将深入探讨这一技术的核心要点,包括如何利用...

    织梦cms手机生成静态页插件_织梦cms手机生成静态页插件_

    - **编码问题**:UTF-8.xml和GBK.xml代表两种不同的字符编码,选择不正确可能导致页面乱码。UTF-8是国际标准,支持更多语言,GBK是中国大陆常用的编码,如果系统或数据库使用GBK,应选用GBK.xml。 - **权限设置**:...

    ASP 生成静态网页(UTF-8)

    - **SEO优化**:静态页面有利于搜索引擎爬虫抓取,但需确保每个页面有唯一的URL,并更新Sitemap以帮助搜索引擎发现新内容。 总之,ASP生成静态网页(UTF-8)是提高网站性能和国际化的一种有效方法,涉及的关键技术...

    java抓取网页内容--生成静态页面

    在Java编程中,生成静态页面是一种常见的技术,它涉及到网页内容的抓取和存储。这个程序的主要目的是从指定的URL抓取网页内容,并将其保存为一个HTML文件,即静态页面。下面将详细讲解这个过程涉及的关键知识点。 1...

    静态页面设计

    在IT行业中,静态页面设计是Web开发的基础,它主要涉及HTML、CSS以及JavaScript等技术,用于构建不依赖服务器动态生成的网页。在这个领域,我们关注的是如何通过代码创建直观、美观且功能齐全的用户界面。以下是一些...

    Java指定编码生成静态网页技术.pdf

    Java 指定编码生成静态网页技术涉及到一系列的编程概念和方法,主要目的是从网络上获取HTML页面内容,并将其保存到本地文件系统中,形成一个静态网页。在Java中,这个过程通常涉及到网络请求、输入输出流处理以及...

    C#生成静态页面源码

    4. **缓存策略**:为了优化性能,静态页面通常会配合缓存策略。C#提供了多种缓存机制,包括OutputCache,使服务器能够在首次处理请求后缓存生成的HTML,避免重复计算。 5. **预渲染(Prerendering)与服务器端渲染...

    淘淘商城静态页面

    9. **无障碍访问**:考虑到特殊群体的需求,静态页面还需要遵循无障碍网页设计标准(WCAG),确保视障人士通过屏幕阅读器也能正常访问。 总之,“淘淘商城静态页面”压缩包提供了完整的前端界面资源,涵盖了HTML...

    地方商机网站首页html静态网页模板代码

    `&lt;head&gt;`标签包含页面的元信息,如`&lt;title&gt;`定义页面标题,`&lt;meta&gt;`标签用于设置字符编码、关键词描述等,`&lt;link&gt;`引入外部样式表,`&lt;script&gt;`引入JavaScript代码或外部脚本文件。 3. **导航结构** 地方商机网站...

    静态地址和静态URL

    **定义:** 伪静态URL是一种技术手段,它通过对动态生成的页面进行URL重写,使其看起来像静态页面,但实际上仍然是动态生成的。这种方式既保留了动态页面的灵活性,又具有静态页面的部分优势。 **优点:** - 提升...

    discuz乱码问题

    标题 "Discuz 乱码问题" 指的是在使用 Discuz 论坛系统时遇到的一种常见技术难题,即页面显示出现乱码,这可能是字符编码不匹配、配置错误或缓存问题导致的。Discuz 是一款基于 PHP 和 MySQL 的开源社区论坛软件,...

    ASP.NET动态生成静态页面技术

    ### ASP.NET动态生成静态页面技术 #### 概述 在Web开发中,为了提升网站的访问速度、降低服务器负载及提高用户体验,动态生成静态页面(Dynamic Generation of Static Pages)成为了一种常用的技术手段。本文将...

    asp.net生成静态页面

    综上所述,ASP.NET生成静态页面是一个有益于性能和SEO优化的技术手段,通过手动编码或利用第三方库,可以有效地将动态内容转化为静态HTML,从而提升用户体验。然而,实现过程中需要注意资源管理、安全性和自动化维护...

    thymeleaf页面静态化springboot

    2. 实现方式:可以借助缓存或第三方工具(如Spring Boot的Actuator的`/refresh`端点)实现页面的预渲染和静态化。 五、Thymeleaf在Spring Cloud中的应用 1. 微服务架构:在Spring Cloud中,Thymeleaf可以作为服务端...

    将动态页面静态化的一个程序

    同时,静态页面的更新可能会引发缓存问题,需要妥善处理。 总结来说,动态页面静态化是一种优化网站性能的技术,通过预先生成HTML文件,减少服务器端的处理负载,提高页面加载速度,并有利于SEO。在实际应用中,...

    ASP.NET生成静态页面方法大全(五种方案对比)

    ### ASP.NET生成静态页面方法大全(五种方案对比) #### 方案一:通过URL抓取内容并转换为静态页面 本方案主要通过调用`getUrltoHtml`函数来实现从指定URL获取HTML代码,并将其保存为静态HTML文件。具体步骤包括...

    JSP结合JavaBean生成静态页面示例

    1. **缓存机制**:为提高效率,可以加入缓存机制,对于频繁访问的内容只生成一次静态页面,并将其缓存在内存或磁盘上。 2. **版本控制**:当数据更新时,可以采用版本控制机制自动更新静态页面。 3. **多语言支持**...

    织梦tag标签静态化

    7. **更新与维护**:静态化后的页面需要在内容更新后同步更新,织梦CMS通常有自动或手动更新静态页面的功能,以确保信息的及时性。 8. **安全考虑**:虽然静态化提高了效率,但也增加了大量静态文件,可能成为DDoS...

Global site tag (gtag.js) - Google Analytics