MVC架构模式与利用JAVABEAN分页!(原创)

原创 2004年06月28日 13:44:00

众所周知MVC不是设计模式,是一个比设计模式更大一点的模式,称作设计模式不合理,MVC模式应该叫架构模式,MVC里面用了许多小的模式,例如策略模式,组合模式,聚集模式,可以用到的模式有十几种之多,而设计模式里也就27种,MVC很重要,现在流行的STRUTS框架也是类似的实现,建议大家有时间可以研究下STRUTS,现在很多公司都开始使用这个框架来做大型的企业系统开发,STRUTS是APACHE的一个开源项目,所有资料都可以从APACHE网站得到。当然目前国内也有翻译了一些STRUTS文章,不过大都不完整,介绍的都是初级的知识,如果想要进一步学习的话可以买本STRUTS的书.

mvc也就是模型-视图-控制台,M就是javabean,V就是JSP,C就是java Servlet。


第一步写Hashtable类,把所有类与JSP文件路径写进这里


第二步写最抽象的接口interface,给出一个方法,例如


public void execute(HttpServlet servlet,HttpServletRequest request,HttpServletResponse response);


所有的与客户端交互的SERVLET类都必须实现这个接口的execute方法,这样才能在工厂中执行。


第三步写控制台,其实这个我觉得就是工厂模式的一种更高的工厂模式,。


根据动作来执行相应的类


WEB.XML文件只要配置一个动作就可以了,这个大家应该熟悉了吧,例如


<?xml version="1.0" encoding="ISO-8859-1"?>


<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">


<web-app>


<servlet>


<servlet-name>servlet_name</servlet-name>


<servlet-class>servlet_class_path</servlet_class>


</servlet>


<servlet-mapping>


<servlet-name>servlet_name</servlet-name>


<url-pattern>映射名</url-pattern>


</servlet-mapping>


</web-app>


方便了不少吧。不用每个类每个动作都在XML文件里加上。况且对以后功能上的增加修改都比较方便。


利用JAVABEAN分页其实很简单,但要写好写的有结构一点的话最少也需要3个类,一个BEAN类,一个处理页码等其他数据,一个得到客户端值,下面我给出一个例子,如果有什么不懂请跟贴。


简单的BEAN类


package geezer_Model.geezer_user;


public class listuser_bean {


  String name;
  String pass;


  public void setName(String name){


    this.name=name;


  }


  public void setPass(String pass){


    this.pass=pass;


  }


  public String getName(){


    return this.name;


  }


  public String getPass(){


    return this.pass;


  }


}


简单的处理分页数据的类


package geezer_Model.geezer_user;


import javax.sql.*;


import java.sql.*;


import geezer_controller.*;


import geezer_Database.getConnection;


public class listuser_page {


  public listuser_page() {



  }


  Connection conn=null;


  Statement simt=null;


  ResultSet rs=null;


  int intpage=1;


  int intpagecount=10;


  int pagecount=20;


  int page_listcount=1;


  String sql;


  public listuser_bean[] getPage(int intpage,int intpagecount,String sql){


    this.intpage=intpage;


    this.intpagecount=intpagecount;


    this.sql=sql;


    listuser_bean[] tmie=null;


    try{


      conn=getConnection.getNewConnection();


      simt=conn.createStatement();


      rs=simt.executeQuery(this.sql);


      if(rs.next()){


      rs.last();


      pagecount=rs.getRow();


      page_listcount=(pagecount+intpagecount-1)/intpagecount;


      if(intpage>page_listcount){


        intpage=page_listcount;


      }


      int pagewo=(intpage-1)*intpagecount+1;


      if(pagewo>0){


        rs.absolute(pagewo);


      }


      tmie=new listuser_bean[intpagecount];


      int i=0;


     do{


        tmie=new listuser_bean();


        tmie.setPass(rs.getString("password"));


        tmie.setName(rs.getString("username"));



      } while(rs.next() && ++i < intpagecount);


    }


    }catch(Exception e){


      e.printStackTrace();


    }


    setListCount(page_listcount);


    setCount(pagecount);


    return tmie;


  }


  public void setCount(int a){


    this.pagecount=a;


  }


  public void setListCount(int b){


    this.page_listcount=b;


  }


  public int getCount(){


    return pagecount;


  }


  public int getListCount(){


    return page_listcount;


  }


}


根据客户端数据来进行显示


package geezer_Model.geezer_user;


import java.io.*;


import javax.servlet.*;


import javax.servlet.http.*;


import javax.sql.*;


import java.sql.*;


import geezer_controller.*;


import geezer_Database.getConnection;


public class listuser implements Geezer_Action{


public void execute(HttpServlet servler,HttpServletRequest request,HttpServletResponse response)
     throws IOException{


   response.setContentType("text/html");


   PrintWriter out=response.getWriter();


   Statement simt=null;


   ResultSet rs=null;


   Connection conn=null;


   int intpage=1;


   int intpagecount=2;


   try{


     intpage = Integer.parseInt(request.getParameter("intpage"));



   }catch(Exception e){


       intpage=1;
   }


   if (intpage<=0){


     intpage=1;


   }


   try{


     intpagecount =Integer.parseInt(request.getParameter("intpagecount"));


   }


   catch(Exception e){


     intpagecount=2;


   }


   listuser_bean[] pages=null;


   listuser_page page=new listuser_page();



   String sql="select * from userlist";


   pages=page.getPage(intpage,intpagecount,sql);


   out.println("count=" + page.getCount() + "<br>");


   out.println("ListCount=" + page.getListCount() + "<br>");


   if(intpage>page.getListCount()){


     intpage=page.getListCount();


   }


  for (int i=0;i<pages.length;i++){


     if(pages==null){


       break;


     }


     out.println(pages.getName()+" "+pages.getPass()+"<br><br>");


   }


  out.println("<script language=javascript>");


  out.println("function check(theform,value){");


  out.println("theform.intpage.value=value;");


  out.println("theform.submit();");


  out.println("}</script>");


  out.println("<form action=/main?action=listuser method=post name=theform>");


  out.println("<input type=hidden name=intpage>");


  out.println("<a href=javascript:check(theform,"+(intpage+1)+");>next</a><br>");


  out.println("<a href=javascript:check(theform,"+(intpage-1)+");>back</a>");


  out.println("</form>");


}


}

MVC架构模式与利用JAVABEAN分页

众所周知MVC不是设计模式,是一个比设计模式更大一点的模式,称作设计模式不合理,MVC模式应该叫架构模式,MVC里面用了许多小的模式,例如策略模式,组合模式,聚集模式,可以用到的模式有十几种之多,而设...
  • huzhen919
  • huzhen919
  • 2009年06月14日 12:29
  • 203

MVC jsp+servlet+javabean 连接Mysql数据库测试demo

本文介绍的是如何使用MVC架构去组建我们的jsp+servlet+
  • ZuoLvLC
  • ZuoLvLC
  • 2014年05月18日 14:56
  • 3177

Android App的三种架构模式MVC,MVP和MVVM

原文地址:选择恐惧症的福音!教你认清MVC,MVP和MVVM 相信大家对MVC,MVP和MVVM都不陌生,作为三个最耳熟能详的Android框架,它们的应用可以是非常广泛的,但是对于一些新手来说,可...
  • oLevin
  • oLevin
  • 2016年07月23日 15:25
  • 2744

我理解的软件 架构模式,MVC和分层

缘起:作为程序员,很容易天天被业务追逐着,抽不开时间修炼。有一天突然停了一下,忽地就会有一种怅然的感觉,过去的那些日子我学到了什么? 有人很认真地说自己有10年经验,有人笑说你不过是一年经验用了10年...
  • vshuang
  • vshuang
  • 2016年12月03日 00:22
  • 1568

连接mysql的javabean实例+简单分页

学习分页rs.getString(user_id)|rs.getString(user_name)|rs.getString(user_mail)|rs.getString(user_adds) in...
  • ywcai
  • ywcai
  • 2007年03月04日 22:50
  • 957

浅谈MVC(jsp+servlet+JavaBean简单实例)

MVC(Model View Controller) 旨在分离模型、控制、视图。是一种分层思想的体现。项目实例:购物车商品管理总体设计...
  • QQ519423035
  • QQ519423035
  • 2017年08月09日 17:34
  • 608

MVC架构简介

本篇博客打算简单介绍一下MVC是什么,为接下来写一篇Spring MVC和Struts2的文章做一下铺垫。 MVC是一种架构设计模式,是一种设计理念。是为了达到分层设计的目的,从而使代码解耦,便于维...
  • muyi_amen
  • muyi_amen
  • 2017年01月11日 11:54
  • 1174

关于MVC4使用PagedList.mvc分页

PagedList是NuGet上提供的一个分页的类库,能对任何IEnumerable进行分页,而且非常简单好用。从NuGet上,可以获取两个DLL:PagedList.dll和PagedList.Mv...
  • u013924731
  • u013924731
  • 2016年10月20日 17:00
  • 3862

架构(三层架构)、框架(MVC)、设计模式三者异同点

架构、框架、设计模式三者关系与异同点、三层架构与MVC的区别——chenchen
  • u010191034
  • u010191034
  • 2014年04月27日 15:05
  • 3510

使用JSP+JavaBean进行分页

之前一直对分页功能很排斥,因为觉得实现很简单,所以自己也没有写过分页功能。 前天面试的时候被问到了这个问题,一脸懵逼。今天好好整理了一下,做了一个比较简单而且粗糙的分页。原理:利用mysql语句的l...
  • hdg745979749
  • hdg745979749
  • 2017年06月11日 18:24
  • 244
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MVC架构模式与利用JAVABEAN分页!(原创)
举报原因:
原因补充:

(最多只允许输入30个字)