服务器端包含 (server-side includes) 是web 页面设计中的一种常用技术,在一个输出很多网页的系统中,经常会有一些网页的组成部分在多个网页中同时出现。server-side includes 是java server 体系结构的一个高级特征,它可以在html 文档中嵌入servlet,这样就可以利用一个或多个servlet 来组成最终的html 文档,这种特殊的包含了servlet 输出和html 标记的文件用扩展名.shtml 表示。
servlet 标记的语法:
<servlet name=servlet_name code=servlet.class codebase=类路径
名称 1 = 参数值 1
名称 2 = 参数值 2
........
名称 n = 参数值 n >
<param name =名称 1 value = 参数值 1
param name =名称 2 value = 参数值 2
........
param name =名称 n value = 参数值 n >
</servlet>
编程思路及技巧:下面是一个完整的简单的服务器包含(ssi)的实例,整个shtml 页面由2个servlet 组成,第1个servlet是header.java,代表页头,主要功能是显示标题信息;第2个servlet 是footer.java,代表页脚,主要功能是显示页脚的版权信息;together.shtml 是将2个servlet 组合在一起显示的服务器包含,它应当从文档根目录(如 wwwroot)中加载。
标准的页头header.java 的源代码如下:
| import javax.servlet.*; import java.io.*; public class header extends genericservlet { public void service(servletrequest req,servletresponse resp) throws servletexception, ioexception { res.setcontenttype("text/html;charset=gb2312"); printwriter out =res.getwriter(); // get the title of the page. set to empty string if // no title parameter was given string titles[] = req.getparametervalues("title"); string title = ""; if (titles != null) { if (titles.length > 0) { title = titles[0]; } } // format the standard header out.println("<head><title> 欢迎你到来 </title></head>"); out.println("<h1 align='center'>*** 欢迎你到来 *** </h1><hr>"); // wrap up out.flush(); out.close(); } /** * <p>returns information about this servlet */ public string getservletinfo() { return "header "; } public void init(servletconfig cfg) throws servletexception { super.init(cfg); } public void destroy() { super.destroy(); } } |
标准的页脚 footer.java 的源代码如下:
| import javax.servlet.*; import java.io.*; public class footer extends genericservlet { public void service(servletrequest req,servletresponse resp) throws servletexception, ioexception { res.setcontenttype("text/html;charset=gb2312"); printwriter out =res.getwriter(); // format the standard header out.println("<hr>"); out.println("<p align='center'><i> 版权所有,信息公司</i></p>"); // wrap up out.flush(); out.close(); } /** * <p>returns information about this servlet */ public string getservletinfo() { return "footer "; } public void init(servletconfig cfg) throws servletexception { super.init(cfg); } public void destroy() { super.destroy(); } } |
服务器包含 together.shtml 的源代码如下:
| <html> <servlet code=header> <param name="title" value="good"> </servlet> <body> <dir> this a study programmer!; are you interested in ?; let's go research. </dir> <servlet code=footer> </servlet> </body> </html> |
闽公网安备 35060202000074号