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>
  <%
  }
  %>
  </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();
}
}




  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值