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) {
            }
        }
    }

}

猜你喜欢

转载自www.cnblogs.com/Suzy-an/p/12814552.html