-
jsp高并发,生成静态页面5
每个高并发静态页面都有如下代码,求j2ee的各位来讲解一下
{ final ByteArrayOutputStream os = new ByteArrayOutputStream(); final ServletOutputStream stream = new ServletOutputStream() { public void write(byte[] data,int offset, int length) { os.write(data, offset, length); } public void write(int b) throws IOException { os.write(b); } }; final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os, encoding)); HttpServletResponse rep = new HttpServletResponseWrapper(response) { public ServletOutputStream getOutputStream() { return stream; } public PrintWriter getWriter() { return pw; } }; logger.debug("HtmlCreatorServlet RequestDispatcher = " + templatePath); RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(templatePath); dispatcher.include(request, rep); pw.flush(); FileOutputStream fos = null; try { if(os.size() == 0) { response.sendError(HttpServletResponse.SC_NOT_FOUND, ""); } else { fos = new FileOutputStream(cachhtmlFileName); os.writeTo(fos); dispatcher = getServletContext(). getRequestDispatcher("/"+htmlName); dispatcher.include(request, response); } } finally { if(fos != null) { fos.close(); } } }
其中主要不明白的是有:
1.那几个输出流,都在做什么;
2.是如何将动态代码写成静态页面的;
3.如此定义(实现接口)变量
final ServletOutputStream stream = new ServletOutputStream() { public void write(byte[] data,int offset, int length) { os.write(data, offset, length); } public void write(int b) throws IOException { os.write(b); } };
其中的方法没有看到应用那,所以目的是什么,怎么用的,效果是什么
请各位帮忙
2012年7月12日 17:29
目前还没有答案
相关推荐
总的来说,JSP生成静态页面是提高网站效率的有效手段,但同时也需要谨慎处理静态化过程中的各种细节,以确保网站的正常运行和用户体验。在实际项目中,应结合具体需求和资源来选择合适的静态化策略。
### JSP结合JavaBean生成静态页面的技术要点及实现方法 #### 一、为什么要生成静态页面? 在Web开发中,动态页面(如JSP)虽然功能强大且易于维护,但每次请求都需要从数据库获取数据并执行复杂的逻辑处理,这无疑...
1. **检测变化**:系统需要监听JSP文件或数据源的变化,一旦发现变化,就需要重新生成静态页面。 2. **预编译JSP**:当检测到变化后,使用JSP的`jsp:include`或`jsp:forward`指令,将JSP页面预编译成Servlet,并...
- 提升用户体验,尤其是对于高并发访问的场景,静态页面可以快速响应。 3. **实现JSP页面静态化的策略**: - **重写JspWriter**:JspWriter是JSP页面中负责输出内容的对象。通过自定义JspWriter,可以在页面渲染...
例如,通过设置模板和参数,系统自动将动态内容生成静态页面。 5. **第三方工具或框架**:如Struts、Spring MVC等框架提供了静态化插件或配置,帮助开发者实现JSP静态化。这些工具通常提供更灵活的配置,可以根据...
3. **静态页面生成**:静态化过程中,我们需要在用户请求之前,或者在后台定期执行,将`index.jsp`的动态内容转换为HTML文件,例如生成`index.html`。这通常通过读取JSP,执行其中的Java代码,然后将结果写入HTML...
然而,动态页面的生成需要服务器处理数据库查询、逻辑运算等任务,这可能导致响应时间变慢,特别是在高并发访问时。 静态页面则不同,它们是预先生成并存储在服务器上的HTML文件,直接发送给客户端,无需服务器进行...
这种方式灵活但可能导致服务器处理压力增大,特别是高并发访问时。 相比之下,静态HTML页面由纯文本构成,不包含任何服务器端的脚本,它们在服务器上预先生成,直接发送给用户。由于不需要服务器实时处理,静态HTML...
"Freemarker+Structs2.0文章上传生成静态页面"是这样一个系统,它结合了两个强大的Java技术来实现这一目标。 Freemarker是一个模板引擎,它允许开发者用简单的模板语言(FTL)编写设计模板,然后用数据模型填充这些...
- **按需静态化(On-Demand)**:当用户首次请求某个动态页面时,服务器动态生成静态页面并保存,后续请求则直接返回静态HTML。 - **定时刷新(Cron Job)**:设置定时任务,定期检查并更新静态页面,确保数据的...
这个过程中涉及到了多次I/O操作和计算,对于高并发场景来说,可能会成为性能瓶颈。 页面静态化则是通过将这些动态内容提前生成为静态HTML,当用户请求时,直接返回这些静态文件,避免了服务器端的动态渲染。这可以...
3. **减轻服务器压力**:静态页面减少了服务器动态处理的负担,尤其在高并发访问时,效果显著。 4. **安全性**:静态HTML没有执行环境,相对JSP更安全,不易受到注入攻击。 **三、转换方法** 1. **手动转换**:...
然而,在高并发或者对性能有较高要求的场景下,传统的JSP技术可能会成为性能瓶颈,因为它每次请求都需要在服务器上执行Java代码来生成HTML响应。为了解决这个问题,"jspstatic" 和 "jsp生产静态html页面" 的概念...
然而,这种模式在高并发场景下可能会造成服务器性能瓶颈。 2. **Freemarker模板技术**: Freemarker是Java平台上的一个开源模板引擎,用于生成动态内容。它与JSP类似,但更专注于视图层,提供更简洁的模板语法,且...
【通用静态页面生成系统(Engineer) v.1】是一个基于Java JSP技术的应用程序,主要用于帮助学生进行毕业设计学习。这个系统的核心功能是将动态网页内容转化为静态HTML页面,以此提高网站的加载速度和搜索引擎优化...
可以设置定时任务,定期检查并重新生成静态页面,确保数据的实时性。 在压缩包`GengerateHtmlDemo`中,很可能包含了一个用于演示如何实现新闻页静态生成分页的代码示例。这个示例可能包含了数据库操作、HTML模板...
总的来说,JSP页面缓存是一个提高Web应用性能的重要工具,尤其是在处理大量静态或半静态内容时。正确地实现和使用JSP页面缓存可以有效地降低服务器压力,提升用户体验。这个资源提供了一个基础的实现方案,对于理解...
例如,新闻频道通过CMS自动生成静态页面,社区论坛则在内容更新后即时静态化帖子和文章,以提高访问速度。 综上,HTML静态化是Web性能优化的重要策略,通过Java等编程语言实现自动化生成,结合URL重写技术,可以...
3. **负载均衡**:减轻应用服务器压力,尤其是在高并发访问时。 4. **更快的首次加载**:对于新用户,无需等待JSP执行,首屏展示更快。 **实现JSP到HTML转换的方法:** 1. **手动转换**:在需要的时候,手动执行JSP...