JBuilder2005实战JSP之切换控制(3)

2016-01-29 12:06 3 1 收藏

JBuilder2005实战JSP之切换控制(3),JBuilder2005实战JSP之切换控制(3)

【 tulaoshi.com - Java 】

    由于在login.jsp的表单中通过action属性指定switch.jsp为响应的JSP文件,当用户在login.jsp中选定登录用户,输入密码提交表单后,客户端将向服务器发送一个HTTP请求,服务器即调用switch.jsp来响应这个请求。

  表单中用户名和密码两组件的数据将通过HTTP请求传给服务器的switch.jsp,服务器将这些信息封装在request对象中传给switch.jsp,所以switch.jsp可通过request.getParameter(String paraName)来获取这两个值。

String userId = request.getParameter("userId");
String password = request.getParameter("password");
  试想如果login.jsp的表单有10个以上的数据组件,则在switch.jsp中必须通过相应数目的request.getParameter()方法获取其值。此外,如果这些数据不是字段串类型,而是整数或浮点数,由于request.getParameter()方法返回的值都是String,还必须进行类型的转换,这种工作不但单调乏味,还容易出错。

  JSP允许你通过Bean以映射的方式接收网页表单的数据,Bean以这个规则映射表单的数据:Bean属性名=表单数据组件名,也即所有和Bean属性名相同的表单数据域被自动填充到Bean中,并且完成数据类型的转换。如login.jsp的表单中有两个数据组件,一个名为userId,另一个是password,定义一个拥有相同名的userId和password属性的User.java Bean,这个Bean将可以自动接收表单中的两个数据组件值。

  编写User.java

  我们先来编写这个User.java的Bean,在工程中创建User.java,其代码如下所示:

  代码清单 7 User.java

1. package bookstore;
2.
3. public class User
4. {
5. private String userId;//用户Id
6. private String password;//密码
7. private String userName;//用户名
8. public String getPassword() {
9. return password;
10. }
11. public String getUserId() {
12. return userId;
13. }
14. public String getUserName() {
15. return userName;
16. }
17. public void setPassword(String password) {
18. this.password = password;
19. }
20. public void setUserId(String userId) {
21. this.userId = userId;
22. }
23. public void setUserName(String userName) {
24. this.userName = userName;
25. }
26. }
  除userId和password两属性名,还有一个用户名属性userName,这个属性的值不是从login.jsp的表单接收的,当用户名密码验证正确后,从数据表T_USER表中获取用户名保存在这个属性中,以便其他地方引用,保存并编译这个类。

  提示:

  你可以通过JBuilder的Bean Express工具快速创建User.java的代码,在一般情况下,你应该通过Bean Express来创建Bean的属性,这样不但自动产生get/set的属性访问方法,还保证了Bean命名规范。

  编写页面程序

  在创建User.java 的Bean后,我们着手创建switch.jsp,在switch.jsp中引用这个Bean。

  通过File->New..->Web->双击JSP图标启动创建JSP向导。

  1.指定swith.jsp名字


图 10 指定switch.jsp的名字
  一直按Next到向导的第3步。

  2.引用User.java Bean


图 11 指定JSP中引用Bean
  点击Add Bean...按钮,弹出Select a Class对话框,在对话框中选择bookstore.User类,如下图所示:


图 12 选择类作为Bean
  按OK后,返回到向导第3步的对话框,此时对话框的Bean列表中多了一行记录,可以在ID栏中为Bean指定一个名字,在Scope中指定Bean的作用域,如下图所示:

来源:http://www.tulaoshi.com/n/20160129/1484633.html

延伸阅读
Struts是基于Model 2实现的技术框架,Model 2是经典的MVC(Model,View,Control)模型的Web应用变体,这个改变主要由于HTTP协议的无状态性引起的。Model 2的目的和MVC一样,也是利用控制器来分离模型和视图,达到不同层间松散耦合的效果,提高系统灵活性、复用性和可维护性。在多数情况下,你可以将Model 2与MVC等同起来。 图 1表示一...
标签: Web开发
有句英语谚语叫作"Look before you jump",在着手重构前,看看这个更改的影响度,以资决策,是一个不错的主意。 1、查看定义 程序类之间是相互调用的,JBuilder可以方便你查看类、方法、值域的定义,将光标置于某一代码元素上,按Ctrl+Enter快捷键或点击右键,在弹出的菜单中选择Find Definition,JBuilder将定位到该元素的定位处...
标签: Java JAVA基础
简单的框架 JUnit是由Erich Gamma和Kent Beck开发的开源测试框架,JBuilder集成了这个框架并对此做了扩展。JUnit之所以流行并为广大的开发人员所推崇,一是因为它实战性强,功能强大,二是因为它实在简单。一个产品或框架要能有生命力,最好都具备这样的特点。 简单地讲这个框架提供了许多断言(assert)方法,允...
Web应用服务器会产生各种事件,如Web容器启动事件、session过期事件、请求到达事件等等。我们已经在《JBuilder 2005实战jsp开发》中阐述了这些事件的接口,事件处理方法使程序对Web应用服务器的控制能力大为提高。 !-- frame contents -- !-- /frame contents -- 在这一节里,我们监听Web容器启动关闭的事件,在事件发生时记录We...
标签: Java JAVA基础
在测试用例中通过setUp()、tearDown()创建测试固件,只能使这个测试固件在单个测试用例的不同测试方法中共用,如果有多个测试用例都需要使用相同的测试固件,就需要将测试固件抽取到一个独立的类中。JBuilder提供了3个预定义的测试固件类,它们分别是: ·JDBC测试固件(JDBC Fixture):用于获取数据库连接的测试固件,用...