JSP到MVC开发模式的转变(1)

1、  JSP开发模式

 

在传统的JSP应用的,大量表单数据的提交都是通过request.getParameter()方法获得的,如有下面这样一个表单:

<form action="login_validate.jsp" method="post">

           <table border="0" cellspacing="0" cellpadding="3">

                    <tr>

                             <td colspan="2" align="center">用户登录</td>

                    </tr>

                    <tr>

                             <td>登陆名:</td>

                             <td><input type="text" name="id"></td>

                    </tr>

                    <tr>

                             <td>密码:</td>

                             <td><input type="password" name="password"></td>

                    </tr>

                    <tr>

                             <td colspan="2" align="center">

                                       <input type="submit" value="登陆">

                                       <input type="reset" value="重置">

                             </td>

                    </tr>

           </table>

</form>

 

在处理表单数据的login_validate.jsp页面中就要使用如下方式获取数据:

<%

           //接受请求的内容

           String id = request.getParameter("id");

           String password = request.getParameter("password");

%>

 

         而对与需要与数据进行交互的系统,如以上需要到数据库中验证用户名和密码的正确性,这就要求进行数据库驱动的加载、连接数据库、执行操作等一系列的操作,如:

<%            

                   //数据库驱动

                   String dbDriver = "org.gjt.mm.mysql.Driver";

                   //数据库连接字符串

                   String dbUrl = "jdbc:mysql://localhost:3306/test001";

                   //数据库用户名

                   String dbUName = "root";

                   //数据库用户密码

                   String dbUPassword = "root";

                   //声明一个数据库连接对象

                   Connection conn = null;

                   //声明一个数据库操作对象

                   Statement stmt = null;

                   //声明一个结果集对象

                   ResultSet rs = null;

                   //声明一个SQL语句变量

                   String sqlStr = null;

                  

                   try

                   {

                            //加载数据库驱动

                            Class.forName(dbDriver).newInstance();

                            //连接数据库

                            conn = DriverManager.getConnection(dbUrl,dbUName,dbUPassword);

                            //实例化数据库操作对象

                            stmt = conn.createStatement();

                           

                            sqlStr = "select name from person where id = '" + id + "' and password = '" + password + "'";

 

                            System.out.println(sqlStr);

                            rs = stmt.executeQuery(sqlStr);

 

                            if(rs.next())

                            {

                                     //有记录,标记为查询验证成功

                                     flag = true;

                            }

                           

                            //依次关闭

                            rs.close();

                            stmt.close();

                            conn.close();

 

 

                   }

                   catch(Exception e)

                   {

                            e.printStackTrace();

 

                   }

         %>

 

         然后再根据查询结果,判断下一步的操作,如下:

 

         <%

                   //判断用户名和密码是否合法

                   if (flag)

                   {

                            //合法,跳转到成功页面

         %>

                   <jsp:forward page="login_success.jsp" />

         <%

                   }

                   else

                   {

                            //非法,跳转到失败页面

         %>

                   <jsp:forward page="login_failure.jsp"/>

         <%

                   }

         %>

 

         这样的一套过程下来,在JSP页面中大量的嵌入了Java语言,使系统的表现层页面、控制层管理、逻辑业务层的操作紧密耦合在一起,对复杂系统的开发与维护带来了很大的不变。而且对于一个大型的系统,有很多西方都需要连接数据库进行操作,这就需要在每个地方都嵌入相同的打开数据库的Java代码,如果数据库的信息发生了改变,就需要对每一个文件都进行一次修改,这样的工作量可想而知,有可能是上万个页面的代码需要修改。

         所以我们可以根据实际的业务情况,将对数据库的操作剥离出来,形成一个独立的模块,供使用它的地方进行调用,这就是下面要提到的Dao+Factory的模式。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值