Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16493531
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:36:38

下载本文示例代码
  欢迎页面welcome.jsp  当用户录入正确的密码后,switch.jsp控制JSP页面导向welcome.jsp欢迎页面,在这节里,我们来开发这个welcome.jsp页面。因为welcome.jsp需要使用到一个第三方的标签库,所以在开发welcome.jsp之前需要在JBuilder中作一些配置引入这个标签库。  将第三方标签库配置到JBuilder中  Apache开源组织提供了许多有用标签库,欢迎页面welcome.jsp需要使用一个来源于Apache的datetime标签库,可以用这个标签库在JSP中提供各种时间的显示,下载的地址是:。  标签库一般包括两个文件,其一是类包JAR文件,其二是以.tld为扩展名的标签符描述文件。从下载的压缩文档中解压后,我们将taglibs-datetime.jar和taglibs-datetime.tld文件放到<工程目录>/datetimeTag目录下。  要在工程中使用第三方的标签库,必须事先在JBuilder中配置这个标签库,并在工程中引用它。配置标签库和配置类库相似,也是通过Configure Libraries对话框来完成。JBuilder类库及标签库都列在Configure Libraries对话框中左边的树中,类库显示为 图标,而标签库显示为 图标。下面我们来将datetime标签库配置到JBuilder中。  1.Tools->Configure->Libraries->Configure Libraries对话框。  点击Configure Libraries对话框的左下角的Add...按钮,弹出New Library Wizard对话框,如下图所示: 图 17新库向导对话框  在Name中给这个库取一个名字:datetimeTag,按OK返回Configure Libraries对话框。  2.指定标签库文件。  在返回Configure Libraries对话框后,datetimeTag节点出现在左边的树中,因为还没有为其指定类库文件,有别于其他节点显示为显目的红色,点选datetimeTag并将Library Settings设置页切换到Framework标签页中,如下图所示: 图 18 切换到Framework中  在Framework下拉框中选择User-Defined JSP Tag Library选项,点击标签页右下方的Add...按钮,弹出Define New Tag Library对话框,如下图所示: 图 19 指定标签库的描述文件  在Define New Tag Library对话框中,点击TLD file后的…按钮,导航到<工程目录>/datetimeTag/taglibs-datetime.tld文件中,确认后JBuilder自动填充其余的设置项,一般不需要更改JBuilder这些自动补充的设置。其中Prefix为这个标签库指定了一个引用前缀。点击OK按钮返回Configure Libraries对话框,datetimeTag节点显示为正常的颜色如下图所示: 图 20 正确配置标签库后的效果  点击Configure Libraries对话框的OK按钮完成datetime标签库的配置。  3.在当前工程中引用这个新配置的标签库。  Project->Project Properties...->Paths->切换到Required Libraries标签页中->点击Add...按钮从JBuilder类库中选择datetimeTag。配置成功后,Project Properties对话框如下所示: 图 21 工程引用库  创建欢迎JSP页面  1.File->New…->Web->双击JSP图标,启动创建JSP向导,指定JSP文件名为welcome,点击Next到下一步。  2.在welcome.jsp页面中引用datetimeTag标签库。  在向导的第2步中允许你选择JBuilder中的各种标签库,我们在上一节中配置的datetimeTag标签库也出现在Tag Libraries列表中,如下图所示: 图 22 引用标签库  展开datetime Tag并勾选taglibs-datetime,按Next到一下步。  3.引用在switch.jsp中放入session域的userBean对象。 图 23 引用switch.jsp中放入session的userBean  点击Add Bean...选择bookstore.User类,在ID栏中指定Bean的名字为ses_userBean,Scope栏中选择session作用域。ses_userBean即是在switch.jsp为userBean所指定的名字,Web容器将根据这个名字到session中查找对象,如果找不到才创建bookstore.User对象,因为welcome.jsp在switch.jsp之后才被调用,所以除非session对期,否则都可以找到userBean对象。  直接点击Finish创建welcome.jsp文件,其代码如下所示:  代码清单 15 welcome.jsp欢迎页面 1. <%@ page contentType="text/html; charset=GBK" %>2. <%@ taglib uri="" prefix="dt" %>3. <html>4. <head>5. <title>6. welcome7. </title>8. </head>9. <jsp:useBean id="ses_userBean" scope="session" class="bookstore.User" />10. <jsp:setProperty name="ses_userBean" property="*" />11. <body bgcolor="#ffffff">12. <h1>13. JBuilder Generated JSP14. </h1>15. </body>16. </html>  在向导第2步所引用的标签库设置对应第2行的引用标签库声明代码。而在第3步中设定的Bean对应第9~10行代码,因为在welcome.jsp中无需填充Bean的值,所以应该手工去除第10行的代码。  下面我们在welcome.jsp文件中引用datetime标签库,用它生成一个当前时间格式化串。打开welcone.jsp文件并切换到Source视图页中。首先清除<body></body>中JBuilder所产生的代码,在<body></body>中输入"<dt:",JBuilder将使用TagInsight功能显示出这个标签库中所有可用的标签项,如下图所示:                图 24 利用TagInsight录入标签库  使用TagInsight可以非常方便地录入标签库中的可用标签,大大加速标签库的代码录入并保证正确性。在welcome.jsp中我们使用标签库获得一个当前的格式化时间串,此外我们还通过ses_userBean获取用户的名字。welcome.jsp的最终代码如下所示:  代码清单 16 welcome.jsp 引用标签库和Session对象 1. <%@page contentType="text/html; charset=GBK" errorPage="error.jsp"%>2. <%@taglib uri="" prefix="dt"%>3. <html>4. <head>5. <title>welcome</title>6. </head>7. <jsp:useBean id="ses_userBean" scope="session" class="bookstore.User"/>8. <body bgcolor="#ffffff">你是9. <%=ses_userBean.getUserName()%>,欢迎登录。<br>10. 现在的时间是<dt:表单at pattern="MM/dd/yyyy hh:mm"><dt:currentTime/></dt:表单at>11. <br>点击<a href="quit.jsp">这儿</a>退出系统12. </body>13. </html>  此外,JBuilder将datetime标签库描述文件taglibs-datetime.tld拷贝到WEB-INF下,并对web.xml文件动了手脚,声明taglibs-datetime.tld所在的地址:  代码清单 17 web.xml中声明标签描述文件 1. <?xml version="1.0" encoding="UTF-8"?>2. …3. <web-app>4. <taglib>5. <taglib-uri></taglib-uri>6. <taglib-location>/WEB-INF/taglibs-datetime.tld</taglib-location>7. </taglib>8. </web-app>  如上所示,web.xml的第4~7行,JBuilder自动加入了datetime标签库的描述文件,以便Web容器正确找到所需的信息。  在编译工程生成Web目录时,JBuilder会将datetime标签库的JAR文件taglibs-datetime.jar拷贝到WEB-INF/lib目录下。  当用户登录成功后,将转向welcome.jsp页面,其页面效果如下图所示: 图 25 welcome.jsp效果页面  当用户点击"这儿"的链接时,将链接到quit.jsp,quit.jsp页面负责清除session,清除session后,将引用session中的对象解绑并释放资源。   quit.jsp退出处理页面  由于HTTP协议以请求/响应的方式工作,所以客户端退出系统时需要主动往Web服务器发送一个请求,通知Web服务器及时销毁会话,否则Web服务器只会等到会话过期时才会销毁它。  我们用一个quit.jsp来处理用户退出系统的操作,quit.jsp负责注销session,及时释放资源。  ·注销session。  ·关闭浏览器窗口。  其代码如下所示: 1. <%@ page contentType="text/html; charset=GBK" %>2. <%3.  session.invalidate();4. %>5. <script language="javaScript" >6.  window.opener = null;7.  window.close();8. </script>  其中第3行负责注销session,原先放入session的对象将解绑定,等待垃圾回收以释放资源。对于本例而言,session中有一个名为ses_userBean的userBean对象(它是在switch.jsp中放入session的),调用session.invalidate()后,userBean从session中解绑定,它的valueUnbound()方法会被触发调用,然后再等待垃圾回收。  第5~8行是一段JavaScript脚本程序,负责关闭窗口,如果网页不是通过脚本程序打开的(window.open()),调用window.close()脚本关闭窗口前,必须先将window.opener对象置为null,如第6行所示,否则浏览器会弹出一个确定关闭的对话框,笔者发现这个问题困扰了不少的Web程序员,故特别指出。   实战经验:  在用户退出系统时,需要注销session,否则只有等到session在服务器中过期后,session对象才会被清除。假设一个session的不活动最大时间为30分钟(默认的时间),如果不手工清除session对象,则当一个用户退出系统后再过30分钟,这些对象所占用的系统资源才会被释放。   欢迎页面welcome.jsp  当用户录入正确的密码后,switch.jsp控制JSP页面导向welcome.jsp欢迎页面,在这节里,我们来开发这个welcome.jsp页面。因为welcome.jsp需要使用到一个第三方的标签库,所以在开发welcome.jsp之前需要在JBuilder中作一些配置引入这个标签库。  将第三方标签库配置到JBuilder中  Apache开源组织提供了许多有用标签库,欢迎页面welcome.jsp需要使用一个来源于Apache的datetime标签库,可以用这个标签库在JSP中提供各种时间的显示,下载的地址是:。  标签库一般包括两个文件,其一是类包JAR文件,其二是以.tld为扩展名的标签符描述文件。从下载的压缩文档中解压后,我们将taglibs-datetime.jar和taglibs-datetime.tld文件放到<工程目录>/datetimeTag目录下。  要在工程中使用第三方的标签库,必须事先在JBuilder中配置这个标签库,并在工程中引用它。配置标签库和配置类库相似,也是通过Configure Libraries对话框来完成。JBuilder类库及标签库都列在Configure Libraries对话框中左边的树中,类库显示为 图标,而标签库显示为 图标。下面我们来将datetime标签库配置到JBuilder中。  1.Tools->Configure->Libraries->Configure Libraries对话框。  点击Configure Libraries对话框的左下角的Add...按钮,弹出New Library Wizard对话框,如下图所示: 图 17新库向导对话框  在Name中给这个库取一个名字:datetimeTag,按OK返回Configure Libraries对话框。  2.指定标签库文件。  在返回Configure Libraries对话框后,datetimeTag节点出现在左边的树中,因为还没有为其指定类库文件,有别于其他节点显示为显目的红色,点选datetimeTag并将Library Settings设置页切换到Framework标签页中,如下图所示: 图 18 切换到Framework中  在Framework下拉框中选择User-Defined JSP Tag Library选项,点击标签页右下方的Add...按钮,弹出Define New Tag Library对话框,如下图所示: 图 19 指定标签库的描述文件  在Define New Tag Library对话框中,点击TLD file后的…按钮,导航到<工程目录>/datetimeTag/taglibs-datetime.tld文件中,确认后JBuilder自动填充其余的设置项,一般不需要更改JBuilder这些自动补充的设置。其中Prefix为这个标签库指定了一个引用前缀。点击OK按钮返回Configure Libraries对话框,datetimeTag节点显示为正常的颜色如下图所示: 图 20 正确配置标签库后的效果  点击Configure Libraries对话框的OK按钮完成datetime标签库的配置。  3.在当前工程中引用这个新配置的标签库。  Project->Project Properties...->Paths->切换到Required Libraries标签页中->点击Add...按钮从JBuilder类库中选择datetimeTag。配置成功后,Project Properties对话框如下所示: 图 21 工程引用库  创建欢迎JSP页面  1.File->New…->Web->双击JSP图标,启动创建JSP向导,指定JSP文件名为welcome,点击Next到下一步。  2.在welcome.jsp页面中引用datetimeTag标签库。  在向导的第2步中允许你选择JBuilder中的各种标签库,我们在上一节中配置的datetimeTag标签库也出现在Tag Libraries列表中,如下图所示: 图 22 引用标签库  展开datetime Tag并勾选taglibs-datetime,按Next到一下步。  3.引用在switch.jsp中放入session域的userBean对象。 图 23 引用switch.jsp中放入session的userBean  点击Add Bean...选择bookstore.User类,在ID栏中指定Bean的名字为ses_userBean,Scope栏中选择session作用域。ses_userBean即是在switch.jsp为userBean所指定的名字,Web容器将根据这个名字到session中查找对象,如果找不到才创建bookstore.User对象,因为welcome.jsp在switch.jsp之后才被调用,所以除非session对期,否则都可以找到userBean对象。  直接点击Finish创建welcome.jsp文件,其代码如下所示:  代码清单 15 welcome.jsp欢迎页面 1. <%@ page contentType="text/html; charset=GBK" %>2. <%@ taglib uri="" prefix="dt" %>3. <html>4. <head>5. <title>6. welcome7. </title>8. </head>9. <jsp:useBean id="ses_userBean" scope="session" class="bookstore.User" />10. <jsp:setProperty name="ses_userBean" property="*" />11. <body bgcolor="#ffffff">12. <h1>13. JBuilder Generated JSP14. </h1>15. </body>16. </html>  在向导第2步所引用的标签库设置对应第2行的引用标签库声明代码。而在第3步中设定的Bean对应第9~10行代码,因为在welcome.jsp中无需填充Bean的值,所以应该手工去除第10行的代码。  下面我们在welcome.jsp文件中引用datetime标签库,用它生成一个当前时间格式化串。打开welcone.jsp文件并切换到Source视图页中。首先清除<body></body>中JBuilder所产生的代码,在<body></body>中输入"<dt:",JBuilder将使用TagInsight功能显示出这个标签库中所有可用的标签项,如下图所示:                图 24 利用TagInsight录入标签库  使用TagInsight可以非常方便地录入标签库中的可用标签,大大加速标签库的代码录入并保证正确性。在welcome.jsp中我们使用标签库获得一个当前的格式化时间串,此外我们还通过ses_userBean获取用户的名字。welcome.jsp的最终代码如下所示:  代码清单 16 welcome.jsp 引用标签库和Session对象 1. <%@page contentType="text/html; charset=GBK" errorPage="error.jsp"%>2. <%@taglib uri="" prefix="dt"%>3. <html>4. <head>5. <title>welcome</title>6. </head>7. <jsp:useBean id="ses_userBean" scope="session" class="bookstore.User"/>8. <body bgcolor="#ffffff">你是9. <%=ses_userBean.getUserName()%>,欢迎登录。<br>10. 现在的时间是<dt:表单at pattern="MM/dd/yyyy hh:mm"><dt:currentTime/></dt:表单at>11. <br>点击<a href="quit.jsp">这儿</a>退出系统12. </body>13. </html>  此外,JBuilder将datetime标签库描述文件taglibs-datetime.tld拷贝到WEB-INF下,并对web.xml文件动了手脚,声明taglibs-datetime.tld所在的地址:  代码清单 17 web.xml中声明标签描述文件 1. <?xml version="1.0" encoding="UTF-8"?>2. …3. <web-app>4. <taglib>5. <taglib-uri></taglib-uri>6. <taglib-location>/WEB-INF/taglibs-datetime.tld</taglib-location>7. </taglib>8. </web-app>  如上所示,web.xml的第4~7行,JBuilder自动加入了datetime标签库的描述文件,以便Web容器正确找到所需的信息。  在编译工程生成Web目录时,JBuilder会将datetime标签库的JAR文件taglibs-datetime.jar拷贝到WEB-INF/lib目录下。  当用户登录成功后,将转向welcome.jsp页面,其页面效果如下图所示: 图 25 welcome.jsp效果页面  当用户点击"这儿"的链接时,将链接到quit.jsp,quit.jsp页面负责清除session,清除session后,将引用session中的对象解绑并释放资源。   quit.jsp退出处理页面  由于HTTP协议以请求/响应的方式工作,所以客户端退出系统时需要主动往Web服务器发送一个请求,通知Web服务器及时销毁会话,否则Web服务器只会等到会话过期时才会销毁它。  我们用一个quit.jsp来处理用户退出系统的操作,quit.jsp负责注销session,及时释放资源。  ·注销session。  ·关闭浏览器窗口。  其代码如下所示: 1. <%@ page contentType="text/html; charset=GBK" %>2. <%3.  session.invalidate();4. %>5. <script language="javaScript" >6.  window.opener = null;7.  window.close();8. </script>  其中第3行负责注销session,原先放入session的对象将解绑定,等待垃圾回收以释放资源。对于本例而言,session中有一个名为ses_userBean的userBean对象(它是在switch.jsp中放入session的),调用session.invalidate()后,userBean从session中解绑定,它的valueUnbound()方法会被触发调用,然后再等待垃圾回收。  第5~8行是一段JavaScript脚本程序,负责关闭窗口,如果网页不是通过脚本程序打开的(window.open()),调用window.close()脚本关闭窗口前,必须先将window.opener对象置为null,如第6行所示,否则浏览器会弹出一个确定关闭的对话框,笔者发现这个问题困扰了不少的Web程序员,故特别指出。   实战经验:  在用户退出系统时,需要注销session,否则只有等到session在服务器中过期后,session对象才会被清除。假设一个session的不活动最大时间为30分钟(默认的时间),如果不手工清除session对象,则当一个用户退出系统后再过30分钟,这些对象所占用的系统资源才会被释放。 下载本文示例代码


JBuilder2005实战JSP之特殊页面JBuilder2005实战JSP之特殊页面JBuilder2005实战JSP之特殊页面JBuilder2005实战JSP之特殊页面JBuilder2005实战JSP之特殊页面JBuilder2005实战JSP之特殊页面JBuilder2005实战JSP之特殊页面JBuilder2005实战JSP之特殊页面JBuilder2005实战JSP之特殊页面JBuilder2005实战JSP之特殊页面JBuilder2005实战JSP之特殊页面JBuilder2005实战JSP之特殊页面JBuilder2005实战JSP之特殊页面JBuilder2005实战JSP之特殊页面JBuilder2005实战JSP之特殊页面
阅读(103) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~