java 伪静态页面的实现_静态页面、动态页面和伪静态页面的区别以及实现方法...

1.静态页面

优点:相对于其他两种页面(动态页面和伪静态页面),速度最快,而且不需要从数据库里面提取数据,速度快的同时,也不会对服务器产生压力。

缺点:由于数据都是存储在HTML里面,所以导致文件非常大。并且最严重的问题是,更改源代码必须全部更改,而不能改一个地方,全站静态页面就自动更改了。如果是大型网站有较多的数据,那会占用大量的服务器空间,每次添加内容都会生成新的HTML页面。如果不是专业人士维护比较麻烦。

动态页面静态化:

1 /**

2 * 动态页面静态化3 */

4 public classGoToHtml {5

6 private static String title ="我是标题";7 private static String h1 ="我是 H1 标签";8 private static String h2 ="我是 H2 标签";9 private static String h3 ="我是 H3 标签";10 private static String h4 ="我是 H4 标签";11 private static String h5 ="我是 H5 标签";12

13 /**

14 * 根据本地模板生成静态页面15 *16 *@paramfilePath HTML 模版路径17 *@paramHtmlFile HTML 保存路径18 *@return

19 */

20 public static booleantoHtmlFile(String filePath, String HtmlFile) {21 String str = "";22 try{23 String tempStr = "";24 FileInputStream is = new FileInputStream(filePath);//读取模块文件

25 BufferedReader br = new BufferedReader(newInputStreamReader(is));26 while ((tempStr = br.readLine()) != null)27 str = str +tempStr;28 is.close();29 } catch(IOException e) {30 e.printStackTrace();31 return false;32 }33 try{34 //替换掉模块中相应的地方

35 str = str.replaceAll("###title###", title);36 str = str.replaceAll("###h1###", h1);37 str = str.replaceAll("###h2###", h2);38 str = str.replaceAll("###h3###", h3);39 str = str.replaceAll("###h4###", h4);40 str = str.replaceAll("###h5###", h5);41 File f = newFile(HtmlFile);42 BufferedWriter o = new BufferedWriter(newFileWriter(f));43 o.write(str);44 o.close();45 } catch(IOException e) {46 e.printStackTrace();47 return false;48 }49 return true;50 }51

52 public static voidmain(String[] args) {53 long startTime = System.currentTimeMillis(); //获取开始时间

54 SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");55 String newFileName = df.format(newDate());56 toHtmlFile("d:/b.html", "d:/" + newFileName + ".html");57 long endTime = System.currentTimeMillis(); //获取结束时间

58 System.out.println("程序运行时间: " + (endTime - startTime) + "ms");59 }60 }

模块文件代码:

1

2

3

4

###title###

5

6

7

###h1###

8

###h2###

9

###h3###

10

###h4###

11

###h5###

12

13

于是便能生成静态页面了。

2.动态页面

优点:空间使用量非常小,一般几万条数据的网站,使用动态页面,可能只有几M的文件大小,而使用静态页面少则十几M,多则几十M甚至更多。因为数据库是从数据库里面调出来的,如果需要修改某些值,直接更改数据库,那么所有的动态网页,就会自动更新了。这一点相比静态页面优点就显而易见了。

缺点:用户访问速度较慢,为什么会访问动态页面较慢呢?这个问题要从动态页面的访问机制说起了,其实我们的服务器上面有一个解释引擎,当用户访问的时候,这个解释引擎就会把动态页面翻译为静态页面,这样大家就能够在浏览器里面查看源码了。而这个源码就是解释引擎翻译之后的源码。除访问速度较慢以外,动态页面的数据是从数据库里面调用过来的如果访问的人数较多,数据库的压力会非常大。不过现在的动态程序多数都使用了缓存技术。但是总体来讲,动态页面对于服务器的压力比较大一些。同时动态页面的网站一般对于服务器的要求比较高一些,同时访问的人越多也会造成服务器的压力越大。

3.伪静态页面

伪静态页面定义:“假”静态页面,实质上是动态页面。

优点:相比静态页面而言,并没有速度上的明显提升,因为是“假”静态页面,其实还是一个动态页面,也是同样需要翻译为静态页面的。最大的好处就是让搜索引擎(Search Engine)把自己的网页当做静态页面来处理。

缺点:顾名思义,“伪静态”就是“假静态”,搜索引擎不会把他当做静态页面来处理,这只是我们靠经验考逻辑去分析的,并不一定准确。或许搜索引擎直接把它认为是动态页面。

动态页面变为伪静态:

2、配置 web.xml ,在 web.xml 中配置过滤器:

1

2

3 UrlRewriteFilter

4 org.tuckey.web.filters.urlrewrite.UrlRewriteFilter

5

6

7

8 UrlRewriteFilter

9 /*

10 REQUEST

11 FORWARD

12

3、在 WEB-INF 目录下新建文件 urlrewrite.xml 文件:

1

2 "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">

4

5

6 /userinf-([0-9]+).html

7 /NewFile.jsp?username=$1

8

9

14

4、建立一个简单的 jsp 页面:

1

2 pageEncoding="UTF-8"%>

3

4

5

6

7

8

Insert title here

9

10

11

12 String user = request.getParameter("username");13 %>

14

15 out.println("现在时间是: " + new java.util.Date() + "
");16 out.println("用户名: " +user);17 %>

18

19

20 新闻2

21

22

5、展示效果

java 伪静态页面的实现_静态页面、动态页面和伪静态页面的区别以及实现方法..._第1张图片

输入伪静态页面地址,事实上请求的是动态页面数据;

简单总结:

静态页面访问最快;维护较为麻烦。

动态页面占用空间小、维护简单;访问速度慢,如果访问的人多,会对数据库造成压力。

使用纯静态和伪静态对于SEO(Search Engine Optimization:搜索引擎优化)没有什么本质的区别。

使用伪静态将占用一定量的CPU占用率,大量使用会导致CPU超负荷。

参考链接:

你可能感兴趣的:(java,伪静态页面的实现)