jsp生成静态页面—1

为了减轻服务器压力,将原来的文章管理系统由JSP文件的从数据库中取数据显示改为由jsp生成静态html文件后直接访问html文件。首先应创建一个模板文件,文件名和文件后缀可以随意,但我一般常用的还是 *.template ,因此,这里就以 template.template 为例( 将模板文件放入 /WEB-INF/templates/ 文件夹下 ):下面是一个简单的示例



1.buildhtml.jsp
Jsp代码

1. <%@ page contentType="text/html; charset=gb2312" import="java.util.*,java.io.*"%>
2. <%
3. try{
4. //设置字符编码
5. request.setCharacterEncoding( "gb2312" );
6. response.setCharacterEncoding( "gb2312" );
7.
8. String title="This is Title";
9. String content="This is Content Area";
10. String editer="LaoMao";
11. String filePath = "";
12. // 获得模板文件的路径
13. filePath = request.getRealPath("/")+"test/template.htm";
14. //out.print(filePath+"<br>");
15. String templateContent="";
16. //读取模块文件
17. FileInputStream fileinputstream = new FileInputStream(filePath);
18. int lenght = fileinputstream.available();
19. byte bytes[] = new byte[lenght];
20. fileinputstream.read(bytes);
21. fileinputstream.close();
22. templateContent = new String(bytes);
23. //out.print(templateContent);
24. templateContent=templateContent.replaceAll("###title###",title);
25. templateContent=templateContent.replaceAll("###content###",content);
26. templateContent=templateContent.replaceAll("###author###",editer);//替换掉模块中相应的地方
27. //out.print(templateContent);
28. // 根据时间得文件名
29. Calendar calendar = Calendar.getInstance();
30. String fileame = String.valueOf(calendar.getTimeInMillis()) +".html";
31. //生成的html文件保存路径
32. fileame = request.getRealPath("/")+fileame;
33. //建立文件输出流
34. FileOutputStream fileoutputstream = new FileOutputStream(fileame);
35. byte tag_bytes[] = templateContent.getBytes();
36. fileoutputstream.write(tag_bytes);
37. fileoutputstream.close();
38.
39. }catch(Exception e){
40. out.print(e.toString());
41. }
42.
43.
44. %>

<%@ page contentType="text/html; charset=gb2312" import="java.util.*,java.io.*"%>
<%
try{
//设置字符编码
request.setCharacterEncoding( "gb2312" );
response.setCharacterEncoding( "gb2312" );

String title="This is Title";
String content="This is Content Area";
String editer="LaoMao";
String filePath = "";
// 获得模板文件的路径
filePath = request.getRealPath("/")+"test/template.htm";
//out.print(filePath+"<br>");
String templateContent="";
//读取模块文件
FileInputStream fileinputstream = new FileInputStream(filePath);
int lenght = fileinputstream.available();
byte bytes[] = new byte[lenght];
fileinputstream.read(bytes);
fileinputstream.close();
templateContent = new String(bytes);
//out.print(templateContent);
templateContent=templateContent.replaceAll("###title###",title);
templateContent=templateContent.replaceAll("###content###",content);
templateContent=templateContent.replaceAll("###author###",editer);//替换掉模块中相应的地方
//out.print(templateContent);
// 根据时间得文件名
Calendar calendar = Calendar.getInstance();
String fileame = String.valueOf(calendar.getTimeInMillis()) +".html";
//生成的html文件保存路径
fileame = request.getRealPath("/")+fileame;
//建立文件输出流
FileOutputStream fileoutputstream = new FileOutputStream(fileame);
byte tag_bytes[] = templateContent.getBytes();
fileoutputstream.write(tag_bytes);
fileoutputstream.close();

}catch(Exception e){
out.print(e.toString());
}


%>



2. template.template
Html代码

1. <html>
2. <head>
3. <title>###title###</title>
4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
5. <LINK href="../css.css" rel=stylesheet type=text/css>
6. </head>
7.
8.
9. <body>
10. <table width="500" border="0" align="center" cellpadding="0" cellspacing="2">
11. <tr>
12. <td align="center">###title###</td>
13. </tr>
14. <tr>
15. <td align="center">author:###author###  </td>
16. </tr>
17. <tr>
18. <td>###content###
19. </td>
20.
21. </tr>
22.
23. </table>
24. </body>
25. </html>

<html>
<head>
<title>###title###</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="../css.css" rel=stylesheet type=text/css>
</head>


<body>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td align="center">###title###</td>
</tr>
<tr>
<td align="center">author:###author###  </td>
</tr>
<tr>
<td>###content###
</td>

</tr>

</table>
</body>
</html>

为了将应用进行国际化,可以将页面的编码设为 UTF-8
【100%通过率】2024华为OD机试真题E卷 C++ 实现【栈数据合并/空栈压数】 向一个空栈压入正整数,每当压入一个整数时,执行以下规则(设: 栈顶至栈底整数依次编号为n1、n2...nx, n1为最新压入的整数) 阅读详情

相关推荐

airodump-ng、aircrack-ng使用教程

wifi破解、airodump-ng、aircrack-ng脚本

ssmbyss的博客 2231

Jsp生成静态页面

Jsp生成静态页面 为了减轻服务器压力,将原来的文章管理系统由

GOBY 栏目 2412

AUTOSAR R20-11标准下载!

这是公众号的第2篇推文,粉丝数49 Document Search Classic Platform Adaptive Platform Foundation 文档截图 以为会在明天的发布会之后才上线,没想到官网现在就悄悄放出来了。 中国由于网络问题,下载速度比较慢或者会中断。 “阅读原文”提供多种下载方式,可以在线浏览,可以集中下载也可单个文档下载。 如有增减我也会及时在公众号里通知大家,不过我觉得不会变动了。 整理不宜,好东西要分...

Adaptive_AUTOSAR的博客 1890

jsp生成静态页面

使用jsp生成静态页面.整个工程的目录结构如图: StaticPage是我们将要生成的静态页面目录 所有静态页面都会生成在这个目录.然后编写一个MyFitler的过滤器: 以下是代码片段: package com.filter; impo

不是程序员 2861

Android-S无线模块前瞻

WiFi - mainlane非强制 S 采用反射的方法直接加载wifiservice,直接hook在systemserver上,无编译依赖。gms可以动态替换wifi服务。 R 采用直接启动service的方式,wifiservice仍然map在systemserver上。 WiFi - 11ad接口支持 11ad被wifi联盟商业化为WIGIG,提供短距的60GHZ载波,理论速度为当前5G 11ac的6倍。市面上基本没有手机支持,需要独立的芯片支撑此功能。 传输距离为3m以内,外界d.

头铁的伦的博客 1042

H3C VRF实验

POP-vpn-instance-RT1]route-distinguisher 11:11 # VPN实例-RT1的路由区分器值11:11。配置路由泄露,其实就是在一个VPN示例中添加另一个VPN实例的下一跳,比如在VPN实例RT1中添加去往SRV的默认路由。但是也有了一个新的问题,那就是RT1、RT2和RT3也能互访了,这让VPN实例变得没有意义了。[POP]ip vpn-instance RT1 #配置vpn实例-RT1。绑定了VPN实例,所以要把路由添加到VPN实例POP中。

m0_68698993的博客 4023

JSP生成静态页面-Tomcat提高性能之王道

常见的分类信息首页,需读取至少六次数据库;其他子页面,五至十几次次不等。 在使用数据库连接池的情况下,Tomcat可以支撑的并发量也十分有限。系统资源主要消耗在两方面: 1、数据库操作,频繁的从数据库返回结果; 2、Tomcat解析JAVA文件。 将动态页面按一定规则创建一匹.html纯静态页面的过程,称之为生成静态页面。 优点 无须访问数据库,节省了最大的系统消耗。

SDTerminator的专栏 781

手把手教你接入京东购物小程序:从领券到下单的全流程解析

本文详细解析了如何从API申请到领券下单,手把手教你接入京东购物小程序的全流程。涵盖京东联盟账号注册、商品信息获取、优惠券链接转换等关键技术实践,帮助开发者高效实现电商功能集成,提升用户购物体验。

g5h6i的博客 907

jsp生成html

jsp生成html 这几天公司需要生成静态的HTML页面以减小数据库与服务器的压力和负担,于是在网络上一阵狂搜,找到几篇相当不错的文章和一些相当有用的资料。为了方便,我整理在自己的BLOG,以供参考! 在接下来的应用中,我自己想到另一种解决方案,就是通过Ajax + Struts + XML解决静态页面方案,一并写下来,与大家分享! 生成静态页面技术解决方案之一(转载)

ZKLxuankai的专栏 7925

GD32F103程序烧录全攻略:从SWD到串口的实战指南

本文提供了GD32F103微控制器程序烧录的全面实战指南,详细介绍了SWD、JTAG和串口(ISP)三种主流下载方式。文章重点解析了在Keil MDK中使用ST-Link进行SWD下载的完整步骤,包括硬件连接、软件配置和Flash算法设置,并针对烧录过程中的常见问题提供了实用的排坑解决方案,帮助开发者高效完成程序部署。

weixin_29191669的博客 435

0.1 ROCm rocr-libhsakmt实现深度剖析专栏介绍

本专栏深入解析AMD ROCm生态核心组件rocrruntime,从底层硬件交互到上层封装实现。重点剖析libhsakmt驱动层的七大核心模块设计,包括拓扑管理、队列调度、事件同步等关键机制;详解C++接口封装策略与工程实践,如资源管理、多线程优化等。通过"硬件-驱动-应用"全链路技术拆解,帮助开发者深入理解ROCm运行时机制,解决性能调优、调试等实际问题,为HPC/AI应用开发提供底层技术支撑。

图形/计算GPU的驱动与虚拟化技术分享园地 5972

jsp网站的静态页面生成方案

提升网站性能的方式有很多,例如有效的使用缓存,生成静态页面等等。今天要说的就是生成静态页面的方式。什么叫生成静态页面呢?很简单,例如我们如果访问一个链接 http://xyz.com/index.do,那么服务器就会解析这个请求,让特定的Action 去处理。这其中的缺点是显而易见的:如果访问的人,那么就会加重应用服务器的压力,最恶劣的后果就是应用服务器down

一个角落 6898

使用Matlab与V-REP联合仿真

在Matlab中,我们可以使用V-REP提供的远程API(Application Programming Interface)来连接到V-REP仿真环境。为了连接Matlab与V-REP,我们需要在Matlab中添加V-REP的远程API函数库。你可以根据具体的需求编写Matlab脚本来控制V-REP场景中的机器人,并进行系统建模和仿真。一旦成功连接到V-REP,我们可以使用Matlab来控制V-REP场景中的机器人。在本文中,我们将介绍如何使用Matlab与V-REP进行联合仿真,并提供相应的源代码。

HackMasterX的博客 1853

java中生成静态页面

<br />有时候需要生成静态的HTML页面以减小数据库与服务器的压力和负担,于是在网络上一阵狂搜,找到几篇相当不错的文章和一些相当有用的资料。为了方便,我整理在自己的BLOG,以供参考!<br />在接下来的应用中,我自己想到另一种解决方案,就是通过Ajax + Struts + XML解决静态页面方案,一并写下来,与大家分享!<br />生成静态页面技术解决方案之一(转载) <br />生成静态页面技术解决方案之二(转载) <br />一个实现将动态页面转为静态的方案(转载) <br />JSP生成静态

争做优秀java技术博客! 3608

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

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

 JSP结合JavaBean生成静态页面示例1、为什么要做:节省不停操作数据库的开支,减少解析JSP页面的开支2、怎么做:很简单,就是利用文件操作,把需要的内容与现成的模板相合成再写入一个新的静态WEB页面就OK。3、功能扩展:这里只是利用文件写出的方式,将组合的HTML的内容写入到一个WEB页面里去,但是,为了引用,让其的页面知道有该页面的存在,我们还是得在数据库或者是静态页面里

冯立彬的博客 7751

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java Servlet实现静态页面技术

1.背景 往往首页是包含多很内容的,对于讲究首页访问速度。动态请求生成jsp页面,往往略显吃力,这样对于服务器和db都有很大的压力。 为此,通过定时器定时请求生成静态页面,进行定时更新。 2.实现逻辑 我们需要解决下面一些技术问题: 一、静态请求的逻辑: 1.拼装jsp请求,发送请求 2.将请求到的结果进行流输出,jsp->html的转换过程 额外需求: 定时调用生成静态页面

TechBirds在路上 4915

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

struts2+freemarker 生成静态页面

struts2+freemarker 生成静态页面 1.创建项目 2.导入struts2的相关jar文件 3.在web.xml中配置如下: ?xml version="1.0" encoding="UTF-8"?> web-app id="WebApp_ID" ve

sz_bdqn的专栏 5438

支持ajax的静态页面生成

目前主流的页面静态技术都是基于模板生成的,但是对于一些采用ajax+js渲染的页面,这种方法是无能为力的。要解决这个问题,首先要有一个能模拟浏览器的运行环境,其他问题都比较容易解决。能模拟浏览器的技术有好多,seleninum , htmlunit等。其中htmlunit是java开发用无界...

chunshaihuo5061的博客 415

JSP生成静态页面

 JDK 1.5 +ECLIPSE +TOMCAT 5.0.28 + MYSQL 5.0 <span class="t_tag" onclick="function onclick(){tagshow(event)}">数据库TEST ,表名news 字段: id    int 自动增长 , Title   varchar(20) , Content   varchar(200) 

249

jsp 生成静态页面

    /**            * @file_name 文件名及文件之后的参数.最好为a.jsf?fileId=aaaa            * @path 文件所在的路径.相对于根目录而言的.            * @realName文件要保存的名字            * @realPath文件要保存的真实路径。默认与文件所在的目录相同。            */      

改吧 1387

java jsp静态_jsp生成静态页面的方法

importjava.io.bytearrayoutputstream;importjava.io.fileoutputstream;importjava.io.ioexception;importjava.io.outputstreamwriter;importjava.io.printwriter;importjavax.servlet.requestdispatcher;impo...

weixin_39701288的博客 161

静态页面技术 java_Java Servlet实现静态页面技术

1.背景往往首页是包含多很内容的,对于讲究首页访问速度。动态请求生成jsp页面,往往略显吃力,这样对于服务器和db都有很大的压力。为此,通过定时器定时请求生成静态页面,进行定时更新。2.实现逻辑我们需要解决下面一些技术问题:一、静态请求的逻辑: 1.拼装jsp请求,发送请求2.将请求到的结果进行流输出,jsp->html的转换过程额外需求:定时调用生成静态页面问题:1.如何知道jsp请求?查...

weixin_26516841的博客 533

使用jsp生成web静态页面

<br />     随着网站的不断扩大,首页面的内容越来越多,甚至要放置赢利性质的广告,而这些内容,每次被用户访问时都是从数据库中读取或者经过业务逻辑处理获得结果,这样会严重影响页面的加载速度,很多网站都是使用静态的html首页面来结局问题。<br /> <br />实现过程<br />1.创建jsp页面,添加测试内容<br /> <br />2.编写MyOutputStream类他继承自ServletOutputStream类并重写write()方法,使用自己的字节数组输出流实现了数据输出。关键代码如下

方正SOA中间件 621

JSP生产静态页面

利用Java生成静态HMTL页面【转】 分类: 开发(应用软件、网站相关) 2009-03-26 17:59 807人阅读 评论(1) 收藏 举报 有时候需要生成静态的HTML页面以减小数据库与服务器的压力和负担,于是在网络上一阵狂搜,找到几篇相当不错的文章和一些相当有用的资料。为了方便,我整理在自己的BLOG,以供参考! 在接下来的应用中,我自己想到另一种解决方案

2504

网站静态页面的生成

静态页面的用处,无非就是减少读取数据量的次数,但是随之而来的弊端就是一条记录对应一个html页面,虽然不大,但是长此以往几k几k也可以吃掉硬盘。所以仔细想想便可知道静态页面在什么场合推荐生成。1 列表页:这个页面无论如何也不能生成静态页面的。因为东西随时在变化,随时在更新。列表的便利是不能图省事的。2 添加页:嗯。推荐使用。添加完成把这条记录通过模板生成html静态页面。等到列表页点击

jianpingdu2009的专栏 427
上一篇: jsp生成静态页面
下一篇: 各浏览器对页面 onload 事件处理方式不一致
普通网友
博客等级 码龄14年 1粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值