JBuilder2005实用JSP中切换控制的图解步骤
表单中用户名和密码组件的数据将通过HTTP请求发送到服务器的switch.jsp,服务器将信息封装在请求对象中发送到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()方法获得。另外,如果数据不是字段String类型,而是整数或浮点数,由于request.getParameter()方法返回的值都是字符串,所以需要进行类型转换,不仅繁琐,而且容易出错。JSP允许您通过Beans以映射的方式接收网页表单的数据。bean以此规则映射表单的数据:Bean属性名=表单数据组件名,即所有与Bean属性同名的表单数据字段自动填充到Bean中,数据类型转换完成。例如,有两个login.jsp形式的数据组件,一个名为userId,另一个名为password。定义一个用户名和密码属性相同的User.java Bean,这个Bean将自动接收表单中两个数据组件的值。写User.java我们首先写这个User.java豆,并在项目中创建一个User.java。代码如下:代码清单7 User.java文案代码如下:包书店;公共类用户{私有字符串用户标识;//用户Id私有字符串密码;//密码私有字符串用户名;//username公共字符串get password(){ return password;}公共字符串getUserId() {返回userId}公共字符串getUserName() {返回userName} public void set password(String password){ this . password=password;} public void setUserId(String userId){ this . userId=userId;} public void setUserName(字符串用户名){ this.userName=userName}}除了userId和password属性名称,还有一个username属性userName。该属性的值不是从login.jsp的形式接收的。当用户名密码验证无误后,从数据表的T_USER表中获取用户名并保存在这个属性中,以便其他地方可以引用、保存和编译这个类。提示:您可以通过JBuilder的Bean Express工具快速创建User.java的代码。一般来说,应该通过bean Express来创建Bean的属性,这样不仅会自动生成get/set的属性访问方式,还能保证Bean的命名标准。在创建了User.java豆之后,我们开始创建switch.jsp,并在switch.jsp引用这个豆。使用文件->新建.-> web->双击JSP图标启动创建JSP向导。1.指定swith.jsp(9500 . 163.com)的名称。
图10按“下一步”指定switch.jsp的名称,直到向导的第3步。2.引用User.java比恩的话。
图11。在JSP中指定引用Bean。单击添加Bean.按钮,弹出选择类别对话框。在对话框中,选择书店。用户类,如下图所示:。
图12选择一个类作为Bean,然后按OK返回到向导步骤3中的对话框。此时,对话框中的Bean列表中还有一行记录。您可以在ID列中指定Bean的名称,并在范围中指定Bean的范围,如下图所示:。
图13指的是一个Bean。我们将用户的Bean命名为userBean,并将其范围设置为页面字段。页面域是页面范围,在当前页面的范围内可用。当JSP返回响应或者请求被转移到其他JSP页面时,它是不可用的。其他三个作用域描述如下:请求作用域:从生成请求到返回响应这段时间是有效的。例如,当a.jsp通过<。
按完成按钮创建switch.jsp文件,其代码如下:代码清单8向导创建的switch.jsp副本代码如下:% @页面内容类型=' text/html;charset=GBK ' % html head title switch/title/head JSP : usebean id=' userBean '作用域='page' class='书店。user/Jsp : set属性名称=' userBean '属性=' */body bgcolor=' # ffffff ' h1j builder生成的JSP/h1/body/html第八行是引用Bean的JSP标记。第9行:用表单的数据填充Bean的属性值,即通过名称匹配的方式将请求的参数填充到Bean的属性中,同时完成类型转换(只有基础数据类型或构造函数才能完成转换)。执行第9行后,用户Bean中的用户标识和密码属性将被设置为从login.jsp页面发送的用户名和密码的值。因为switch.jsp只用于控制,不需要向客户端显示内容,所以我们删除了switch.jsp的HTML代码,将switch.jsp调整为:代码清单9删除静态HTML代码后switch.jsp复制代码的代码如下:% @ page content Type=' text/HTML;charset=GBK ' % JSP : usebean id=' userBean '作用域='page' class='书店。USER/JSP : setproperty name=' userBean ' property=' * '/在switch.jsp提供一个Scriptlet,将userId和密码发送到数据库,与T_USER表中的用户进行对比,看他们是否是合法用户,根据验证结果翻到不同的页面。switch.jsp的最终代码如下:代码清单10 switch.jsp副本的最终代码如下:% @ page content Type=' text/html;charset=GBK“% % @ page import=”书店。* % % @ page import=' Java . SQL . * % JSP : UseBean id=' UserBean '作用域='session' class='书店。用户'/JSP : setproperty name=' userBean ' property=' */% Connection conn=null;尝试{ conn=DBconnection . GetConnection();PreparedStatement pStat=conn . PreparedStatement('从T_USER中选择USER_NAME,其中USER_ID=?和密码=?”);pStat.setString(1,userbean . getuserid());pStat.setString(2,userbean . getpassword());ResultSet RS=pstat . execute query();If (rs.next()) {//密码正确userbean . setusername(RS . getstring(1));//设置用户名session . setattribute(' ses _ user bean ',user bean);//将userBean放入Session对象% JSP : forward page=' welcome . JSP '/JSP : forward % } else {//密码错误% JSP : forward page=' fail . JSP '/JSP : forward % } }最后{if (conn!=null)conn . close();}%在第2~3行介绍Scriptlet代码中需要的类。7~14行代码向数据库发送查询SQL语句并返回结果。第15行通过检查结果集中的记录数间接判断用户密码是否正确。第16~18行是正确用户密码的响应代码。首先,用结果集的用户名属性填充用户Bean的用户名属性值,然后将用户Bean对象放入会话,最后转到welcome.jsp页面。当用户输入的密码不正确时,结果集中不会有记录。此时,rs.next()返回false,程序转到第20行。第20行中的代码将页面转至fail.jsp,用于处理密码输入错误。22~24行代码用于关闭数据库的连接。也许你已经发现,虽然第9-21行抛出了SQLException异常,但是我们没有对应的异常捕获块,这将导致标准Java程序出现编译时错误,但是可以在JSP中顺序编译,因为JSP页面本身会捕获页面中抛出的所有异常。假设第11行的SQL查询语句中有一个错误,例如,user表的名称被错误地写成了User(正确地说是T_USER)。当调用switch.jsp时,将在第14行抛出一个SQLException异常。此时,异常堆栈跟踪的跟踪信息页面将显示在switch.jsp,如下图所示:。
图14可怕的错误处理页面上图所示的错误处理页面可以用绿脸、狰狞、不友好来形容。对于开发人员来说,这个错误报告页面可能是合适的,因为它提供了大量的错误跟踪信息,但是最终用户不可能接受这个粗鲁的错误页面。您可以通过<% @ pageerrorpage% >为页面指定专门处理错误的JSP页面,以便以友好直观的方式显示错误。在下一节中,我们将创建一个用于错误处理的JSP页面。创建之后,我们将为switch.jsp指定一个错误处理JSP页面。
版权声明:JBuilder2005实用JSP中切换控制的图解步骤是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。