JBuilder2005实战JSP之登录页面(2)
2008-02-23 09:25:46来源:互联网 阅读 ()
目前创建的login.JSP有一个缺陷,假设在数据库后台T_USER表中添加其他的用户时,因为用户名下拉框是静态的代码,新创建的用户并不会出现在页面中,因此有必要将用户名列表改为动态的代码,用数据库表T_USER的记录动态产生下拉框的数据。
我们通过UserList.ava类来完成这个工作,在工程中创建UserList.Java,其代码如下:
代码清单 5 UserList.java
1. package bookstore;
2. import java.sql.*;
3.
4. public class UserList
5. {
6. //获取HTML下拉框的用户列表代码
7. public static String getUserListHTML() {
8. Connection conn = null;
9. StringBuffer sBuf = new StringBuffer();
10. try {
11. conn = DBConnection.getConnection();
12. PreparedStatement pStat = conn.prepareStatement(
13. "select USER_ID,USER_NAME from T_USER");
14. ResultSet rs = pStat.executeQuery();
15. while (rs.next()) {
16. sBuf.append("<option value='" rs.getString("USER_ID") "'>"
17. rs.getString("USER_NAME") "</option>\n");
18. }
19. return sBuf.toString();
20. } catch (SQLException ex) {
21. ex.printStackTrace();
22. return "";
23. } finally {
24. try {
25. if (conn != null) {
26. conn.close();
27. conn = null;
28. }
29. } catch (SQLException ex1) {
30. }
31. }
32. }
33. }
UserList.java只提供了一个静态的getUserListHTML()方法,这个方法从后台数据库的T_USER表中获取用户记录,并生成HTML的select组件的选项代码,如第16~17行所示。
在创建这个类后,我们引用该类调整login.jsp的代码,首先在page指令标签中通过import属性引用UserList类,然后将select选项中的内容调整为getUserListHTML()方法返回的值,如下图所示:
图 7 通过CodeInsight编写代码
通过表达式标签替换原静态的HTML代码,值得提起的是,在JSP中也可以象在编写一般的Java类中一样使用CodeInsight输入代码。调整后的login.jsp的代码如下所示,用粗体表示:
代码清单 6 调整后的login.jsp代码
1. <%@page contentType="text/html; charset=GBK" import="bookstore.UserList"%>
2. <html>
3. <head>
4. <title>login</title>
5. </head>
6. <body bgcolor="#ffffff">
7. <表单 name="表单1" method="post" action="switch.jsp">用户名:
8. <select name="userId">
9. <option value="" selected>--登录用户--</option>
10. <%=UserList.getUserListHTML()%>
11. </select>
12. 密 码:<input name="password" type="password">
13. <input type="submit" name="Submit" value="登录">
14. </表单>
15. </body>
16. </html>
保存login.jsp后,在内容窗格login.jsp文件标签中点击右键,选择Web Run using Defaults,JBuilder 将启动Tomcat 5.0应用服务器,运行于8080端口上,编译并运行login.jsp文件,如下图所示:
图 8 在JBuilder中运行login.jsp
JBuilder自动切换到Web View视图页中,显示页面的运行效果。但JBuilder的浏览器对网页的支持效果很弱,也不支持JavaScript脚本。所以在运行login.jsp后,最好通过IE来查看网页的效果,你只需要打开IE,并将JBuilder中的访问login.jsp的地址拷贝到IE的地址栏中就可以了,如下图所示:
图 9 用IE访问JBuilder中运行的login.jsp
此时用户名的下拉框中的用户已经是动态的用户列表中,当T_USER表中添加、删除用户时下拉框的用户也会相应地改变。
在运行JSP前最好先单独编译一个这个JSP文件:在内容窗格的JSP文件标签上点击右键,在弹出的菜单中选择make "xxx.jsp",即可完成对JSP文件的编译,及时发现错误。JSP文件和Java文件在编辑时,最大的区别是Java程序文件一有错误就会在编辑器和结构窗格中列出,但JSP文件的有些错误需要通过编译才能发现。
提示:
由于编译JSP文件需要先将其转换为Servlet文件,然后再编译这个中间Servlet文件,发生错误后转定向到JSP文件中,所以编译一个JSP文件是比较耗时的,往往比编译一个Java文件要花好几倍的时间。在默认的情况下,编译一个工程时,会编译整个工程中所有的JSP,需要消耗大量的时间。所以最好取消在编译工程连带编译JSP文件的设置:通过Project->Project Properties...->Build-> 在Build设置页中取消Check JSPs for errors at build-time选项。在确实需要的时候再勾选这个选项,并在编译后及时取消这个选项。通过这样的设置将可以为你的开发赢得不少宝贵的时间。
上一篇: JAVA内存泄漏,走开!
下一篇: Web应用中Java的速度真相探讨
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- JBuilder2005实战JSP之登录页面(1) 2008-02-23
- JBuilder2005实战JSP之登录页面 2008-02-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash