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

JSP中MVC模式的Demo

編輯:關於JSP

 

MVC模式是什麼,我就不廢話了。。。直接說它的流程吧。

 

在login.jsp中定義了一個表單:<form action="Controller" name="loginForm" method="post" >

 

這樣,就完成了從V層進入到C層。

 

 

Controller.java是個Servlet,要繼承HttpServlet.首先要在配置文件中把它布置上哈,代碼就是:

 

String id = request.getParameter("userId");

String name = request.getParameter("userName");

////使用模型(UserBeanDL),完成對用戶的處理

///1.創建一個UserBean處理對象

UserBeanDL ubd = new UserBeanDL();

try{

int iId = Integer.parseInt(id);

if(ubd.checkUser(iId, name)){

System.out.println("通過Servlet完成控制");

///在跳轉到wel.jsp頁面時,就把要顯示的數據准備好

ArrayList al = ubd.getUsersByPage(1);

int pageCount = ubd.getPageCount();

////將參數傳遞,此處傳遞一個ArrayList

 

request.setAttribute("result", al);

 

////注意:後面的參數是對象,要把int-->對象(String)

 

request.setAttribute("pageCount", pageCount + "");

 

///轉向

//response.sendRedirect("welcom.jsp");

///因為sendRedirect方法效率不高,所以軟件公司中常用轉發的方法

///這種方法效率,同時request中的對象還可以在下一頁面中使用。

request.getRequestDispatcher("threedown/welcome.jsp").forward(request, response);

}else{

request.getRequestDispatcher("three/login.jsp").forward(request, response);

}

……

 

 

在UserBean.中,全是對數據庫的操作:

 

public class UserBeanDL {

Connection conn = null;

PreparedStatement ps = null;

ResultSet rs = null;

private int pageCount = 0;

int pageSize = 3;

int rowCount = 0;

////關閉資源

////得到總行數

/////得到pageCount

//////增加(over)

//////修改(over)

//////刪除

//////查找

////驗證用戶是否存在

 

UserBean.java是個實體類。

 

 

Welcome.jsp中:

 

 <tr><td>ID</td><td>姓名</td><td>年齡</td></tr>

  <%

  int pageNow = 1;

  String szPageNow = request.getParameter("pageNow");

  if(szPageNow != null)

  {

  pageNow = Integer.parseInt(szPageNow);

  }

   ArrayList al = (ArrayList)request.getAttribute("result");

  for(int i=0;i<al.size();i++)

  {

  UserBean ub = (UserBean)al.get(i);

  %>

  <tr><td><%=ub.getId()%></td>

  <td><%=ub.getName()%></td>

  <td><%=ub.getAge()%></td></tr>

  <%

  }

  ////從object --> string --int

  int pageCount = Integer.parseInt((String)request.getAttribute("pageCount")) ;

  //int pageCount = ubd.getPageCount();

  for(int i=1;i<pageCount;i++){

  %>

  <a href=UserDL?pageNow=<%=i%>><<%=i%>></a>

  <%

  } www.2cto.com

  %>

  </table>

 

UserDL.java是個專門用於分頁的Servlet

 

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

System.out.println("通過Servlet分頁");

String s_pageNow = request.getParameter("pageNow");

UserBeanDL ubd = new UserBeanDL();

try{

int pageNow = Integer.parseInt(s_pageNow);

ArrayList al = ubd.getUsersByPage(pageNow);

int pageCount = ubd.getPageCount();

request.setAttribute("pageNow", pageNow);

request.setAttribute("result", al);

request.setAttribute("pageCount", pageCount + "");

request.getRequestDispatcher("threedown/welcome.jsp").forward(request, response);

}catch(Exception e){

e.printStackTrace();

}

}

 

摘自 漂泊小七的專欄

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