注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 编程开发JSP → 文章内容

MVC架构模式与利用JAVABEAN分页

作者:佚名 来源:不详 发布时间:2007-11-29 23:54:09

  众所周知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>");



}



}


  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved