mvc也就是模型-视图-控制台M就是javabean,V就是JSPC就是java Servlet
第步写Hashtable类把所有类和JSP文件路径写进这里
第 2步写最抽象接口erface给出个思路方法例如
public void execute(HttpServlet servlet,HttpServletRequest request,HttpServletResponse response);
所有和客户端交互SERVLET类都必须实现这个接口execute思路方法这样才能在工厂中执行
第 3步写控制台其实这个我觉得就是工厂模式种更高工厂模式
根据动作来执行相应类
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->servlet__path</servlet_>
</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 listuser_bean {
String name;
String pass;
public void Name(String name){
this.name=name;
}
public void Pass(String pass){
this.pass=pass;
}
public String getName{
this.name;
}
public String getPass{
this.pass;
}
}
简单处理分页数据类
package geezer_Model.geezer_user;
import javax.sql.*;
import java.sql.*;
import geezer_controller.*;
import geezer_Database.getConnection;
public listuser_page {
public listuser_page {
}
Connection conn=null;
Statement simt=null;
ResultSet rs=null;
page=1;
pagecount=10;
pagecount=20;
page_listcount=1;
String sql;
public listuser_bean getPage( page, pagecount,String sql){
this.page=page;
this.pagecount=pagecount;
this.sql=sql;
listuser_bean tmie=null;
try{
conn=getConnection.getNewConnection;
simt=conn.createStatement;
rs=simt.executeQuery(this.sql);
(rs.next){
rs.last;
pagecount=rs.getRow;
page_listcount=(pagecount+pagecount-1)/pagecount;
(page>page_listcount){
page=page_listcount;
}
pagewo=(page-1)*pagecount+1;
(pagewo>0){
rs.absolute(pagewo);
}
tmie= listuser_bean[pagecount];
i=0;
do{ tmie= listuser_bean; tmie.Pass(rs.getString("password")); tmie.Name(rs.getString("username"));
} while(rs.next && i < pagecount);
}
}catch(Exception e){
e.prStackTrace;
}
ListCount(page_listcount);
Count(pagecount);
tmie;
}
public void Count( a){
this.pagecount=a;
}
public void ListCount( b){
this.page_listcount=b;
}
public getCount{
pagecount;
}
public getListCount{
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 listuser implements Geezer_Action{
public void execute(HttpServlet servler,HttpServletRequest request,HttpServletResponse response)
throws IOException{
response.ContentType("text/html");
PrWriter out=response.getWriter;
Statement simt=null;
ResultSet rs=null;
Connection conn=null;
page=1;
pagecount=2;
try{
page = Integer.parseInt(request.getParameter("page"));
}catch(Exception e){
page=1;
}
(page<=0){
page=1;
}
try{
pagecount =Integer.parseInt(request.getParameter("pagecount"));
}
catch(Exception e){
pagecount=2;
}
listuser_bean pages=null;
listuser_page page= listuser_page;
String sql="select * from userlist";
pages=page.getPage(page,pagecount,sql);
out.prln("count=" + page.getCount + "<br>");
out.prln("ListCount=" + page.getListCount + "<br>");
(page>page.getListCount){
page=page.getListCount;
}
for ( i=0;i<pages.length;i){ (pagesnull){ ;
} out.prln(pages.getName+" "+pages.getPass+"<br><br>"); }
out.prln("<script language=javascript>");
out.prln("function check(theform,value){");
out.prln("theform.page.value=value;");
out.prln("theform.submit;");
out.prln("}</script>");
out.prln("<form action=/?action=listuser method=post name=theform>");
out.prln("<input type=hidden name=page>");
out.prln("<acheck(theform,"+(page-1)+");>back</a>");
out.prln("</form>");
}
}
最新评论