JBuilder2005实战JSP之切换控制 图文步骤

建站知识 2025-04-20 13:27www.168986.cn长沙网站建设

用户在login.jsp页面填写表单时,包括用户名和密码等重要信息。当他们选择登录并提交了表单,客户端会向服务器发送一个HTTP请求。此刻,服务器接收到请求后,会调用switch.jsp来响应这个请求。

表单中的用户名和密码数据通过HTTP请求被传递到服务器的switch.jsp页面。这些数据被服务器封装在request对象中,然后switch.jsp页面可以通过request.getParameter方法来获取这些数据。比如获取用户名的代码为:String userId = request.getParameter("userId");获取密码的代码为:String password = request.getParameter("password");

如果login.jsp表单中有超过十个数据组件,那么逐个使用request.getParameter方法获取值可能会变得非常繁琐且容易出错。由于request.getParameter返回的都是字符串类型,对于非字符串类型的数据,如整数或浮点数等,还需要进行额外的类型转换。这样的操作无疑增加了工作量。

JSP提供了一种更简洁的方式来处理表单数据,那就是通过Bean映射。遵循特定的规则:Bean的属性名与表单的数据组件名相对应。这意味着所有与Bean属性名相同的表单数据域会自动填充到Bean中,并且自动完成数据类型的转换。这大大提高了开发效率和准确性。

例如,在login.jsp的表单中有两个数据组件:一个是userId,另一个是password。如果我们创建一个User类,其中包含了相同的属性userId和password,那么这个Bean将能够自动接收这两个表单数据组件的值。接下来让我们看一下如何创建这个User Bean和如何使用它。

我们需要编写User.java这个Bean。在工程中创建User.java文件,其代码如下所示:

除了userId和password属性外,我们还添加了用户名属性userName。这个属性的值不是在login.jsp的表单中接收的,而是在用户名和密码验证通过后,从数据表T_USER表中获取并保存的。这样其他地方就可以引用这个用户名了。保存并编译这个类。

接下来是创建switch.jsp页面程序的部分。在创建了User.java Bean之后,我们就可以在switch.jsp中引用这个Bean了。通过JSP向导创建switch.jsp页面,并在其中引用User Bean。具体的操作步骤如下:指定switch.jsp的名字(如图10所示),然后在页面中使用这个Bean来处理表单数据。这样,我们就可以轻松地从表单中获取数据,并进行后续的处理了。

引用User.java Bean在JSP中的步骤

在JSP开发中,引用User.java Bean是一个常见的操作。以下是具体步骤:

一、选择并引用Bean

点击“Add Bean...”按钮,弹出“Select a Class”对话框。在对话框中,选择“bookstore.User”类。选中后,你会看到一个新的选项出现在向导的第三步对话框中。你可以在ID栏为Bean指定一个名字,并在Scope中指定Bean的作用域。

例如,我们为User的Bean取名为“userBean”,并将其作用域设置为“page域”。这意味着这个Bean只在当前页面作用域内可用。当JSP返回响应或请求转到其他JSP页面时,这个Bean将不再可用。除此之外,还有request作用域、session作用域和application作用域。

二、设置运行配置项

在向导的最后一步,你可以选择为创建的JSP产生一个运行配置项。虽然向导会创建一个默认的运行配置项,但建议取消“create a runtime configuration”设置项,不要为JSP创建运行配置项。

三、创建switch.jsp文件

当你完成以上步骤后,点击“Finish”按钮创建switch.jsp文件。原始的switch.jsp文件包含HTML代码和JSP标签。其中,第8行是引用Bean的JSP标签,第9行用于以表单的数据填充Bean的属性值。

但实际上,switch.jsp主要用于控制,并不需要显示内容到客户端。我们可以去除HTML代码,只留下与Bean处理和验证相关的JSP代码。

调整后的switch.jsp文件代码如下:

```jsp

<%@ page contentType="text/html; charset=GBK" %>

```

最终版本的switch.jsp代码展示

在这段JSP代码中,我们看到了一个完整的switch.jsp页面生命周期,涵盖了从数据库连接、查询、结果处理到页面跳转的全过程。代码以特定的格式呈现,保持了原有的风格特点。下面是详细解读:

在代码的第2至第3行,引入了必要的类库,为后续的数据库操作提供了基础。接下来的部分,我们看到了一段典型的JSP与数据库交互的代码片段。通过连接数据库,执行一个预编译的SQL查询语句,查询特定用户ID和密码的用户信息。这个过程在第7至第14行详细展示。

代码的核心逻辑在于第15行,通过检查查询结果集的记录数来判断用户密码是否正确。如果用户密码正确(即结果集有记录),代码将在第16至第18行执行,设置用户名为结果集的USER_NAME属性值,并将userBean对象存入Session中,然后页面跳转到wele.jsp页面。这是一个典型的用户验证流程。

如果用户输入的密码不正确,结果集中将没有记录,此时rs.next()返回false,程序将跳转到第20行。第20行的代码将页面转向到密码输入错误的处理页面fail.jsp。这是一个友好的错误处理机制,引导用户重新输入正确的密码。

值得注意的是,尽管第9至第21行的代码可能会抛出SQLException异常,这在标准的Java程序中会导致编译错误,但在JSP页面中却可以顺利通过编译。这是因为JSP页面本身会捕获页面中抛出的所有异常。如果SQL查询语句出现错误(例如表名误写),switch.jsp页面将显示异常堆栈跟踪信息的页面,这对于开发人员来说是有用的,因为它提供了详细的错误跟踪信息。

对于最终用户来说,这种包含大量技术细节的错误页面可能不够友好。为了解决这个问题,JSP允许我们通过<%@ page errorPage%>标签为页面指定一个专门的错误处理JSP页面。在下一个部分中,我们将创建一个用于处理错误的JSP页面,并为switch.jsp指定这个错误处理页面,以提供更友好、直观的错误展示形式。这将大大提高用户体验,使得错误处理和反馈更加人性化。让我们期待这个改进!

上一篇:jQuery Easyui Treegrid实现显示checkbox功能 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by