当前位置:编程学习 > JS >>

JSP中MVC模式的Demo

 

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.zzzyk.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();

}

}

 

摘自 漂泊小七的专栏

补充:Web开发 , Jsp ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,