Web小项目的显示分页和过滤器的简单实现

Web小项目的显示分页和过滤器的简单实现

这里在原本的基础上修改了login()和findAllUser()的方法并加入了一个新的实体类用来储存原本的userlist以及新需要的页面信息

package controller;

import bean.PageInfo;
import bean.User;
import dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import service.IUserService;

import javax.servlet.http.HttpSession;
import javax.ws.rs.DefaultValue;
import java.util.List;

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private IUserService userService;
    @Autowired
    private UserDao userDao;
    @RequestMapping("/login.do")
    public ModelAndView login(User user, HttpSession session){
        boolean flag=userService.login(user.getUsername(),user.getPassword());
        ModelAndView modelAndView=new ModelAndView();
        if (flag){
            session.setAttribute("user",user);
//            List userList=userDao.findAllUser();
//            modelAndView.addObject("userlist",userList);
            modelAndView.setViewName("main");
        }else {
            modelAndView.setViewName("../failer");
        }
        return modelAndView;
    }

    @RequestMapping("/findAllUser.do")
    public ModelAndView findAllUser(@RequestParam (defaultValue="1")int currentPage){
        PageInfo<User> pageInfo=userService.findAllUser(currentPage);
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.addObject("pageInfo",pageInfo);
        modelAndView.setViewName("user-list");
        return modelAndView;
    }

}


这里是改写了findAllUser()的方法用于处理传来的页面信息,再将该方法在UserController()调用将封装的数据反馈给页面处理。

package service.impl;

import bean.PageInfo;
import bean.User;
import dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import service.IUserService;

import java.util.List;

@Service
public class UserService implements IUserService {
    @Autowired
    private UserDao userDao;
    @Override
    public boolean login(String username, String password) {
        User user=userDao.findUserByUsername(username);
        if (user!=null&&user.getPassword().equals(password)){
            return true;
        }
        return false;
    }

    @Override
    public PageInfo<User> findAllUser(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.findAllUser(start);
        pageInfo.setUserList(userlist);
        return pageInfo;
    }


    @Override
    public void deleteById(int id){
        userDao.deleteById(id);
    }

    @Override
    public void add(User user) { userDao.add(user); }

    @Override
    public User selectUserBydId(int id) {
        return userDao.selectById(id);
    }
    @Override
    public void update(User user){
        userDao.update(user);
    }
}

新建一个用于处理的Loginfilter类

package filter;

import bean.User;

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

public class Loginfilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        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);
        }
    }

    @Override
    public void destroy() {

    }
}

这里是写了一个新的用于过滤.do的所有方法并在新类Loginfilter中进行处理的filter

  <filter>
    <filter-name>loginFilter</filter-name>
    <filter-class>filter.Loginfilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>loginFilter</filter-name>
    <url-pattern>*.do</url-pattern>
  </filter-mapping>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值