关于Servlet的model1模式与MV模式简单示例

本文通过一个登录示例,介绍了Servlet的Model1模式及其存在的问题,如代码重复和可维护性差。然后,文章详细讲解了如何过渡到Model2模式,通过创建分层架构,包括ConnDB数据库连接类、UserBean模型类和UserBeanDL数据访问层,提高了代码的可读性和维护性。此外,还讨论了在分页显示时的数据库查询优化策略。
摘要由CSDN通过智能技术生成

以登录为例吧。。。。。

三个页面:login.java和welcome.java和loginDL.java

当然,在配置文件中把这三个servlet先写好。。。其中,login.java中是用于显示出登录的界面,action=loginDL  

然后,在loginDL中对用户名和密码进行验证,如果正确,则跳转到welcome.....在welcome中,对数据库数据进行分页显示


对于分页,最快的方法是select * from tableName where id between ? and ?

但是,如果在结果集中有记录被删除时,那么就会有的显示页不能显示出我们想要的条目数

因此我们的解决方法是:

select top pageSize 字段名列表  from 表名  where id not in
(select top pageSize*(pageNow-1) id from 表名 )


当然,这个方法只对mysql数据库有效,对于Oracle,想都不用想,就是三层的select的语句了。。。。

“select a2.*,rownum rn from (select a1.*,rownum rn from (select * from shunping2) a1 where rownum<=" + end + ") a2 where rn>=" + start;

pw.print("<a href=login/welcome.jsp?pageNow=" + (pageNow-1) +">" + "(上一页)" + "</a>");



把界面和业务逻辑放在一起(Model1模式),[只有login,loginDL,welcome页面],有许多不合理的地方
如:
1.在loginCL.java和welcome.java中都操作了数据库,逻辑相似,有重复代码
2.整个框架没有清晰的层次,显得很乱
3.可读性差,维护性差


进行改进 :
1.进行分层,mv模式  model+view
2.将常用代码进行封装到类中


首先,从数据库中得到连接(封装类):
ConnDB.java中:
package com.steptwo.hsp;
import java.sql.*;


public class ConnDB {
private Connection conn = null;
public Connection getConn(){
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","seven","angus");
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
}

建立Model层,它对应数据库中的一条记录:
UserBean.java
package com.steptwo.hsp;
public class UserBean {
private int userId;
private String userName;
private String mail;
private int age;
<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值