欢迎光临
我们一直在努力

JBuilder2005实战JSP之登录页面(2)-JSP教程,Jsp/Servlet

建站超值云服务器,限时71元/月

将用户列表改为动态

  目前创建的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()方法返回的值,如下图所示:

JBuilder2005实战JSP之登录页面(2)-JSP教程,Jsp/Servlet
图 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文件,如下图所示:

JBuilder2005实战JSP之登录页面(2)-JSP教程,Jsp/Servlet
图 8 在jbuilder中运行login.jsp

  jbuilder自动切换到web view视图页中,显示页面的运行效果。但jbuilder的浏览器对网页的支持效果很弱,也不支持javascript脚本。所以在运行login.jsp后,最好通过ie来查看网页的效果,你只需要打开ie,并将jbuilder中的访问login.jsp的地址拷贝到ie的地址栏中就可以了,如下图所示:

JBuilder2005实战JSP之登录页面(2)-JSP教程,Jsp/Servlet
图 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选项。在确实需要的时候再勾选这个选项,并在编译后及时取消这个选项。通过这样的设置将可以为你的开发赢得不少宝贵的时间。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » JBuilder2005实战JSP之登录页面(2)-JSP教程,Jsp/Servlet
分享到: 更多 (0)