「什么是动态静态页面」如何JSP中把动态页面转换为静态页面
什么是动态静态页面,静态和动态页面内容导航:什么是静态页面和动态页面静态页面和动态页面的概念分别是什么如何JSP中把动态页面转换为静态页面什么是动态页面。一、什么是静态页面和动态页面静态页面:不含有?号的html类型(html,html,shtml,xhxml,jhtml,xml)动态页面:含有?的,或是以asp,php,jsp,aspx结尾的都是动态。静态页面在服务器里面是真实存在的,访问静态页面不需要经过数据库,静态页面是静态链接。动态页面在服务器里面不是真实存在的,访问动态页面需要经过数据库,动态页面是动态连接。二、静态页面和动态页面的概念分别是什么静态网页是实际存在的,无需经过服务器的编译,直接加载到客户浏览器上显示出来。静态页面需要占一定的服务器空间,且不能自主管理发布更新的页面,如果想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件修改(通过fso等技术例外)常见的静态页面举例:.html扩展名的、.htm扩展名的。动态页面是一对多访问。通过一个页面。可以根据若干参数返回其不同的数据。但是静态页面因为是静态所以是一个页面对应一个内容,也就是一对一的关系。他的优点就是无论你如何访问都只是让服务器传数据给请求者。并不做脚本计算及读取后台数据库。从而大大的提高了访问速度及降低了部分安全隐患。三、如何JSP中把动态页面转换为静态页面答:要自动生成静态页面,用Filter截获jsp请求并先进行预处理,自动生成Html,是个不错的主意。一个很容易想到的方法是在Filter截获Request后,导向一个Servlet,在这个Servlet中向本机发送一个http请求,然后将响应写入一个文件:URLConnectionurlConn=(http://localhost/req);注意要避免递归。另一个方法是不模拟http,而是定制Response,把服务器返回的JSP响应输出到我们自己的Response中,就可以将响应快速写入Html文件,然后再发送给客户。而且,由于没有http模拟请求,直接读取服务器响应速度非常快。截获Response的关键便是实现一个WrappedResponse,让服务器将响应写入我们的WrappedResponse中。这类似于一个代理模式,Servlet2.x已经提供了一个WrappedResponse类,我们只需要复写其中的一些关键方法即可。WrappedResponse实现了Response接口,它需要一个Response作为构造函数的参数,事实上这正是代理模式的应用:WrappedResponse充当了代理角色,它会将JSP/Servlet容器的某些方法调用进行预处理,我们需要实现自己的方法。综上:用Filter实现HTML缓冲的步骤是:1.用Filter截获请求,如/?id=123,映射到对应的html文件名为/html/$id=。2.查找是否有/html/$id=,如果有,直接forward到此html,结束。3.如果没有,实现一个WrappedResponse,然后调用filterChain(request,wrappedResponse)。四、什么是动态页面。静态页面:不含有?号的html类型(html,html,shtml,xhxml,jhtml,xml)动态页面:含有?的,或是以asp,php,jsp,aspx结尾的都是动态。静态页面在服务器里面是真实存在的,访问静态页面不需要经过数据库,静态页面是静态链接。它就相当于面包,你去商店的时候,买面包,直接就给你了。动态页面在服务器里面不是真实存在的,访问动态页面需要经过数据库,动态页面是动态连接。它就相当于凉皮,你去买的时候 ,他需要去做,加工,然后再给你。动态页面和生成的静态页面(采用CMS等技术生成)相比 动态的页面的优点是能够及时处理信息,你提交的页面马上显示出来。动态页面的劣势主要表现为:1.搜索引擎收录不好。特别是有传值的动态页面(如 ?id= ) 。如果您的网站知名度还不行,那样做成动态页面搜索引擎就更难收录了。2.应用程序的错误会直接表现出来。这样对用户的体验很不好。3.一个错误(如应用程序的配置,sql链接等)可能会导致整个网站无法访问。4.对服务的性能影响也很大。对于有大量的数据处理时这样的表现更明显。5.大量的用户访问可能导致数据库或服务器无法访问。6..不利于数据的安全。访问的用户可能利于sql漏洞,rss跨站攻击等技术窃取用户的权限。生成静态页面的好处 :1.相应快。在同等条件下。一个静态页面要比动态页面快得多。对于频繁访问的用户来书,静态页面的客户端缓存也有助于用户快速访问。2.服务器资源占用少。静态页面不需要数据库的支持。不需要服务器端应用程序的计算。3.对于大量的用户访问,生成静态页面的优势更明显。像新浪,网易等用户访问量很大的网站都采用生成静态页面的技术。4. 用户看到页面和应用程序的分离 。即使有应用程序方面的错误,访问的用户是看不到的。这样有利于后台数据的安全。