欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JSP中MVC模式的Demo

程序员文章站 2022-05-18 14:42:51
  MVC模式是什么,我就不废话了。。。直接说它的流程吧。   在login.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();

}

}

 

摘自 漂泊小七的专栏