servlet 第五讲 笔记 续

 

2.更高层的函数包装

也就是面向对象的思想,将操作数据库 和 操作数据 以及显示页面完全分开,这样将底层隔离开来,让下一次使用同一操作的时候可以不用麻烦的再次写太多代码。

 

首先是登录的分离,思想是:在一个类中函数中实现将数据取出来进行比对,再在显示页面调用比对的函数,代码整洁清晰。

 

 

  • 下面是userbeancl 中的checkuser函数,比对用户密码
  • //处理类,用来处理user表,主要操作userbean
  • //业务逻辑在这
  • package com.prince;
  • import java.util.*;//ArrayList所在
  • import java.sql.*;
  • public class userbeancl {
  • mySqlConnection msc=null;
  • ResultSet rs=null;
  • public boolean checkuser(String u,String p){//从数据库中取密码核对
  • boolean b=false;
  • try{
  • msc=new mySqlConnection();
  • rs=msc.EQ("select passwd from mydb.users where usernames='"+u+"' limit 1");
  • //System.out.println(rs.next()+"123");
  • if(rs.next()){
  • String passdb=rs.getString(1);// 数据库取得的密码
  • System.out.println(passdb);
  • if(passdb.equals(p)){
  • b=true;
  • }
  • }
  • }catch(Exception e){}
  • finally{// 每次 查询完都要关闭ResultSet和mySqlConnection连接,以防连接悬空
  • try {
  • rs.close();
  • msc.close();
  • catch (SQLException e) {
  • // TODO Auto-generated catch block
  • e.printStackTrace();
  • }
  • }
  • return b;
  • }
  • }

 

在登录处理的函数中调用上面的比对函数

 

  • userbeancl ubcl=new userbeancl();//将userbeancl实例化
  • boolean check=ubcl.checkuser(u, p);//调用其中的checkuser函数

 

 

另外将显示表格的函数也分离开来:

 

 

  • //这个类中放置wellcome页面的表格显示
  • package com.prince;
  • import javax.servlet.http.*;
  • import java.sql.*;
  • import java.io.*;
  • public class TableShow {
  • public void page_devided(PrintWriter pw,HttpServletRequest req){
  • int pageSize=3;//每页多少条
  • int pageNow=1;//当前显示页数
  • int pageCount=0;//一共多少页,计算得到
  • int rowCount=0;//一共多少记录, 从数据库查
  • //动态接收pageNow,来跳转表格页面
  • String spageNow=req.getParameter("pagenow");
  • System.out.println("当前表格页面:"+spageNow);
  • if(spageNow!=null){
  • //用户不是第一次进入
  • pageNow=Integer.parseInt(spageNow);
  • }
  • mySqlConnection msc=new mySqlConnection();
  • String sql="select count(*) from mydb.users";
  • ResultSet rs=msc.EQ(sql);
  • try {
  • if(rs.next()){
  • rowCount=rs.getInt(1); //得到记录的条数
  • }
  • catch (SQLException e) 
  • e.printStackTrace();
  • }
  •  
  • if(rowCount%pageSize==0){//总数除以每页数是否整除,求总页数
  • pageCount=rowCount/pageSize;
  • }else{
  • pageCount=rowCount/pageSize+1;
  • }
  • rs= msc.EQ("select from mydb.users "+
  • "where ID not in "+
  • "(select t.ID from (select from mydb.users limit "+pageSize*(pageNow-1)+")as t) limit "+pageSize);
  • //用limit的not in 排除掉当前页面前的数据,再取limit
  • try {//打印表格
  • pw.println("");
  • pw.println("    ");//表头
    IDNAMEPASSWD
  • while(rs.next()){
  • pw.println("");//每一个tr是为一行
  • pw.println("");//ID
    "+rs.getInt(1)+"
  • pw.println("");//用户
    "+rs.getString(2)+"
  • pw.println("");//密码
    "+rs.getString(3)+"
  • pw.println("");
  • }
  • pw.println("");
  • //控制页面的超链接
  • if(pageNow>1){
  • pw.println("+(pageNow-1)+">上一页");
  • }
  • for(int i=pageNow;i<=pageNow+4;i++){
  • pw.println("+i+">"+i+"");
  • }
  • if(pageNow<=pageCount){
  • pw.println("+(pageNow+1)+">下一页");
  • }
  • catch (SQLException e) 
  • e.printStackTrace();
  • }
  • }
  • }

 

 

第六讲 servletContex ,操作文件,网站计数器

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值