当前位置: 首页 > 图文教程 > 网络编程 > JSP > 如何处理网站的头尾和导航的公用文件

JSP
JSP由浅入深(8)
JSP由浅入深(5-2)
JSP由浅入深(5-1)
[学习笔记]**编写"纯HTML"jsp应用--学会使用JSTL**
小议<scriptsrc=aaa.js></script>
[学习笔记]**编写"纯HTML"jsp应用--学会使用
HTML和javascript结合的例子
讲一讲setproperty(name="*")的用法或介绍相关资料
关于Servlet、Jsp中的多国语言显示(续)<太长了>
JSP语法(8)——<jsp:forward>
JSP语法(9)——<jsp:getProperty>
JSP语法(10)——<jsp:include>
JSP语法(12)——<jsp:useBean>
JSP语法(11)——<jsp:plugin>
关于认证的一些介绍
JSP语法(13)——<jsp:useBean>
java反射技术(一)
JAVA反射技术(二)
jsp连接mysql数据库大全
JSP入门教程(2)

JSP 中的 如何处理网站的头尾和导航的公用文件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-02   浏览: 358 ::
收藏到网摘: n/a

一个网站各个页面的相同之处莫过于头部、导航、尾部,每一个程序手都知道代码重用性的好处。如果我们把这些文件都做成公用文件,那么将大大节省了维护成本。

大型网站的头尾部分和导航部分一般都会做成静态的公用文件。

尾部文件footer块的内容是关于、联系方式、版权等内容,直接做成静态文件便可。

头部文件header和导航menubar往往有两种状态。用户未登录状态,显示的内容是注册、登录等内容。用户已登录状态,显示内容有“欢迎你,某某”、未读消息数等。还有一些特别的导航链接也不一样,比如“会员中心”的链接,未登录时链到登录页面,而已登录状态则链到会员中心首页。

我们已将这些块做成了静态文件,那么怎么处理这两种状态呢?剩下只能使用js来控制。在登录页面,当验证用户登录成功时向用户电脑写入 cookie,比如用户呢称用户ID等信息。如此我们就可以写一段JS读取之前写入的cookie,如果用户信息存在就说明用户已登录,再根据返回的结果以JS动态更改头部文件及导航的内容。这样两种状态就实现了。

另外要说一点,这之中可能会涉及其它一些问题。

大型网站往往有很多二级域名,这些二级域名之间要共用头尾文件,那么就存在了跨域问题。

跨域读取cookie,这个解决办法很简单,只要在写入cookie时设置domain为根域名xxx.com,这样所有的二级域都可访问了,甚至三级域名也行。

这些公用文件一般采用include的包含方式加入到各页面中,但是这种包含只能包含本域名下的文件,那么其它二级域名如何共用一个文件呢?这里又涉及了跨域问题,可以对服务器设置虚拟目录或虚拟路径。比如真实头尾文件存在www.xxx.com/inc下,yy.xxx.com域名下的页面怎么包含www.xxx.com/inc的文件呢?可以在yy.xxx.com下开一个虚拟目录指向www.xxx.com下相应的/inc目录。这样就做成了重用性,改一个www.xxx.com/inc下的文件,所有其它域名/inc下相应文件也随之更新了。

虚拟的办法也可以解决ajax跨域的问题,原理一样。