您的位置:首页 > 编程语言 > Java开发

Mybatis+SpringMVC的简单学生管理系统(提供数据库设计)|登录、验证、用户等级不同功能不同、留言、增删改查等

2020-03-28 10:58 471 查看

学生管理系统

  • 二、代码区
  • 三、总结
  • 功能介绍

    1. 登录验证,(同时ajax的异步验证)
    2. 老师和学生登录后有不同的界面
    3. 学生可以给老师留言,并查看自己留言的状态
    4. 老师可以对学生进行增删改查,对留言进行处理

    一、包结构



    导入的架包

    后台各个层的功能

    1. User:用户类、Message:留言信息类、MessageVo:过度类为实现特定功能单另的类
    2. BaseDao: Mybatis特性抽取的封装类
    3. UserDao: dao层的接口类;MessageDao:dao层的接口类
    4. UserMapper.xml 和 MessageMapper.xml是sql语句的配置类
    5. UserService和MessageService 是service层的接口类;UserServiceImpl 和 MessageServiceImpl是service的实现类
    6. mybatis-config.xml Mybatis的配置文件;springmvc.xml springmvc的配置文件

    前端页面的功能

    1. Login.jsp登录页面
    2. addUser.jsp 添加学生页面
    3. doUpdate.jsp学生信息的修改页面
    4. userInfo.jsp老师登录进去的页面
    5. student.jsp学生信息显示页面
    6. doMessage.jsp 老师页面的留言区
    7. leaveMsg.jsp学生留言页面
    8. error.jsp错误页面,当发生输入错误时,自动跳到错误页面

    二、代码区

    后台代码

    一、entity包

    1. user.java
    package entity;
    public class User {
    private int id;
    private String name;
    private int age;
    private String address;
    private int tele;
    private String password;
    private int level;
    public int getLevel() {
    return level;
    }
    public void setLevel(int level) {
    this.level = level;
    }
    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    public String getAddress() {
    return address;
    }
    public void setAddress(String address) {
    this.address = address;
    }
    public int getTele() {
    return tele;
    }
    public void setTele(int tele) {
    this.tele = tele;
    }
    public String getPassword() {
    return password;
    }
    public void setPassword(String password) {
    this.password = password;
    }
    
    }
    1. Message.java
    package entity;
    
    import java.util.Date;
    
    public class Message {
    private int mid,sidFrom,status;
    private String content;
    private Date createdTime,updateTime;
    public int getMid() {
    return mid;
    }
    public void setMid(int mid) {
    this.mid = mid;
    }
    public int getSidFrom() {
    return sidFrom;
    }
    public void setSidFrom(int sidFrom) {
    this.sidFrom = sidFrom;
    }
    public int getStatus() {
    return status;
    }
    public void setStatus(int status) {
    this.status = status;
    }
    public String getContent() {
    return content;
    }
    public void setContent(String content) {
    this.content = content;
    }
    public Date getCreatedTime() {
    return createdTime;
    }
    public void setCreatedTime(Date createdTime) {
    this.createdTime = createdTime;
    }
    public Date getUpdateTime() {
    return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
    this.updateTime = updateTime;
    }
    }
    1. MessageVo.java
    package entity;
    
    public class MessageVo {
    private int mid;
    private String sname,content,ctime,utime;
    public int getMid() {
    return mid;
    }
    public void setMid(int mid) {
    this.mid = mid;
    }
    public String getSname() {
    return sname;
    }
    public void setSname(String sname) {
    this.sname = sname;
    }
    public String getContent() {
    return content;
    }
    public void setContent(String content) {
    this.content = content;
    }
    public String getCtime() {
    return ctime;
    }
    public void setCtime(String ctime) {
    this.ctime = ctime;
    }
    public String getUtime() {
    return utime;
    }
    public void setUtime(String utime) {
    this.utime = utime;
    }
    }

    二、dao包

    1. BaseDao.java
    package dao;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    //增删改需要自动提交,查询不需要
    public class BaseDao {
    
    public static SqlSessionFactory factory=null;
    
    public static void getFactory() {
    //mybatis的配置文件的路径
    String resource = "mybatis-config.xml";
    InputStream inputStream;
    try {
    inputStream = Resources.getResourceAsStream(resource);
    factory=new SqlSessionFactoryBuilder().build(inputStream);
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    
    public static SqlSession getSession() {
    if (factory==null) {
    getFactory();
    }
    SqlSession session=factory.openSession();
    return session;
    }
    
    public static SqlSession getSession(boolean isAutoCommit) {
    if (factory==null) {
    getFactory();
    }
    SqlSession session=factory.openSession(isAutoCommit);
    return session;
    }
    }
    1. UesrDao.java
    package dao;
    
    import java.util.List;
    
    import org.apache.ibatis.annotations.Param;
    
    import entity.User;
    
    public interface UserDao {
    //获取所有学生信息
    List<User> getUser();
    //根据id获取个人用户信息
    User getUserById(int id);
    
    //修改学生信息
    int modify(
    @Param("id")String id,
    @Param("name")String name,
    @Param("age")String age,
    @Param("address")String address,
    @Param("tele")String tele);
    //添加学生
    int addUser(User user);
    
    //删除学生
    int delUserById(int id);
    }
    1. MessageDao.java
    package dao;
    
    import java.util.List;
    
    import org.apache.ibatis.annotations.Param;
    
    import entity.Message;
    
    public interface MessageDao {
    //将留言传到数据库
    int sendMsg(@Param("id")int sidFrom,@Param("content")String content);
    //根据status来获取留言信息
    List<Message> getMessage(Integer[] statuses);
    //根据mid处理留言状态
    int deal(@Param("mid")int mid,@Param("status")int status);
    //获取所有留言信息
    List<Message> getAllMessage();
    
    //读留言
    int readMessage();
    
    //学生获取自己的留言信息
    List<Message> getMessageById(int id);
    }
    1. UserMapper.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="dao.UserDao">
    <!-- 根据id获取个人信息 -->
    <select id="getUserById" resultMap="user">
    select * from user where id  = #{id}
    </select>
    <!--获取所有人的信息  -->
    <select id="getUser" resultMap="user">
    select * from user
    </select>
    <!--修改  -->
    <update id="modify">
    update user
    <trim prefix="set" suffixOverrides="," suffix="where id = #{id}">
    <if test="name != null and name != ''" >
    name=#{name},
    </if>
    <if test="age != null and age != ''">
    age = #{age},
    </if>
    <if test="address != null and address != ''">
    address = #{address},
    </if>
    <if test="tele != null and tele != ''">
    tele =#{tele},
    </if>
    </trim>
    </update>
    <!--删除  -->
    <delete id="delUserById">
    delete from user where id =#{id}
    </delete>
    <!--添加  -->
    <insert id="addUser">
    insert into user(name,age,address,tele,password) values(#{name},#{age},#{address},#{tele},#{password})
    </insert>
    <resultMap type="entity.User" id="user">
    <result property="id" column="id"/>
    <result property="name" column="name"/>
    <result property="age" column="age"/>
    <result property="address" column="address"/>
    <result property="tele" column="tele"/>
    <result property="level" column="levle"/>
    </resultMap>
    </mapper>
    1. MessageMapper.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="dao.MessageDao">
    <select id="getMessageById" resultMap="message">
    select * from user u
    left join message m on u.id = m.sid_from where id = #{id}
    </select>
    
    <!-- 获取所有留言信息 -->
    <select id="getAllMessage" resultMap="message">
    select * from message
    </select>
    <!--将留言传到数据库  -->
    <insert id="sendMsg">
    insert into message(sid_from,content) values(#{id},#{content})
    </insert>
    <!--获取留言信息(通过不同留言状态)  -->
    <select id="getMessage" resultMap="message">
    select * from message where `status` in
    <foreach collection="array" open="(" close=")" separator="," item="status">
    #{status}
    </foreach>
    order by created_Time desc
    </select>
    <!--对留言信息的处理  -->
    <update id="deal">
    update message set `status`=#{status},updated_time=SYSDATE() where mid=#{mid}
    </update>
    <!--已读信息  -->
    <update id="readMessage">
    update message set `status` = 1 where `status` = 0
    </update>
    <resultMap type="entity.Message" id="message">
    <result property="mid" column="mid"/>
    <result property="sidFrom" column="sid_from"/>
    <result property="content" column="content"/>
    <result property="createdTime" column="created_Time"/>
    <result property="updateTime" column="updated_Time"/>
    <result property="status" column="status"/>
    </resultMap>
    </mapper>

    三、service包

    1. UserService.java
    package service;
    
    import java.util.List;
    
    import entity.User;
    
    public interface UserService {
    List<User> getUser();
    
    User getUserById(int id);
    
    boolean modify(String id,String name,String age,String address,String tele);
    
    boolean addUser(String name,int age,String address,int tele,String password);
    
    boolean delUserById(int id);
    }
    1. UserServiceImpl.java
    package service.impl;
    
    import java.util.List;
    
    import dao.BaseDao;
    import dao.UserDao;
    import entity.User;
    import service.UserService;
    
    public class UserServiceImpl implements UserService{
    
    @Override
    public List<User> getUser() {
    // TODO Auto-generated method stub
    return BaseDao.getSession().getMapper(UserDao.class).getUser();
    }
    
    @Override
    public User getUserById(int id) {
    // TODO Auto-generated method stub
    return BaseDao.getSession().getMapper(UserDao.class).getUserById(id);
    }
    
    @Override
    public boolean modify(String id,String name, String age, String address, String tele) {
    if (BaseDao.getSession(true).getMapper(UserDao.class).modify(id,name, age, address, tele)>0) {
    return true;
    }
    return false;
    }
    
    @Override
    public boolean addUser(String name, int age, String address, int tele,String password) {
    User user = new User();
    user.setAge(age);
    user.setName(name);
    user.setAddress(address);
    user.setTele(tele);
    user.setPassword(password);
    if (BaseDao.getSession(true).getMapper(UserDao.class).addUser(user)>0) {
    return true;
    }
    return false;
    }
    
    @Override
    public boolean delUserById(int id) {
    if (BaseDao.getSession(true).getMapper(UserDao.class).delUserById(id)>0) {
    return true;
    }
    return false;
    }
    
    }
    1. MessageService.java
    package service;
    
    import java.util.List;
    
    import entity.Message;
    import entity.MessageVo;
    
    public interface MessageService {
    boolean sendMsg(int sidFrom,String content);
    
    List<Message> getUnReadMsg();
    
    List<MessageVo> getUnDealedMsg();
    
    List<Message> getAgreeMsg();
    
    List<Message> getRefMsg();
    
    boolean deal(int mid,String type);
    
    List<Message> getAllMessage();
    //学生获取自己的留言信息
    List<Message> getMessageById(int id);
    
    //是否撤回
    boolean feedBack(int mid);
    
    //是否已读
    boolean readMessage();
    }
    1. MessageServiceImpl.java
    package service.impl;
    
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.List;
    
    import dao.BaseDao;
    import dao.MessageDao;
    import dao.UserDao;
    import entity.Message;
    import entity.MessageVo;
    import entity.User;
    import service.MessageService;
    
    public class MessageServiceImpl implements MessageService{
    
    @Override
    public boolean sendMsg(int sidFrom, String content) {
    if (BaseDao.getSession(true).getMapper(MessageDao.class).sendMsg(sidFrom, content)>0) {
    return true;
    }
    return false;
    }
    
    @Override
    public List<Message> getUnReadMsg() {
    // TODO Auto-generated method stub
    Integer[] status = {0};
    return BaseDao.getSession().getMapper(MessageDao.class).getMessage(status);
    }
    
    @Override
    public List<Message> getAgreeMsg() {
    // TODO Auto-generated method stub
    Integer[] status = {2};
    return BaseDao.getSession().getMapper(MessageDao.class).getMessage(status);
    }
    
    @Override
    public List<Message> getRefMsg() {
    // TODO Auto-generated method stub
    Integer[] status = {3};
    return BaseDao.getSession().getMapper(MessageDao.class).getMessage(status);
    }
    
    @Override
    public boolean deal(int mid, String type) {
    // TODO Auto-generated method stub
    int status = 0;
    if (type.equals("agree")) {
    status = 2;
    }else if(type.equals("disagree")) {
    status = 3;
    }
    
    if (BaseDao.getSession(true).getMapper(MessageDao.class).deal(mid, status)>0) {
    return true;
    }
    return false;
    }
    
    @Override
    public List<MessageVo> getUnDealedMsg() {
    Integer[] status = {0,1};
    List<Message> mlist = BaseDao.getSession().getMapper(MessageDao.class).getMessage(status);
    System.out.println(mlist);
    List<MessageVo> mvList=new ArrayList<MessageVo>();
    for (Message message : mlist) {
    mvList.add(changeMsgVo(message));
    }
    return mvList;
    }
    
    @Override
    public List<Message> getMessageById(int id) {
    // TODO Auto-generated method stub
    return BaseDao.getSession().getMapper(MessageDao.class).getMessageById(id);
    }
    
    @Override
    public List<Message> getAllMessage() {
    // TODO Auto-generated method stub
    return BaseDao.getSession().getMapper(MessageDao.class).getAllMessage();
    }
    
    private MessageVo changeMsgVo(Message msg) {
    MessageVo vo=new MessageVo();
    vo.setMid(msg.getMid());
    vo.setContent(msg.getContent());
    System.out.println(msg.getSidFrom());
    User user = BaseDao.getSession().getMapper(UserDao.class).getUserById(msg.getSidFrom());
    vo.setSname(user.getName());
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    vo.setCtime(sdf.format(msg.getCreatedTime()));
    if (msg.getUpdateTime() == null) {
    vo.setUtime("2020-01-01 00:00:00");;
    }else {
    
    vo.setUtime(sdf.format(msg.getUpdateTime()));
    }
    System.out.println(vo);
    return vo;
    }
    @Override
    public boolean feedBack(int mid) {
    int status = 4;
    if (BaseDao.getSession(true).getMapper(MessageDao.class).deal(mid, status)>0) {
    return true;
    }
    return false;
    }
    @Override
    public boolean readMessage() {
    BaseDao.getSession(true).getMapper(MessageDao.class).readMessage();
    return true;
    }
    }

    配置文件

    1. Mybatis
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    <environments default="development">
    <environment id="development">
    <transactionManager type="JDBC"/>
    <dataSource type="POOLED">
    <property name="driver" value="com.mysql.jdbc.Driver"/>
    <!-- <property name="url" value="jdbc:mysql://localhost:3306/bd13?useUnicode=true&characterEncoding=UTF-8"/>-->
    <property name="url" value="jdbc:mysql://localhost:3306/数据库名"/>
    <property name="username" value="数据库用户名"/>
    <property name="password" value="密码"/>
    </dataSource>
    </environment>
    </environments>
    <!--mapper的路径  -->
    <mappers>
    <mapper resource="dao/UserMapper.xml"/>
    <mapper resource="dao/MessageMapper.xml"/>
    </mappers>
    </configuration>
    1. SpringMVC
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    
    <mvc:annotation-driven />
    
    <context:component-scan base-package="controller"></context:component-scan>
    
    <context:annotation-config />
    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/" />
    <property name="suffix" value=".jsp" />
    </bean>
    </beans>

    四、controller包

    1. UserController.java
    package controller;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    
    import entity.Message;
    import entity.MessageVo;
    import entity.User;
    import service.MessageService;
    import service.UserService;
    import service.impl.MessageServiceImpl;
    import service.impl.UserServiceImpl;
    
    @Controller
    public class UserController {
    UserService service = new UserServiceImpl();
    MessageService mservice = new MessageServiceImpl();
    @RequestMapping("/doLogin")
    public String doLogin(@RequestParam(value="id") int id,
    @RequestParam(value="pwd")String password,
    HttpServletRequest request,
    HttpSession session) {
    
    User user = service.getUserById(id);
    if (user.getPassword().equals(password)) {
    session.setAttribute("user", user);
    if (user.getLevel()>3) {
    return "redirect:/initTeacher.action";
    }else {
    return "redirect:/initStudent.action";
    }
    }else {
    return "error";
    }
    }
    
    @RequestMapping("/checkId")
    public void check(HttpServletResponse response,@RequestParam("id")int id) {
    User user =service.getUserById(id);
    System.out.println(user);
    String answer = "";
    if (user==null) {
    answer = "没有这个学号";
    }else {
    answer = "请继续输入密码";
    }
    try {
    response.setCharacterEncoding("utf-8");
    PrintWriter writer = response.getWriter();
    writer.write(answer);
    writer.flush();
    writer.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    
    }
    
    @RequestMapping("/doUpdateId")
    
    public String doUpdateId(@RequestParam(value="id") String id,
    HttpServletRequest request,
    HttpSession session) {
    int i = new Integer(id);
    User user = service.getUserById(i);
    request.setAttribute("user", user);
    return "doUpdate";
    }
    @RequestMapping("/doUpdate")
    public String doUpdate(
    @RequestParam(value="id") String id,
    @RequestParam(value="name") String name,
    @RequestParam(value="age")String age,
    @RequestParam(value="address")String address,
    @RequestParam(value="tele")String tele,
    HttpServletRequest request
    ) {
    boolean flag = service.modify(id,name, age, address, tele);
    return "redirect:/initTeacher.action";
    }
    
    @RequestMapping("/delUser")
    public String delUser(@RequestParam(value="id",required = false) int id,
    HttpServletRequest request,
    HttpSession session){
    service.delUserById(id);
    return "redirect:/initTeacher.action";
    }
    
    @RequestMapping("/addUser")
    public String addUser(
    @RequestParam(value="name")String name,
    @RequestParam(value="pwd")String password,
    @RequestParam(value="address")String address,
    @RequestParam(value="age")int age,
    @RequestParam(value="tele")int tele,
    HttpServletRequest request,
    HttpSession session) {
    service.addUser(name, age, address, tele,password);
    return "redirect:/initTeacher.action";
    }
    @RequestMapping("/initTeacher")
    public String initTeacher(HttpServletRequest request,HttpSession session) {
    List<User> uList = service.getUser();
    List<MessageVo> unDeal=mservice.getUnDealedMsg();
    List<Message> agree=mservice.getAgreeMsg();
    List<Message> disagree=mservice.getRefMsg();
    
    request.setAttribute("ulist", uList);
    request.setAttribute("unDeal", unDeal);
    request.setAttribute("agree", agree);
    request.setAttribute("disagree", disagree);
    return "userInfo";
    }
    
    @RequestMapping("/initStudent")
    
    public String initStudent(HttpServletRequest request,HttpSession session) {
    boolean flag = false;
    User user = (User) session.getAttribute("user");
    List<Message> slist = mservice.getMessageById(user.getId());
    List<Message> mlist = mservice.getAllMessage();
    for (Message message : mlist) {
    if (user.getId()==message.getSidFrom()) {
    request.setAttribute("slist", slist);
    flag=true;
    }
    }
    if (flag) {
    return "student";
    }else {
    return "leaveMsg";
    }
    }
    }
    1. MessageController.java
    package controller;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    
    import entity.Message;
    import entity.MessageVo;
    import entity.User;
    import service.MessageService;
    import service.UserService;
    import service.impl.MessageServiceImpl;
    import service.impl.UserServiceImpl;
    
    @Controller
    public class UserController {
    UserService service = new UserServiceImpl();
    MessageService mservice = new MessageServiceImpl();
    @RequestMapping("/doLogin")
    public String doLogin(@RequestParam(value="id") int id,
    @RequestParam(value="pwd")String password,
    HttpServletRequest request,
    HttpSession session) {
    
    User user = service.getUserById(id);
    if (user.getPassword().equals(password)) {
    session.setAttribute("user", user);
    if (user.getLevel()>3) {
    return "redirect:/initTeacher.action";
    }else {
    return "redirect:/initStudent.action";
    }
    }else {
    return "error";
    }
    }
    
    @RequestMapping("/checkId")
    public void check(HttpServletResponse response,@RequestParam("id")int id) {
    User user =service.getUserById(id);
    System.out.println(user);
    String answer = "";
    if (user==null) {
    answer = "没有这个学号";
    }else {
    answer = "请继续输入密码";
    }
    try {
    response.setCharacterEncoding("utf-8");
    PrintWriter writer = response.getWriter();
    writer.write(answer);
    writer.flush();
    writer.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    
    }
    
    @RequestMapping("/doUpdateId")
    
    public String doUpdateId(@RequestParam(value="id") String id,
    HttpServletRequest request,
    HttpSession session) {
    int i = new Integer(id);
    User user = service.getUserById(i);
    request.setAttribute("user", user);
    return "doUpdate";
    }
    @RequestMapping("/doUpdate")
    public String doUpdate(
    @RequestParam(value="id") String id,
    @RequestParam(value="name") String name,
    @RequestParam(value="age")String age,
    @RequestParam(value="address")String address,
    @RequestParam(value="tele")String tele,
    HttpServletRequest request
    ) {
    boolean flag = service.modify(id,name, age, address, tele);
    return "redirect:/initTeacher.action";
    }
    
    @RequestMapping("/delUser")
    public String delUser(@RequestParam(value="id",required = false) int id,
    HttpServletRequest request,
    HttpSession session){
    service.delUserById(id);
    return "redirect:/initTeacher.action";
    }
    
    @RequestMapping("/addUser")
    public String addUser(
    @RequestParam(value="name")String name,
    @RequestParam(value="pwd")String password,
    @RequestParam(value="address")String address,
    @RequestParam(value="age")int age,
    @RequestParam(value="tele")int tele,
    HttpServletRequest request,
    HttpSession session) {
    service.addUser(name, age, address, tele,password);
    return "redirect:/initTeacher.action";
    }
    @RequestMapping("/initTeacher")
    public String initTeacher(HttpServletRequest request,HttpSession session) {
    List<User> uList = service.getUser();
    List<MessageVo> unDeal=mservice.getUnDealedMsg();
    List<Message> agree=mservice.getAgreeMsg();
    List<Message> disagree=mservice.getRefMsg();
    
    request.setAttribute("ulist", uList);
    request.setAttribute("unDeal", unDeal);
    request.setAttribute("agree", agree);
    request.setAttribute("disagree", disagree);
    return "userInfo";
    }
    
    @RequestMapping("/initStudent")
    
    public String initStudent(HttpServletRequest request,HttpSession session) {
    boolean flag = false;
    User user = (User) session.getAttribute("user");
    List<Message> slist = mservice.getMessageById(user.getId());
    List<Message> mlist = mservice.getAllMessage();
    for (Message message : mlist) {
    if (user.getId()==message.getSidFrom()) {
    request.setAttribute("slist", slist);
    flag=true;
    }
    }
    if (flag) {
    return "student";
    }else {
    return "leaveMsg";
    }
    }
    }

    前端页面

    1. Login.jsp
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript" src="jquery-1.8.3.js"></script>
    <script type="text/javascript">
    function check() {
    var id = $("#id").val();
    if (id==null||id=="") {
    alert("学号不能为空");
    return;
    }else{
    $.post("checkId.action",{"id":id},function(data){
    $("#msg").text(data);
    });
    }
    }
    </script>
    </head>
    <body>
    <h2 align="center">登录页面</h2>
    <form action="doLogin.action" >
    学号:<input id="id" type="text" name="id" onblur="check()"/><br>
    密码:<input type="password" name="pwd"><br>
    <input type="submit" value="登录">
    </form>
    <p id = "msg"></p>
    </body>
    </html>
    1. userInfo.jsp
    <%@page import="java.util.ArrayList"%>
    <%@page import="java.lang.reflect.Array"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%@ page import="entity.*,java.util.*"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style type="text/css">
    .wtd{
    width: 150px;
    }
    </style>
    <script type="text/javascript" src="jquery-1.8.3.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
    $("#unDealTitle").click(function() {
    $("#unDeal").slideToggle(3000);
    $.post("readMessage.action");
    });
    
    $("#disagreeTitle").click(function() {
    $("#disagree").slideToggle(3000);
    });
    
    $("#agreeTitle").click(function() {
    $("#agree").slideToggle(3000);
    });
    });
    </script>
    </head>
    <body>
    <%
    
    Object userObj = request.getAttribute("ulist");
    List<User> ulist = new ArrayList<User>();
    
    if (userObj != null) {
    ulist = (List<User>) userObj;
    }
    %>
    <div align="center">
    <h2>欢迎${user.name }</h2><br>
    <a href="Login.jsp">重新登录</a>
    </div>
    <table align="center" border="1" color="black">
    <tr align="center">
    <td>
    <button ><a href="addUser.jsp">添加用户</a></button>
    </td>
    </tr>
    <tr align="center">
    <td>学号</td>
    <td>姓名</td>
    <td>年龄</td>
    <td>地址</td>
    <td>电话</td>
    <td colspan="2">操作</td>
    </tr>
    
    <%
    for (User u : ulist) {
    %>
    <tr>
    <td><%=u.getId()%></td>
    <td><%=u.getName()%></td>
    <td><%=u.getAge()%></td>
    <td><%=u.getAddress()%></td>
    <td><%=u.getTele()%></td>
    <td><a href="doUpdateId.action?id=<%=u.getId()%>">修改</a></td>
    <td><a href="delUser.action?id=<%=u.getId()%>">删除</a></td>
    </tr>
    
    <%
    }
    %>
    </table>
    <%
    List<MessageVo> unDeal = (List<MessageVo>) request.getAttribute("unDeal");
    List<Message> disagree = (List<Message>) request.getAttribute("disagree");
    List<Message> agree = (List<Message>) request.getAttribute("agree");
    
    %>
    <div align="center" name="message">
    
    <h4 id="unDealTitle" align="center">
    您有 <%=unDeal.size()%>条未处理消息
    </h4>
    <div id="unDeal" style="display: none;">
    <table align="center">
    <tr>
    <th>发送人</th>
    <th class="wtd">留言内容</th>
    <th>发送时间</th>
    <th colspan="2">操作</th>
    </tr>
    <%
    for (MessageVo mvo : unDeal) {
    %>
    <tr>
    <td><%=mvo.getSname()%></td>
    <td class="wtd"><%=mvo.getContent()%></td>
    <td><%=mvo.getCtime()%></td>
    <td><a href="msg/agree/deal.action?mid=<%=mvo.getMid()%>">同意</a>
    <a href="msg/disagree/deal.action?mid=<%=mvo.getMid()%>">驳回</a></td>
    </tr>
    <%
    }
    %>
    </table>
    </div>
    <br>
    <h4 id="disagreeTitle" align="center">
    您总共有<%=disagree.size()%>条已驳回的消息
    </h4>
    <div id="disagree" style="display: none;">
    <table align="center">
    <tr>
    <th>发送人</th>
    <th class="wtd">留言内容</th>
    <th>发送时间</th>
    <th>操作</th>
    </tr>
    <%
    for (Message mess : disagree) {
    %>
    <tr>
    <td><%=mess.getSidFrom()%></td>
    <td class="wtd"><%=mess.getContent()%></td>
    <td><%=mess.getCreatedTime()%></td>
    <td><a href="msg/agree/deal.action?mid=<%=mess.getMid()%>">同意</a></td>
    </tr>
    <%
    }
    %>
    </table>
    </div>
    <br>
    <h4 id="agreeTitle" align="center">
    您总共有<%=agree.size()%>条已同意的消息
    </h4>
    <div id="agree" style="display: none;">
    <table align="center">
    <tr>
    <th>发送人</th>
    <th class="wtd">留言内容</th>
    <th>发送时间</th>
    <th>审批时间</th>
    </tr>
    <%
    for (Message mess : agree) {
    %>
    <tr>
    <td><%=mess.getSidFrom()%></td>
    <td class="wtd"><%=mess.getContent()%></td>
    <td><%=mess.getCreatedTime()%></td>
    <td><%=mess.getUpdateTime()%></td>
    </tr>
    <%
    }
    %>
    </table>
    
    </div>
    </body>
    </html>
    1. addUser.jsp
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <form action="addUser.action">
    姓名:<input type="text" name = "name" >
    年龄:<input type="text" name = "age" >
    地址:<input type="text" name = "address" >
    电话:<input type="text" name = "tele" >
    密码:<input type="text" name = "pwd" >
    <input type="submit" value="提交">
    
    </form>
    </body>
    </html>
    1. doMessage.jsp
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="java.util.*,entity.*" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <h2 align="center"> 班主任页面${user.name }</h2>
    <%
    Object userObj = request.getAttribute("mlist");
    List<Message> mlist = new ArrayList<Message>();
    if(userObj != null){
    mlist = (List<Message>)userObj;
    }
    %>
    <table>
    <tr>
    <td>发送人</td>
    <td>内容</td>
    <td>留言时间</td>
    <td colspan="2">状态</td>
    </tr>
    <%
    for(Message m : mlist){
    %>
    <tr>
    <td><%=m.getSidFrom() %></td>
    <td><%=m.getContent() %></td>
    <td><%=m.getCreatedTime() %></td>
    <td>
    <a href="msg/agree/deal.action?mid = <%=m.getMid()%>">同意</a>
    <a href="msg/disagree/deal.action?mid = <%=m.getMid()%>">驳回</a>
    </td>
    </tr>
    <%
    }
    %>
    </table>
    </body>
    </html>
    1. doUpdata.jsp
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%@ page import="entity.User" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <form action="doUpdate.action">
    <h2 align="center">${user.name}</h2>
    <input type="hidden" name ="id" value="${user.id}">
    姓名:<input type="text" name="name"/>
    年龄:<input type="text" name="age"/>
    地址:<input type="text" name="address"/>
    电话:<input type="text" name="tele"/>
    <input type="submit"  value = "确定"/>
    </form>
    </body>
    </html>
    1. leaveMsg.jsp
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <h2 align="center">欢迎学员${user.name }</h2>
    <center>
    <form action="leaveMsg.action">
    <input type="hidden" name="sidFrom" value="${user.id }">
    <p align="center">书写留言</p>
    <textarea rows="10" cols="30" name="content">
    </textarea><br>
    <input type="submit" value="确定留言" >
    </form>
    </center>
    </body>
    </html>
    1. student.jsp
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%@ page import="java.util.*,entity.*" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <%
    Object userObj = request.getAttribute("slist");
    List<Message> slist = new ArrayList<Message>();
    
    if(userObj != null){
    slist = (List<Message>)userObj;
    }
    %>
    
    <h2 align = "center"> 欢迎  ${user.name }</h2>
    <h2 align = "center"> ${info}</h2>
    <div align="center">
    <p>${info }</p>
    <button><a href="leaveMsg.jsp">写留言</a></button>
    <button><a href="Login.jsp">重新登录</a></button>
    </div>
    <table align="center">
    <tr>
    <td>留言号</td>
    <td>内容</td>
    <td>创建时间</td>
    <td>处理时间</td>
    <td>状态</td>
    <td>操作</td>
    </tr>
    
    <%
    for(Message m : slist){
    %>
    <tr>
    <td><%=m.getMid() %></td>
    <td><%=m.getContent() %></td>
    <td><%=m.getCreatedTime() %></td>
    <td><%=m.getUpdateTime() %></td>
    <td><%
    int i = m.getStatus();
    if(i==0){ out.println("未处理");
    4000
    }
    if(i==1){out.println("已查看");}
    if(i==2){out.println("同意");}
    if(i==3){out.println("驳回");}
    if(i==4){out.println("已撤回");}
    %></td>
    <td>
    <% if(m.getStatus()==0){%>
    <a href="feedBack.action?mid=<%=m.getMid()%>">撤回</a>
    <% } %>
    </td>
    </tr>
    <%
    }
    %>
    </table>
    </body>
    </html>

    数据库设计

    /*
    SQLyog Ultimate v13.1.1 (64 bit)
    MySQL - 5.5.36 : Database - trainning
    *********************************************************************
    */
    
    /*!40101 SET NAMES utf8 */;
    
    /*!40101 SET SQL_MODE=''*/;
    
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
    CREATE DATABASE /*!32312 IF NOT EXISTS*/`trainning` /*!40100 DEFAULT CHARACTER SET utf8 */;
    
    USE `trainning`;
    
    /*Table structure for table `message` */
    
    DROP TABLE IF EXISTS `message`;
    
    CREATE TABLE `message` (
    `mid` int(5) NOT NULL AUTO_INCREMENT,
    `sid_from` int(5) DEFAULT NULL,
    `content` char(100) DEFAULT NULL COMMENT '留言',
    `created_Time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `updated_Time` timestamp NULL DEFAULT NULL,
    `status` int(5) DEFAULT '0' COMMENT '0:未处理,1:已处理,2:同意,3:驳回',
    PRIMARY KEY (`mid`)
    ) ENGINE=InnoDB AUTO_INCREMENT=126 DEFAULT CHARSET=utf8;
    
    /*Data for the table `message` */
    
    insert  into `message`(`mid`,`sid_from`,`content`,`created_Time`,`updated_Time`,`status`) values
    (121,2,'天气真好','2020-03-27 09:41:12','2020-03-27 10:09:24',4),
    (123,2,'我很棒','2020-03-27 13:38:37','2020-03-27 13:41:12',2),
    (124,2,'hello','2020-03-27 13:39:29','2020-03-27 13:39:32',4),
    (125,16,'你好','2020-03-27 13:43:16','2020-03-27 13:44:13',2);
    
    /*Table structure for table `user` */
    
    DROP TABLE IF EXISTS `user`;
    
    CREATE TABLE `user` (
    `id` int(5) NOT NULL AUTO_INCREMENT,
    `name` char(10) NOT NULL,
    `age` int(10) DEFAULT NULL,
    `address` char(20) DEFAULT NULL,
    `tele` int(11) DEFAULT NULL,
    `password` char(20) NOT NULL,
    `level` int(5) DEFAULT '1' COMMENT '用户等级',
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;
    
    /*Data for the table `user` */
    
    insert  into `user`(`id`,`name`,`age`,`address`,`tele`,`password`,`level`) values
    (2,'marry',23,'河北',12312,'1234',1),
    (11,'peng',22,'北京',232,'1234',4),
    (13,'jack',22,'天津',1234,'111111',1),
    (14,'tom',11,'北京',1234,'111111',1),
    (16,'liiiiii',22,'天津',12312,'111111',1);
    
    /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
    /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
    /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
    
    20000
    /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

    三、总结

    1. 设计之初,把握自己的逻辑,前后端交互的项目设计,首先要设计好自己的页面需要的信息,之后再书写自己的逻辑层,把我好自己的需要实现的功能(controller包)
    2. 过程中注意把控细节,sql语句的细节,配置文件的路径,方法名和配置文件中的id一致
    3. 增删改需要自动提交事务,所以BaseDao中的SQLsession中提供两种一种自动提交,一种不提交

    下载资源链接地址:
    https://download.csdn.net/download/wenquan19960602/12277108

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: 
    相关文章推荐