程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> MVC架構模式與利用JAVABEAN分頁

MVC架構模式與利用JAVABEAN分頁

編輯:關於JAVA

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved