首页 > 编程语言 >基于JSP+javaBean的留言板--改进(附源码)

基于JSP+javaBean的留言板--改进(附源码)

时间:2023-03-08 23:33:27浏览次数:53  
标签:String -- request 源码 JSP user new import public

一、系统主要功能和特点

系统主要实现了以JSP和JavaBean为基础的留言板。主要包括登录、登陆检查、增加留言、查看全部留言信息、查看指定留言信息等功能实现了数据的读写。

在此基础上,我增加了登陆的检查功能、注册新用户功能、管理员控制后台功能,只有输入正确账号和与之对应的密码才能实现账号的登录,还有删除插入更改的操作,防止出现乱码和操作不当出现的网站错误。

二、类的设计

在系统里我用到了管理员使用的LoginServlet类控制登录、MessageServlet类控制留言、UserServlet类供使用,MessageDao类进行对留言插入更改删除等操作,EncodingFilter类对乱码进行过滤、LoginFilter类对登录界面问题进行过滤,Message、PageBean、User类对内部模型进行构造,db_goods.sql进行web设计(网站上搜索并进行更改的,没有展示),C3p0Utils、PageUtils、PageUtils2类对整体运行进行连接。不同功能的package在下面的代码中用不同颜色表示。

三、程序流程

四、程序纠错过程

在程序的编写过程中遇到了很多的技术性的问题。比如,在设计模板时,总是少添加或者重复设置循环和内存问题,在jsp数据交互的过程中,老是出现数据的丢失,最终还是靠在网上查找资料的方式解决了这个问题,在过滤问题上总是有想法但做不出来,不断询问和查找资料后才勉强加进去,但在实现价值功能上,实际操作没有发挥出来的机会。

五、程序运行截图并对截图实现的功能进行简要说明

 

登录界面:可进行登录,分有学生(前台)和管理员(后台)两种方式。

 

新用户注册。

 

 

 

登录后进入留言板,具体功能参考图片。

 

package controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dao.UserDao;
import model.User;

/**
 * Servlet implementation class LoginServlet
 */
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public LoginServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Object attribute=request.getParameter("method");
        System.out.println("请求已经到达");
        String method="";
        if(attribute!=null) {
            method=attribute.toString();
        }
        if("login".equals(method)){
            request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
            return;
        }
        if("loginAct".equals(method)){
            login(request,response);
            return;
        }
        
        if("loginOutAct".equals(method)){
            request.getSession().setAttribute("username", null);
            request.getSession().removeAttribute("username");
            request.getSession().removeAttribute("id");
            request.getSession().removeAttribute("type");
            //request.getRequestDispatcher("/login.jsp").forward(request, response);
            response.sendRedirect("LoginServlet?method=login");
            return;
            
        }
        
    }
    //登录处理
    private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username=request.getParameter("username");
        String password=request.getParameter("password");
    
        int userType=Integer.parseInt(request.getParameter("type").trim());
          
       System.out.println(userType);
        UserDao userdao=new UserDao();
        User user=userdao.findByUserName(username);
        if(user==null){
            request.setAttribute("message", "用户名不存在!");
            request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
        }else if(!user.getPassword().equals(password)){
            request.setAttribute("message", "用户名或密码错误");
            request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
            
        }else if((user.getPassword().equals(password))&&((user.getType()==1)&&(userType==1))){            
            request.getSession().setAttribute("user",user);
            request.getSession().setAttribute("type", user.getType());
            request.getRequestDispatcher("/WEB-INF/users/main.jsp").forward(request, response);
        }else if((user.getPassword().equals(password))&&((user.getType()==2)&&(userType==2))) {
            request.getSession().setAttribute("type", user.getType());
            request.getSession().setAttribute("realname", user.getRealname());
            request.getSession().setAttribute("username", user.getUsername());
            request.getSession().setAttribute("id", user.getId());
            request.getRequestDispatcher("/WEB-INF/views/main.jsp").forward(request, response);
        }else {
            request.setAttribute("message", "用户和用户类型不匹配");
            request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
        }
package controller;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.MessageDao;
import dao.UserDao;
import model.Message;
import model.PageBean;
import model.User;
import utils.PageUtils2;

/**
 * Servlet implementation class MessageServlet
 */
public class MessageServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private MessageDao messageDao=new MessageDao();
    private UserDao userDao=new UserDao();
       
    public MessageServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String method=request.getParameter("method");
    //跳转到添加页面
     if(method!=null&&method.equals("toAddMessageAct1")) {
            request.getRequestDispatcher("/WEB-INF/users/add_message.jsp").forward(request, response);    
            return;
       }
     if(method!=null&&method.equals("findByMessageAct")) {
        User user=(User) request.getSession().getAttribute("user");
            
            System.out.print(user.getId()+"****");
            List<Message> list=messageDao.findMyMessage(user.getId());
            for(Message m:list) {
                User u=userDao.findById(m.getU_id());
                m.setUser(u);
            }
            if(list.size()>0) {
                request.setAttribute("list", list);
                request.removeAttribute("msg");
                request.getRequestDispatcher("/WEB-INF/views/list_message.jsp").forward(request, response);    
            }else if(list.size()<=0) {
                
                request.setAttribute("msg", "没有此留言信息");
                request.getRequestDispatcher("/WEB-INF/views/list_message.jsp").forward(request, response);    
            }
            
            return;
        }
       
           
    if(method!=null&&method.equals("messageListAct1")) {
        
            MessageList1(request, response);
            return;
    }
    
    if(method!=null&&method.equals("messageListAct2")) {
        MessageList2(request,response);
        return;
   }    
    
    if(method!=null&&method.equals("messageListAct3")) {
        MessageList3(request,response);
        return;
}    
    if(method!=null&&method.equals("deleteMessageAct")) {
        int id=Integer.parseInt(request.getParameter("id"));
        String mname=request.getParameter("mname");
        String type=request.getParameter("type");
        System.out.println(type+"****"+mname);
        messageDao.delete(id);
        if(type.equals("1")) {
            User user=(User) request.getSession().getAttribute("user");
            List<Message> list=messageDao.findMyMessage(user.getId());
            for(Message m:list) {
                User u=userDao.findById(m.getU_id());
                m.setUser(u);
            }
            request.setAttribute("list", list);
            request.getRequestDispatcher("/WEB-INF/users/message_list.jsp").forward(request, response);    
        }else if(type.equals("2")){
            MessageList2(request, response);
        }
        
        return;
    }
            
    //管理员添加
    if(method!=null&&method.equals("addMessageAct")) {
        
        String title=request.getParameter("title");
        String content=request.getParameter("content");
        String type=request.getParameter("type");
        Message message=new Message();
        User user=(User) request.getSession().getAttribute("user");
        message.setU_id(user.getId());
        message.setTitle(title);
        message.setContent(content);
        Date nowtime=new Date();        
        try {
            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String createTime=simpleDateFormat.format(nowtime);
            message.setCreateTime(createTime);
        }catch(Exception e) {};
    
        
        boolean b=messageDao.insertMessage(message);
        if(b&&type.equals("1")) {
            MessageList1(request, response);
        }else {
            MessageList2(request, response);
        }                
            return;
        }
    if(method!=null&&method.equals("queryMessageAct")) {
        int id=Integer.parseInt(request.getParameter("id"));
        System.out.print(id+"****");
        Message record=messageDao.findById(id);
        request.setAttribute("list", record);
        request.getRequestDispatcher("/WEB-INF/views/update_message.jsp").forward(request, response);    
        return;                    
    }
    if(method!=null&&method.equals("findByMapAct")) {
        findByMapAct(request, response);
        return;                    
    }            
    if(method!=null&&method.equals("updateMessageAct")) {
             int id=Integer.parseInt(request.getParameter("id"));        
                String content=request.getParameter("content");
                String type=request.getParameter("type");
                Message message=new Message();
                User user=(User) request.getSession().getAttribute("user");
                message.setU_id(user.getId());
                message.setContent(content);                                                
                boolean b=messageDao.updateMessage(message, id);
                if(b&&type.equals("1")) {
                    MessageList1(request, response);
                }else {
                    MessageList2(request, response);
                }
            }
        }    
private void MessageList3(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String currentPage = request.getParameter("currentPage");
    if (currentPage==null||currentPage.equals("")){
        //如果第一次访问,没有传递currentPage参数,则当前页为1
        currentPage="1";
    }
    //接收用户输入的每页显示数据的记录数
    String pageSize = request.getParameter("pageSize");
    //如果没有传递过来,设置一个默认值为2
    //细节:当点击下一页或者别的,会导致pageSize丢失了,应该要带回去
    if (pageSize==null||pageSize.equals("")){
        //设置pageSize的默认值是2
        pageSize="6";
    }
    //1)在service层调用获取PageBean对象的方法
    PageUtils2 service = new PageUtils2();
    //只需要传入一个currentPage(当前页数)即可
    PageBean pageBean = service.queryPageBean2(currentPage,Integer.parseInt(pageSize));
    //2)把PageBean对象放到域中
    request.setAttribute("pageBean", pageBean);
    //3)转发
    request.getRequestDispatcher("/WEB-INF/users/message_list2.jsp").forward(request, response);
    }

private void MessageList2(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String currentPage = request.getParameter("currentPage");
    if (currentPage==null||currentPage.equals("")){
        //如果第一次访问,没有传递currentPage参数,则当前页为1
        currentPage="1";
    }
    //接收用户输入的每页显示数据的记录数
    String pageSize = request.getParameter("pageSize");
    //如果没有传递过来,设置一个默认值为2
    //细节:当点击下一页或者别的,会导致pageSize丢失了,应该要带回去
    if (pageSize==null||pageSize.equals("")){
        //设置pageSize的默认值是2
        pageSize="6";
    }
    //1)在service层调用获取PageBean对象的方法
    PageUtils2 service = new PageUtils2();
    //只需要传入一个currentPage(当前页数)即可
    PageBean pageBean = service.queryPageBean(currentPage,Integer.parseInt(pageSize));
    //2)把PageBean对象放到域中
    request.setAttribute("pageBean", pageBean);
    //3)转发
    request.getRequestDispatcher("/WEB-INF/views/message_list.jsp").forward(request, response);    
}
private void findByMapAct(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String realname=request.getParameter("realname").trim();
    System.out.print(realname);
    User user=userDao.findByRealname(realname);
    List<Message> list=messageDao.findMyMessage(user.getId());
    for(Message m:list) {
        User u=userDao.findById(m.getU_id());
        m.setUser(u);
    }
    request.setAttribute("list", list);
    request.getRequestDispatcher("/WEB-INF/views/list_message.jsp").forward(request, response);    
}

private void MessageList1(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    User user=(User) request.getSession().getAttribute("user");    
    List<Message> list=messageDao.findMyMessage(user.getId());
    for(Message m:list) {
        User u=userDao.findById(m.getU_id());
        m.setUser(u);
    }
    request.setAttribute("list", list);
    request.getRequestDispatcher("/WEB-INF/users/message_list.jsp").forward(request, response);        
}}}}
package controller;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.UserDao;
import model.User;
import utils.PageUtils;

/**
 * Servlet implementation class UserServlet
 */
public class UserServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private UserDao userDao=new UserDao();
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public UserServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        String method=request.getParameter("method");
        if(method!=null&&method.equals("registeAct")) {
            registeUser(request,response);
            return;
        }
        if(method!=null&&method.equals("homepageAct")) {
            //registeUser(request,response);
            request.getRequestDispatcher("/WEB-INF/users/homepage.jsp").forward(request, response);
            return;
        }
        if(method!=null&&method.equals("consoleAct")) {
            //registeUser(request,response);
            request.getRequestDispatcher("/WEB-INF/views/console.jsp").forward(request, response);
            return;
        }
        
        if(method!=null&&method.equals("userListAct1")) {
        
            userList1(request, response);
            return;
        }
        
        if(method!=null&&method.equals("userListAct2")) {
            userList2(request,response);
            
            return;
        }
        
        if(method!=null&&method.equals("findByNameAct")) {
            String username=request.getParameter("username");
            User user=userDao.findByUserName(username);
            List<User> list=userDao.findMyInfo(user.getId());
            if(list.size()>0) {
                request.setAttribute("list", list);
                request.removeAttribute("msg");
                request.getRequestDispatcher("/WEB-INF/views/list_user.jsp").forward(request, response);    
            }else if(list.size()<=0) {
                
                request.setAttribute("msg", "没有此纪录");
                request.getRequestDispatcher("/WEB-INF/views/list_user.jsp").forward(request, response);    
            }
            
            return;
        }
        
        
        if(method!=null&&method.equals("queryUserAct")) {
            /*userList2(request,response);*/
            int id=Integer.parseInt(request.getParameter("id"));
            System.out.print(id+"****");
            User record=userDao.findById(id);
            request.setAttribute("list", record);
            request.getRequestDispatcher("/WEB-INF/views/update_user.jsp").forward(request, response);    
            return;
        }
        
        if(method!=null&&method.equals("queryUserNameAct")) {
            String username=request.getParameter("username");
            System.out.print(username+"****");
            User record=userDao.findByUserName(username);
            request.setAttribute("list", record);
            request.getRequestDispatcher("/WEB-INF/users/update_pwd.jsp").forward(request, response);    
            return;
        }        
        
        if(method!=null&&method.equals("toAddUserAct")) {
            request.getRequestDispatcher("/WEB-INF/views/add_user.jsp").forward(request, response);    
            return;
        }
    
        if(method!=null&&method.equals("addUserAct")) {
            addUser(request,response);
            return;
        }
        
        if(method!=null&&method.equals("toRegsiteAct")) {
            request.getRequestDispatcher("/WEB-INF/views/register.jsp").forward(request, response);    
            return;
        }
        
        if(method!=null&&method.equals("registeAct")) {
            registeUser(request,response);
            return;
        }
        
        if(method!=null&&method.equals("deleteUserAct")) {
            int id=Integer.parseInt(request.getParameter("id"));    
            userDao.delete(id);
            userList2(request, response);
            return;
        }
        if(method!=null&&method.equals("updatePwdAct")) {
            String username=request.getParameter("username");
            String password=request.getParameter("password");
            User user=new User();
            user.setPassword(password);
            boolean b=userDao.updateUserPwd(user, username);
            if(b) {
                userList1(request, response);
            }
            return;
        }    
        if(method!=null&&method.equals("updateUserAct")){
            int id=Integer.parseInt(request.getParameter("id"));
            String username=request.getParameter("username");
            String password=request.getParameter("password");
            int type=Integer.parseInt(request.getParameter("type"));
            String sex=request.getParameter("sex");
            String realname=request.getParameter("realname");
            UserDao us=new UserDao();
            User user=new User();
            user.setUsername(username);
            user.setPassword(password);
            user.setSex(sex);
            user.setType(type);
            user.setRealname(realname);
            String flag=request.getParameter("flag");
           us.updateUser(user,id);
            if(("1".equals(flag))){
                
                userList1(request, response);
            }else  if("2".equals(flag)){
                userList2(request, response);
            }
            return;
        }    
    }    
    private void userList1(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //String username=request.getParameter("username");
        User user=(User) request.getSession().getAttribute("user");
        List<User> list=userDao.findMyInfo(user.getId());
        request.setAttribute("list", list);
        request.getRequestDispatcher("/WEB-INF/views/user_list.jsp").forward(request, response);        
    }    
    //添加用户
    private void addUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        int type=Integer.parseInt(request.getParameter("type"));
        String realname=request.getParameter("realname");
        String sex=request.getParameter("sex");       
        if(new PageUtils().existsUserName(username)){
            request.setAttribute("msg","该用户名已存在");
            request.setAttribute("username",username);
            userList2(request, response);
        }else {
            UserDao us=new UserDao();
             User user=new User();
             user.setUsername(username);
             user.setPassword(password);
             user.setRealname(realname);
             user.setSex(sex);             
             user.setType(type);
             us.insertUser(user);
              userList2(request, response);        
        }       
    }
    //用户信息
    private void userList2(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<User> list=userDao.findAll();
        request.setAttribute("list", list);
        request.getRequestDispatcher("/WEB-INF/views/user_list.jsp").forward(request, response);            
    }
    //注册
    private void registeUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        String realname=request.getParameter("realname");
        String sex=request.getParameter("sex");
          if(new PageUtils().existsUserName(username)){
                request.setAttribute("msg","该用户名已存在");
                request.setAttribute("username",username);
                request.getRequestDispatcher("/WEB-INF/views/register.jsp").forward(request,response);//返回到登陆界面
            }else {
                UserDao us=new UserDao();
                 User user=new User();
                 user.setUsername(username);
                 user.setPassword(password);
                 user.setRealname(realname);
                 user.setSex(sex);             
                 user.setType(1);
                us.insertUser(user);
                request.setAttribute("msg", "ok");
               request.getRequestDispatcher("/WEB-INF/views/success.jsp").forward(request, response);    
            }        
    }
}
package dao;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.eclipse.jdt.internal.compiler.parser.RecoveredAnnotation;
import model.Message;
import utils.C3p0Utils;
public class MessageDao {
    //获取连接执行查询
        private QueryRunner runner=new QueryRunner(C3p0Utils.getDs());
        //添加留言
        public boolean insertMessage(Message r) {
            try {
                //执行插入sql
                runner.update("insert into message(u_id,title,content,createTime)values(?,?,?,?)",
                        r.getU_id(),r.getTitle(),r.getContent(),r.getCreateTime());
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
            return true;//成功返回true            
        }
        //根据id删除
        public int delete(int id) {
            try {
                //执行删除的sql
                runner.update("delete from message where id=?",id);
            } catch (SQLException e) {
                throw new RuntimeException(e);//抛出运行异常
            }
            return 1;//删除成功返回1表示结束
        }        
        //查询所有留言信息
        public List<Message> findMyMessage(int u_id) {
            try {
                return runner.query("select * from message where u_id=?", new BeanListHandler<Message>(Message.class),u_id);//添加实体类的适配器进行类的反射
            } catch (SQLException e) {//捕获异常
                throw new RuntimeException(e);//抛出运行异常
            }
        }
        /**
         * 
         * 根据留言人查询留言的信息
         */
        public List<Message> findByContent(String content) {
            try {
                String sql = "select * from Message where 1=1 ";
                //创建一个集合用来存储查询的参数,因为我们不清楚客户到底输入几个参数,所以用集合来存放
                List<String> list = new ArrayList<String>();
                if (content != "") {
                    //如果用户输入的pname不为空,那需要进行字符串拼接
                    sql += "and content like ? ";
                    //将用户输入的参数添加到集合
                    list.add("%" + content + "%");
                }
                
                //最后将集合转化成数组
                Object[] params = list.toArray();
                //调用runner对象的query查询方法,并将集合返回
                return runner.query(sql, new BeanListHandler<Message>(Message.class), params);
            } catch (SQLException e) {//捕获异常
                throw new RuntimeException(e);//抛出运行异常
            }
        }
        public List<Message> queryData(int currentPage,int pageSize ) {
            /**
             * 总结 select * from Message limit (当前页页码-1)*每页显示的记录条数,每页显示的记录条数;
             */
            //创建QueryRunner对象,传入数据源
            QueryRunner qr = new QueryRunner(C3p0Utils.getDs());
            String sql="select * from message limit ?,?";
            /**
            String sql="select * from employee limit (当前页页码-1)*每页显示的记录条数,每页显示的记录条数;\n";
             */
            //起始行
            int startNo = (currentPage-1)*pageSize;
            List<Message> list=null;
            //todo 使用JavaBean对象的list集合的实现类 BeanListHandler类封装
            try {
                list=qr.query(sql, new BeanListHandler<Message>(Message.class), new Object[]{startNo,pageSize});
                return list;
            } catch (SQLException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
        /**
         * 提供一个查询总记录数的方法
         *
         */
      
        public int queryCount() {
            //获取QueryRunner对象,传入数据源
            QueryRunner qr = new QueryRunner(C3p0Utils.getDs());
            String sql="select count(*) from message";
            try {
                Long count = (long) qr.query(sql, new ScalarHandler());
                //将long的类型转成int类型
                return count.intValue();
            } catch (SQLException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
        //根据id查询
        public Message findById(int id) {
            try {//返回查询的信息
                return runner.query("select * from message where id=?", new BeanHandler<Message>(Message.class),id);
            } catch (SQLException e) {
                throw new RuntimeException(e);//抛出运行异常
            }
        }
        //更改用户名称
        public boolean updateMessage(Message r,int id) {
            try {//执行更改
                runner.update("update message set content=? where id=?",
                        r.getContent(),id);
            } catch (SQLException e) {
                throw new RuntimeException(e);//抛出运行异常
            }
            return true;//返回true
        }    
        public static void main(String args[]) {
            MessageDao MessageDao=new MessageDao();
            Message Message=new Message();
            Message.setCreateTime("2021-11-17 11:30:29");
            boolean b=MessageDao.insertMessage(Message);            
            System.out.println(b);
        }        
}
package dao;
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import model.User;
import utils.C3p0Utils;
public class UserDao {
        //加载数据库连接
        private QueryRunner runner=new QueryRunner(C3p0Utils.getDs());        
        public boolean insertUser(User user) {
            try {                
                runner.update("insert into user(username,password,type,sex,realname)values(?,?,?,?,?)",                user.getUsername(),user.getPassword(),user.getType(),user.getSex(),user.getRealname());
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
            return true;//鎴愬姛杩斿洖true
            
        }    
        public int delete(int id) {
            try {                
                runner.update("delete from user where id=?",id);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
            return 1;
        }        
        public List<User> findAll() {
            try {
                return runner.query("select * from user", new BeanListHandler<User>(User.class));
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }        
        public List<User> findMyInfo(int id) {
            try {
                return runner.query("select * from user where id=?", new BeanListHandler<User>(User.class),id);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }        
        //根据
        public User findByRealname(String realname) {
            try {
                return runner.query("select * from user where realname=?", new BeanHandler<User>(User.class),realname);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        public User findById(int id) {
            try {
                return runner.query("select * from user where id=?", new BeanHandler<User>(User.class),id);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }        
        public boolean updateUser(User user,int id) {
            try {
                runner.update("update user set username=?,password=?,type=?,sex=?,realname=? where id=?",                        user.getUsername(),user.getPassword(),user.getType(),user.getSex(),user.getRealname(),id);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
            return true;
        }
        public boolean updateUserPwd(User user,String username) {
            try {
                runner.update("update user set password=? where username=?",
                        user.getPassword(),username);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
            return true;
        }
        public User findByUserName(String username) {
            try {
                return runner.query("select * from user where username=?", new BeanHandler<User>(User.class),username);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        public User login(String username,String password) {
            try {
                return runner.query("select * from user where username=? and password=?", new BeanHandler<User>(User.class),username,password);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        public static void main(String args[]) {
            UserDao userDao=new UserDao();
            User user=userDao.findByUserName("admin");            
            System.out.println(user.getPassword());
        }        
}
package filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
 * Servlet Filter implementation class EncodingFilter
 */
public class EncodingFilter implements Filter {
    private String charSet;
    /**
     * Default constructor. 
     */
    public EncodingFilter() {
        // TODO Auto-generated constructor stub
    }
    /**
     * @see Filter#destroy()
     */
    public void destroy() {
        System.out.println("乱码已经解决,上下文编码为utf-8");
    }
    /**
     * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
     */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        request.setCharacterEncoding(this.charSet);
        chain.doFilter(request, response);
    }
    /**
     * @see Filter#init(FilterConfig)
     */
    public void init(FilterConfig fConfig) throws ServletException {
        this.charSet=fConfig.getInitParameter("charset");//设置同意编码
    }
}
package filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet Filter implementation class LoginFilter
 */
public class LoginFilter implements Filter {
    /**
     * Default constructor. 
     */
    public LoginFilter() {
        // TODO Auto-generated constructor stub
    }
    /**
     * @see Filter#destroy()
     */
    public void destroy() {
        // TODO Auto-generated method stub
    }
    /**
     * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
     */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest httpServletRequest = (HttpServletRequest)request;
        HttpServletResponse httpServletResponse = (HttpServletResponse)response;
        Object attribute = httpServletRequest.getSession().getAttribute("username");
        if(attribute == null){            
            httpServletResponse.sendRedirect("LoginServlet?method=login");
            return;
        }
        chain.doFilter(request, response);
    }
    /**
     * @see Filter#init(FilterConfig)
     */
    public void init(FilterConfig fConfig) throws ServletException {
        // TODO Auto-generated method stub
    }
}
package model;
import java.io.Serializable;
import java.sql.Timestamp;
public class Message implements Serializable{    
    private int id;
    private int u_id;
    public int getU_id() {
        return u_id;
    }
    public void setU_id(int u_id) {
        this.u_id = u_id;
    }
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
    private User user;
    private String content;
    private String createTime;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
 public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
private String title;
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getCreateTime() {
        return createTime;
    }
    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }
}
package model;
import java.util.List;

public class PageBean {
       public List<Message> getMdata() {
        return mdata;
    }
    public void setMdata(List<Message> mdata) {
        this.mdata = mdata;
    }
    List<Message> mdata;
    int firstPage;
    int prePage;
    int nextPage;
    int totalPage;
    int currentPage;
    int pageSize;
    int totalCount;
    public int getFirstPage() {
        return 1;
    }
    public void setFirstPage(int firstPage) {
        this.firstPage = firstPage;
    }
    public int getPrePage() {
        return this.getCurrentPage()==this.getFirstPage()?1:
                this.getCurrentPage()-1;
    }
    public void setPrePage(int prePage) {
        this.prePage = prePage;
    }
    public int getNextPage() {
        return this.getCurrentPage()==this.getTotalPage()?this
                .getTotalPage():
                this.getCurrentPage()+1;
    }
    public void setNextPage(int nextPage) {
        this.nextPage = nextPage;
    }
    public int getTotalPage() {
        return this.getTotalCount()%this.getPageSize()==0?this.getTotalCount()/this.getPageSize()
                :
                this.getTotalCount()/this.getPageSize()+1;
    }
    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }
    public int getCurrentPage() {
        return currentPage;
    }
    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }
    public int getTotalCount() {
        return totalCount;
    }
    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
}
package model;
import java.io.Serializable;
public class User implements Serializable{
    private Integer id;    
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    private String username;
    private String password;
    private Integer type;
    private String sex;
    private  String realname;
    public String getRealname() {
        return realname;
    }
    public void setRealname(String realname) {
        this.realname = realname;
    }
}
package utils;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
//使用C3p0连接池获取连接数据库
public class C3p0Utils {
    private static DataSource ds;
    static{
        ds=new ComboPooledDataSource();
    }
    public static DataSource getDs(){
        return ds;
    }    
    public static Connection getConnection() throws SQLException{
        return ds.getConnection();
    }
    public static void main(String args[]) throws SQLException {
        System.out.println(new C3p0Utils().getConnection()+"连接成功");
    }
}
package utils;

import dao.UserDao;
public class PageUtils {
     private UserDao userdao=new UserDao();     
     public boolean existsUserName(String username) {
            if(userdao.findByUserName(username)==null){
                return false;//表示不可以用
            }
            return true;//表示可以用
        }
}
package utils;
import java.util.List;
import dao.MessageDao;
import dao.UserDao;
import model.Message;
import model.PageBean;
import model.User;
public class PageUtils2 {
    private UserDao userdao=new UserDao();
     public PageBean queryPageBean(String currentPage,int pageSize) {           
            PageBean pageBean = new PageBean();
            pageBean.setCurrentPage(Integer.parseInt(currentPage));          
            MessageDao dao = new MessageDao();
            int totalCount=dao.queryCount();
            pageBean.setTotalCount(totalCount);
            pageBean.setPageSize(pageSize);
            List<Message> list = dao.queryData(pageBean.getCurrentPage() ,pageBean.getPageSize());
            for(Message m:list) {
                User user=userdao.findById(m.getU_id());
                m.setUser(user);
            }
            pageBean.setMdata(list);
            return pageBean;
        }     
     public PageBean queryPageBean2(String currentPage,int pageSize) {
            PageBean pageBean = new PageBean();            
            pageBean.setCurrentPage(Integer.parseInt(currentPage));            
            MessageDao dao = new MessageDao();         
            int totalCount=dao.queryCount();
            pageBean.setTotalCount(totalCount);           
            pageBean.setPageSize(pageSize);
            List<Message> list = dao.queryData(pageBean.getCurrentPage() ,pageBean.getPageSize());
            for(Message m:list) {
                User user=userdao.findById(m.getU_id());
                m.setUser(user);
            }
            pageBean.setMdata(list);
            return pageBean;
        }
}

 

留言板后台。

标签:String,--,request,源码,JSP,user,new,import,public
From: https://www.cnblogs.com/lhd001/p/17196712.html

相关文章

  • redis列表 hash 其他操作 redis管道
    目录回顾redis之列表redis之hashredis其他操作redis管道Django中使用redis方式一:自定义包方案(通用的,不针对于框架,所有的框架都可以用)方式二:Django方案方案一(推荐使用):Dj......
  • 我的笔太冷漠。
    前言:感冒了,有点发烧,说胡话。还有二十多天就省选了,我还清醒地认知到自己处于一个浮躁,无法静下心来的状态。寒风吹过楼下树,却吹不寒我兜中的手。其实有一说一我很讨厌现......
  • 基于meanshift算法的目标聚类和目标跟踪matlab仿真
    1.算法描述meanshift算法其实通过名字就可以看到该算法的核心,mean(均值),shift(偏移),简单的说,也就是有一个点,它的周围有很多个点我们计算点移动到每个点所需要的偏移量......
  • Microsoft 365 解决方案:Microsoft 365 如何集成Service Now应用程序?
    Blog链接:​​​​https://blog.51cto.com/u_13637423​​​关于ServiceNow与Microsoft365的相关信息,之前blog有过很多介绍说明,本文将以Servicenow为例,介绍一下Microsoft......
  • 基于双闭环PID控制器的永磁同步电机控制系统仿真
    1.算法描述永磁同步电机(PMSM,permanentmagnetsynchronousmotor)的基本结构主要包括定子、转子以及端盖三个主要模块。其中转子磁路结构是永磁同步电机与其它电机最主要的......
  • Redis 的Java客户端——Jedis连接池的使用详解
    一.Redis的Java客户端jedis的官方仓库地址:https://github.com/redis/jedisRedis数据结构Redis是一个key-value的数据库,key一般是String类型,不过value的类......
  • 【Rides】使用Xshell 链接云服务器安装Rides及其三种启动方法详解
    一.NoSQL和SQl的概念SQL:关系型数据库1.结构化2.关系型:关联的3.语法固定,所有的sql数据库sql语法都是相同的。SQL查询:NoSQL:非关系型数据库1.非结构化(约束松散)2.非......
  • 数据建模——实体#yyds干货盘点#
    数据仓库(DataWarehouse)是一个存储企业数据的集合,是一个综合性的数据存储环境,用于支持企业的决策制定和分析。在数据仓库中,实体是指可以被表示和存储的实际或抽象的对象,例......
  • k8s 练习 - node 亲和和反亲和
    假设有3 个节点,具有一下标签:节点名标签w1env=prod,plan=a1,kubernetes.io/hostname=w1w2env=dev,plan=a2,kubernetes.io/hostname=w2w3env=test,plan=a3,kubernetes......
  • 3.8学习总结
    温故知新publicclassTest{publicstaticvoidmain(String[]args){intx=10;while(x<20){System.out.print("valueofx:"+x);x++;System.out.pri......