zoukankan      html  css  js  c++  java
  • jsp第7个作业

     
    MailService
    package mail.service;
    
    import java.util.List;
    
    import mail.dao.DaoFactory;
    import mail.dao.MailDao;
    import mail.dao.UserDao;
    import mail.domain.Mail;
    import mail.domain.User;
    
    public class MailService {
        private UserDao userDao = DaoFactory.getUserDao();    
        private MailDao mailDao = DaoFactory.getMailDao();
        
        public User login(User form) throws UserException {
            /*
             * 使用form中的username进行查询
             */
            User user = userDao.findByUsername(form.getUsername());
            /*
             * 如果返回null说明用户名不存在,抛出异常,异常信息为"用户名不存在"
             */
            if (user == null) {
                throw new UserException("用户名不存在");
            }
            /*
             * 比较user的password和form的password,如果不同抛出异常
             */
            if (!form.getPassword().equals(user.getPassword())) {
                throw new UserException("密码错误");
            }
            return user;
        }
        public List<Mail> findByName(String username){
            List<Mail> mail = mailDao.findByName(username);
            return mail;
            
        }
        public Mail findById(int id){
            Mail mail = mailDao.findById(id);
            return mail;
            
        }
        public void addMail(Mail mail) {
            mailDao.addMail(mail);
        }
        public void deleteById(int id) {
            mailDao.deleteById(i
    
    
    MailServlet
    package mail.web.servlet;
    
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
    
    import javax.mail.Session;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.junit.Test;
    
    import mail.domain.Mail;
    import mail.domain.User;
    import mail.service.MailService;
    import mail.service.UserException;
    import cn.itcast.servlet.BaseServlet;
    
    public class MailServlet extends BaseServlet {
    
        public String login(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            User form = new User();
            String username = request.getParameter("username");
            String password = request.getParameter("password");
            String email = request.getParameter("email");
    
            form.setUsername(username);
            form.setPassword(password);
            form.setEmail(email);
    
            try {
                MailService us = new MailService();
                User user = us.login(form);
                request.getSession().setAttribute("userName", user.getUsername());
                
                return "r:/MailServlet?method=findByName";
            } catch (UserException e) {
                request.setAttribute("msg", e.getMessage());
                request.setAttribute("user", form);
                return "f:/Login/login.jsp";
            }
    
        }
    
        public String findByName(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
            MailService us = new MailService();
            List<Mail> mails = us.findByName((String)request.getSession().getAttribute("userName"));
            request.setAttribute("mails", mails);
            return "f:/Mail/show.jsp";
    
        }
    
        public String findById(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
            MailService us = new MailService();
            String param = request.getQueryString();
            Mail findMail = us.findById(Integer.parseInt(param.split("&")[1]
                    .split("=")[1]));
            request.getSession().setAttribute("fjr", findMail.getSendto());
            request.getSession().setAttribute("bt", findMail.getTitle());
            request.getSession().setAttribute("zw", findMail.getMsgcontent());
            return "f:/Mail/showMail.jsp";
    
        }
    
        public String addMail(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            MailService us = new MailService();
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
            Mail mail = new Mail(request.getParameter("sjr"), request.getParameter("bt"), request.getParameter("zw"), 
                    1, (String) request.getSession().getAttribute("userName"), df.format(new Date()));
            us.addMail(mail);
            return "f:/MailServlet?method=findByName";
        }
        
        public String deleteById(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            String param = (String) request.getSession().getAttribute("ID");
            MailService us = new MailService();
            us.deleteById(Integer.valueOf(param.split("&")[1].split("=")[1]));
            
            return "f:/MailServlet?method=findByName";
        }
        
        
        
        @Test
        public void fun() {
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
            df.format(new Date());
        }
    
    
    JdbcMailDaoImp1
    package mail.dao;
    
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.junit.Test;
    
    import mail.domain.Mail;
    
    import com.mysql.jdbc.Connection;
    
    public class JdbcMailDaoImpl implements MailDao {
    
        public List<Mail> findByName(String username) {
            List<Mail> Mails = new ArrayList<Mail>();
            Connection con = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;
            try {
                // 得到数据库的连接
                con = JdbcUtils.getConnercion();
                // 定义sql语句 得到pstmt
                String sql = "SELECT * FROM msg WHERE username=?";
                pstmt = con.prepareStatement(sql);
                pstmt.setString(1, username);
                // 执行sql语句
                rs = pstmt.executeQuery();
                // 把rs转换成mail类
    
                while (rs.next()) {
                    // 转换成mail类
                    Mail mail = new Mail();
                    mail.setMsgid(rs.getInt("msgid"));
                    mail.setUsername(rs.getString("username"));
                    mail.setTitle(rs.getString("title"));
                    mail.setMsgcontent(rs.getString("msgcontent"));
                    mail.setState(rs.getInt("state"));
                    mail.setSendto(rs.getString("sendto"));
                    mail.setMsg_create_date(rs.getString("msg_create_date"));
                    Mails.add(mail);
    
                }
                return Mails;
            } catch (Exception e) {
                throw new RuntimeException(e);
            } finally {
                try {
                    if (pstmt != null)
                        pstmt.close();
                    if (con != null)
                        con.close();
                } catch (SQLException e) {
                }
            }
        }
    
        public Mail findById(int id) {
            Connection con = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;
            try {
                // 得到数据库的连接
                con = JdbcUtils.getConnercion();
                // 定义sql语句 得到pstmt
                String sql = "SELECT * FROM msg WHERE msgid=?";
                pstmt = con.prepareStatement(sql);
                // 给sql语句中的问好赋值
                pstmt.setInt(1, id);
                // 执行sql语句
                rs = pstmt.executeQuery();
    
                if (rs == null)
                    return null;
                if (rs.next()) {
                    Mail mail = new Mail();
                    mail.setMsgid(rs.getInt("msgid"));
                    mail.setUsername(rs.getString("username"));
                    mail.setTitle(rs.getString("title"));
                    mail.setMsgcontent(rs.getString("msgcontent"));
                    mail.setState(rs.getInt("state"));
                    mail.setSendto(rs.getString("sendto"));
                    mail.setMsg_create_date(rs.getString("msg_create_date"));
                    return mail;
                } else {
                    return null;
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            } finally {
                try {
                    if (pstmt != null)
                        pstmt.close();
                    if (con != null)
                        con.close();
                } catch (SQLException e) {
                }
            }
        }
    
        public void addMail(Mail mail) {
            Connection con = null;
            PreparedStatement pstmt = null;
            try {
                // 得到数据库的连接
                con = JdbcUtils.getConnercion();
                // 定义sql语句 得到pstmt
                // insert into
                // msg(username,title,msgcontent,state,sendto,msg_create_date)
                String sql = "INSERT INTO msg(username,title,msgcontent,state,sendto,msg_create_date) VALUES(?,?,?,?,?,?)";
                pstmt = con.prepareStatement(sql);
                // 给sql语句中的问好赋值
                pstmt.setString(1, mail.getUsername());
                pstmt.setString(2, mail.getTitle());
                pstmt.setString(3, mail.getMsgcontent());
                pstmt.setInt(4, mail.getState());
                pstmt.setString(5, mail.getSendto());
                pstmt.setString(6, mail.getMsg_create_date());
                // 执行sql语句
                pstmt.executeUpdate();
    
            } catch (Exception e) {
                throw new RuntimeException(e);
            } finally {
                // 关闭(倒关)
                try {
                    if (pstmt != null)
                        pstmt.close();
                    if (con != null)
                        con.close();
                } catch (SQLException e) {
                }
            }
        }
    
        public void deleteById(int id) {
            Connection con = null;
            PreparedStatement pstmt = null;
            try {
                // 得到数据库的连接
                con = JdbcUtils.getConnercion();
                // 定义sql语句 得到pstmt
                // DELETE FROM 表名 [WHERE 条件
                String sql = "DELETE FROM msg WHERE msgid=?";
                pstmt = con.prepareStatement(sql);
                // 给sql语句中的问好赋值
                pstmt.setInt(1, id);
                // 执行sql语句
                pstmt.executeUpdate();
    
            } catch (Exception e) {
                throw new RuntimeException(e);
            } finally {
                // 关闭(倒关)
                try {
                    if (pstmt != null)
                        pstmt.close();
                    if (con != null)
                        con.close();
                } catch (SQLException e) {
                }
            }
        }
    }
    JdbcUserDaoImp1.java
    package mail.dao;
    
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import com.mysql.jdbc.Connection;
    
    import mail.domain.User;
    
    public class JdbcUserDaoImpl implements UserDao {
    
        @Override
        public User findByUsername(String username) {
            Connection con = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;
            try {
                // 得到数据库的连接
                con = JdbcUtils.getConnercion();
                // 定义sql语句 得到pstmt
                String sql = "SELECT * FROM m_user WHERE username=?";
                pstmt = con.prepareStatement(sql);
                // 给sql语句中的问好赋值
                pstmt.setString(1, username);
                // 执行sql语句
                rs = pstmt.executeQuery();
    
                // 把rs转换成user类
                if (rs == null)
                    return null;
                if (rs.next()) {
                    // 转换成user类
                    User mail = new User();
                    mail.setUsername(rs.getString("username"));
                    mail.setPassword(rs.getString("password"));
                    mail.setEmail(rs.getString("email"));
                    return mail;
                } else {
                    return null;
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            } finally {
                try {
                    if (pstmt != null)
                        pstmt.close();
                    if (con != null)
                        con.close();
                } catch (SQLException e) {
                }
            }
        }
    
    }

  • 相关阅读:
    java基础知识:私有成员变量
    分布式架构:概述一
    java基础知识:内存
    原油期货价格跌至-37美元/桶的影响
    贷款利息
    java基础知识:IntelliJ IDEA的基础设置
    正则表达式的常用方法
    http服务器三:自己写一个服务器实现转发功能
    bzoj3875: [Ahoi2014&Jsoi2014]骑士游戏(用spfa解决有后效性的dp)
    bzoj2118: 墨墨的等式(巧妙的单源最短路+priority_queue)
  • 原文地址:https://www.cnblogs.com/Suzy-an/p/12814552.html
Copyright © 2011-2022 走看看