站长中国
设为首页 | 站长论坛

站长论坛 站长下载
您所在的位置: 站长中国 > 站长学院 > 网络编程 > JSP专区 >  正文

JBuilder2005实战JSP之登录页面(2)
  2008年02月22日23:52:33  评论(0条) 字体:[ ]
相关热点: 页面 登录 实战 JSP 代码 login.jsp 编译
  通过File->New...->Web->双击JSP图标,弹出创建JSP向导的对话框,如下图所示:


图 3 通过向导创建login.jsp
  ·Web module:如果一个工程下有多个Web模块,你可以通过这儿指定JSP所要加入到的Web模块,因为我们的工程中只有一个webModule,所以是向导将默认设置为webModule。

  ·Name :键入JSP文件名,你可以键入.jsp后缀,也可以不写后缀,直接键入login就可以了。

  Generate sample bean选项勾选后JBuilder将生成一个示例的Bean并在JSP中引入这个Bean。对于初学者来说,可以通过该选项查看JSP如何引用一个Bean,而Generate error page选项将自动为JSP创建一个配套的错误处理JSP文件,这里,我们不勾选它们。

  直接点击Finish创建login.jsp,login.jsp文件出现在内容窗格的编译器中,如下图所示:


图 4 向导创建的JSP文件
  JSP编译窗口的左右两边都有一个可以通过 按钮控制的竖栏,左边栏为放置JSP标签和HTML标签的面板,可以像可视化UI设计器中一样用拖拽方式往JSP文件中放置各种标签,如上图中,我们从面板中选择表单的HTML标签放置到login.jsp文件中。

  而右边竖栏中是JSP文件中当前光标所在标签的属性编译器,如下图所示:


图 5 设置JSP标签属性编辑器
  属性编辑器是动态的,光标移到不同的标签上,属性编辑器就显示这个标签所有可设置的属性。如上图中对应的是HTML 表单标签的属性编辑器,我们将其action属性设置为switch.jsp,指定用POST方式发送请求数据。

  我们在login.jsp中提供一个用户名下拉框、一个密码输入框以及一个登录提交按钮,其代码如下:

  代码清单 4 login.jsp

1. <%@page contentType="text/html; charset=GBK" %>
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. <option value="100000">姜子牙</option>
11. <option value="100001">鲍叔牙</option>
12. <option value="100002">竖牙</option>
13. </select>
14. 密 码:<input name="password" type="password">
15. <input type="submit" name="Submit" value="登录">
16. </表单>

17. </body>
18. </html>
  表单标签代表网页中的一个表单,表单可以包含多个组件,这些组件的数据在网页表单提交后,以HTTP协议发送给action属性所指定的JSP文件处理。表单的数据一般以POST发送,POST发送方式对数据量的大小没有限制,且保密性更强。

  login.jsp的效果页面如下图所示:


图 6 login.jsp录入页面
  实战经验:

  JSP文件代码包含静态和动态两部分,即一部分是HTML代码,而另一部分为JSP标签和Scriptlet代码。JSP一般是动态逻辑的网页,JBuilder对JSP标签及Scriptlet这些动态代码部分支持得非常好,你可以使用CodeInsight和TagInsight等工具快速而正确地完成编码,同时还可以对JSP进行编译调试。在JSP静态HTML代码编写及可视化设计方面,JBuilder却显得力不从心,Dreamweaver在静态代码和可视化设计方面明显优于JBuilder。
  事情的复杂促进了分工,分工的精细促进了专业的发展,在编写JSP时,并不是一旦拥有JBuilder就别无所求了。韩信善兵、萧何善谋,如果能够将Dreamweaver和JBuilder结合起来,用Dreamweaver开发JSP的可视化部分,用JBuilder开发JSP的动态代码部分,两者互补有无,相得益彰,JSP开发工作将变得更加行云流水。

  将用户列表改为动态

  目前创建的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选项。在确实需要的时候再勾选这个选项,并在编译后及时取消这个选项。通过这样的设置将可以为你的开发赢得不少宝贵的时间。
责任编辑:

收藏本文 打印 打印本文  推荐本文 告诉好友 投稿 投稿邮箱

站长排行

学院

新闻

专栏

盈利

[揭密网络黄链]中国留学生买凶专破日本
JSP语法(6)
超强弹出窗口代码,什么都挡不住
FLASH视觉特效实例之地震效果
贴吧发帖机使用教程(绝对原创)
关于数据分页(转自www.codeproject.co
ASP实现文件直接下载
Photoshop制作光感超酷效果水晶球
 遍历ASP.NET页面控件
永远的后门[经典]+查不出的后门
淘宝网卖家公然叫卖“艳照门”照片集
驳《百度Hi面世对腾讯有利》
Google绿色专家质疑黑色背景网页节省资
国内各IT企业办公环境揭秘(多图)
阿里妈妈广告卖主全攻略
站长创业源动力 主流站长站赏析
推荐阅读:80年小子的创业道理
Discuz!6.0猛将出击 最强论坛程序酷炫
我的网络,我的团队:专访李文明
百度新闻频道改版十天 流量止跌反弹翻
ECSHOP模板制作参考文档
悬挂阿里妈妈会否被百度惩罚
阿里妈妈是否是中小站长的救世主?
最强网店ECShop发新版 众多酷炫功能给
ECSHOP模板下载
土豆网,优酷网,爆米花等视频网站采集
DedeCms模板安装/制作概述
网上商店系统巅峰对决 ECShop vs ShopE
艰难的走在创业的路上 第一天
编程中国全站采集规则
性福联盟 一个不尊重站长的联盟
大脚:日赚100元—揭露最新firefox欺骗
大脚:垃圾站超级赚钱法之二—突破“站
大脚:垃圾站超级赚钱法之——前言
迅雷联盟、快车联盟收入对比
经理人必看的十个管理网站
Google Adsense的秘密 第二版
西联汇款兑付城市查询
不用SEO取得成功的10个步骤
关于做GOOGLE的五条经验
站长学院  网页设计 建站教程 图形图象 网络编程

Photoshop CS3
Photoshop CS3
不用Photoshop
不用Photoshop

DIV+CSS的开发方式 听听另外的
虚拟主机建站动易里快速生成的
VBScript特效代码 满屏幕乱跑
牛气!一个菜鸟站长的超强网站
创建、维护一个个人博客的“投
让网站流量稳步飙升的秘籍
网站推广的基本思想

新闻线索

如果你有站长界人事变动、重组并购、变革技术出现,以及产品投诉等重要新闻线索,请告诉我们,我们会给予特别关注。
0631-3653338
站长中国编辑部
站长中国24小时新闻热线: 13256307008