ssm 实现分页和拦截

变动代码

1.controller层

@RequestMapping("/findAll.do")
public ModelAndView findAll(@RequestParam(defaultValue = "1") int currentPage) {

    PageInfo<User> pageInfo=userService.findAll(currentPage);
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.addObject("pageInfo",pageInfo);
    modelAndView.setViewName("user-list");
    return modelAndView;
}

2.service层

@Override
public PageInfo<User> findAll(int currentPage) {
    PageInfo<User> pageInfo=new PageInfo<>();
    pageInfo.setSize(5);

    int tc= userDao.getTotalCount();
    pageInfo.setTotalCount(tc);
    int tp=(int)Math.ceil(tc/5.0);
    pageInfo.setTotalPage(tp);
    if(currentPage<1){
        pageInfo.setCurrentPage(1);
    }else if(currentPage>tp){
        pageInfo.setCurrentPage(tp);
    }else{
        pageInfo.setCurrentPage(currentPage);
    }
    int start=(pageInfo.getCurrentPage()-1)*5;
    List<User> userList = userDao.findAll(start);
    pageInfo.setList(userList);
    return pageInfo;
}

3.html

</div>
					<!-- /.box-body -->
						<div class="box-tools pull-right">
							<ul class="pagination">
								<li><a href="${pageContext.request.contextPath}/user/findAll.do" aria-label="Previous">首页</a></li>
								<li><a href="${pageContext.request.contextPath}/user/findAll.do?currentPage=${pageInfo.currentPage-1}">上一页</a></li>
								<c:forEach begin="1" end="${pageInfo.totalPage}" var="pageNum">
									<li><a href="${pageContext.request.contextPath}/user/findAll.do?currentPage=${pageNum}">${pageNum}</a></li>
								</c:forEach>
								<li><a href="${pageContext.request.contextPath}/user/findAll.do?currentPage=${pageInfo.currentPage+1}">下一页</a></li>
								<li><a href="${pageContext.request.contextPath}/user/findAll.do?currentPage=${pageInfo.totalPage}" aria-label="Next">尾页</a></li>
							</ul>
						</div>

					</div>

4.登录拦截

<filter>
  <filter-name>loginFilter</filter-name>
  <filter-class>com.zhongruan.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>loginFilter</filter-name>
  <url-pattern>*.do</url-pattern>
</filter-mapping>
import com.zhongruan.bean.User;

import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

public class LoginFilter implements Filter {
    public void destroy() {
    }

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException {
        HttpServletRequest request=(HttpServletRequest) servletRequest;
        HttpServletResponse response=(HttpServletResponse)servletResponse;
        HttpSession session=request.getSession();
        User user=(User)session.getAttribute("user");
        String uri=request.getRequestURI();
        if(user==null && uri.indexOf("login.do")==-1){
            //重定向
            response.sendRedirect(request.getContextPath()+"../login.jsp");
        }else{
            //用来继续执行
            filterChain.doFilter(request,response);
        }
    }

    public void init(FilterConfig config) throws ServletException {

    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值