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

jsp第7个作业的更多相关文章
- JSP第十一次作业
1.第十二周上机作业(邮件功能)的控制层代码改用为servlet实现.2.学习通发布了考试,截止到本周六. com.gd.dao BaseDao 1 package com.gd.dao; 2 3 ...
- jsp内置对象作业3-application用户注册
1,注册页面 zhuCe.jsp <%@ page language="java" contentType="text/html; charset=UTF-8&qu ...
- jsp内置对象作业2-留言簿
1.留言簿页面:liuYan.jsp <%@ page language="java" contentType="text/html; charset=UTF-8& ...
- jsp内置对象作业1-用户登录
题目:编写一个jsp程序,实现用户登录,当用户输入的用户名或密码错误时,将页面重定向到错误提示也,并在该页面显示30秒后,自动返回到用户登录页面. 1.用户登录页面 <%@ page langu ...
- jsp第七周作业
1.p78-p79的例4-9 <%@ page language="java" import="java.util.*" pageEncoding=&qu ...
- jsp第六次作业
1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8&quo ...
- jsp第三次作业
1.在jsp页面中使用include动态标记加载音频 <%@ page language="java" import="java.util.*" page ...
- JSP第八次作业
数据库test 中建个表 stu(stuid 主键 自动增长 ,用户名,密码,年龄) 1.设计一个注册页面,实现用户注册功能2.设计一个登陆页面,实现用户名密码登陆3.两个页面可以互相超链接 1 pa ...
- JSP第七次作业
1.做一个图书类Book id,name,price ,get,set访问器,构造方法2个,1个无参,1个有参做一个测试类,在main中创建3个图书对象,放到list集合中.做一个菜单,可以添加,删除 ...
- JSP第五次作业
1.教材P78-79 例4-9 1 <%@ page language="java" import="java.util.*" pageEncoding ...
随机推荐
- Redis缓存中的数据和数据库不一致
首先关于两者数据的一致性包含有两种情况: (1)缓存中有数据时,那数据库中的数据要和缓存中的数据相同: (2)缓存中没有数据时,数据库中的数据必须是最新的. 如果不符合以上两种情况,就属于缓存和数据库 ...
- Oracle View的 With Check OPTION 參數有什麼用途?
1. 當通過View Insert數據到定義此View的SQL中的基本表的時候,insert的資料要符合SQL中here條件,否則Insert View 的操作無法成功: 2. 注意:WITH REA ...
- R语言码农的Scala学习心得
为了MLib,最近是铁了心要学好Spark.关注本博客的朋友应该知道我的主力语言是R,无论是训练模型还是做Elasticsearch,都是通过R脚本来操作的.之前的<通过 Spark R 操作 ...
- Respecting causality is all you need for training physics-informed neural networks
未发表 本篇工作时关于连续时间的PDE.也是从因果关系的角度入手,最近看过几篇该作者的工作.(简而言之就是从初始条件方向开始训练) 目前的PINN框架缺乏尊重物理系统演化所固有的时空因果结构.因此,作 ...
- pgsql 数据库密码登录配置
一.postgreSQL认证文件 pg_hba.conf 配置文件pg_hba.conf的位置,通常情况下的路径是 /etc/postgresql/[VERSION]/main/pg_hba.conf ...
- 【10】python之条件判断
Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块. Python中没有switch – case语句,也没有三元运算符. 1.if 语句 Pytho ...
- windows 批量杀进程
1 import psutil 2 from subprocess import Popen, PIPE 3 4 process_name ="bsmr.exe,fxclient.exe,F ...
- 【mysql练习】A,B两表结构完全一样,其中A中一些数据在B中不存在,用SQL将A表数据更新到B表中
1,创建符合条件的A,B表和数据 create table IF not EXISTS A (id int auto_increment primary key);create table IF no ...
- jmeter参数化时最常用随机函数
邮箱类: ${__RandomString(8,abcdefghijklmnopqrstuvwxyz,)}@126.com 手机号类: ${__Random(18000000000,189999999 ...
- Vue3.0 里为什么要用 Proxy API 替代 defineProperty API?
响应式优化. a. defineProperty API 的局限性最大原因是它只能针对单例属性做监听. Vue2.x 中的响应式实现正是基于 defineProperty 中的 descriptor, ...