基于javaweb+mysql的jsp+servlet会议室预约系统(java+jsp+bootstrap+servlet+mysql)

基于javaweb+mysql的jsp+servlet会议室预约系统(java+jsp+bootstrap+servlet+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的JSP+Servlet会议室预约系统(java+jsp+bootstrap+servlet+mysql)

项目介绍

网上会议室预约系统,该项目是一个前后台的项目;

前台主要功能有: 登录、注册; 首页、预约须知; 会议室预约; 会议室信息; 会议室预约表; 后台主要功能有: 通告栏:查看、添加、修改、删除; 会议室信息:查看、添加、修改、删除; 查看登记表; 查看预约消息;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 6.数据库:MySql 8.0版本;

技术栈

  1. 后端:Servlet 2. 前端:JSP+bootstrap+jQuery

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 将项目中druid.properties配置文件中的数据库配置改为自己的配置 3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行; 4. 运行项目, 前台运行地址:http://localhost:8080/index.jsp 登录 后台运行地址:http://localhost:8080/back/index.jsp 登录
        if (startDate >= endDate){
            out.print("结束时间必须晚于开始时间");
        }else if(endDate - startDate >= 1000*60*60*14) {
            out.print("预约时常不可超出14小时");
        }else if(startHour < 8 || endHour >= 22){
            out.print("请在规定的时间段选择预约时间");
        }else if (applyService.isExistTime(start,end,mid)){
            out.print("此时间段已被预约,请换时间段");
        }else {
            out.print("ok");
        }
    }
}

public class UtilHelper {

	/**
	 * 获取当前日期时间
	 */
	public static String getTime() {
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.format(date);

	}

	/**
	 * 把date对象转换成String
	 * @param date
	 */
	public static String dateToString(Date date) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.format(date);
        HttpServletResponse response = (HttpServletResponse)resp;

        String requestURI = request.getRequestURI();

        if (UtilHelper.contains(requestURI,urls)){
            chain.doFilter(request, response);
        }else {
            HttpSession session = request.getSession();
            Admin admin = (Admin) session.getAttribute("admin");
            if (admin != null){
                chain.doFilter(request,response);
            }else {
                response.sendRedirect("login.jsp");
            }
        }
    }

    public void init(FilterConfig config) throws ServletException {
        String url = config.getInitParameter("url");
        String[] split = url.split(",");
        urls = Arrays.asList(split);
    }

}

@WebServlet("/modifyPassword")
public class ModifyPasswordServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf8");
        String id = request.getParameter("id");
        String oldpass = request.getParameter("oldpass");
        String newpass = request.getParameter("newpass");
        UserService userService = new UserServiceImpl();
        String password = userService.getPasswordById(Integer.parseInt(id));

        if(password.equals(oldpass)){
            if(status.equals("1")){
                int uid = applyService.getUid(Integer.parseInt(id));
                String username = userService.getNameById(uid);
                String meetingName = applyService.getMeetingName(Integer.parseInt(id));
                String DateTime = applyService.getDateTime(Integer.parseInt(id));
                message.setUid(uid);
                message.setTitle("系统消息");
                message.setContent("尊敬的用户"+username+",您好!您预约于"+DateTime+meetingName+"号会议室已经预约通过,请您注意时间,准时到达.");
                messageService.addMessage(message);
            }
        }
        if (count > 0){
            out.print("ok");
        }else {
            out.print("cancel");
        }

    }
}

@WebFilter({"/apply.jsp","/regform.jsp"})
public class ApplyFilter implements Filter {
    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        HttpServletRequest request = (HttpServletRequest)req;
        HttpServletResponse response = (HttpServletResponse)resp;

@WebServlet("/modifyPassword")
public class ModifyPasswordServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf8");
        String id = request.getParameter("id");
        String oldpass = request.getParameter("oldpass");
        String newpass = request.getParameter("newpass");
        UserService userService = new UserServiceImpl();
        String password = userService.getPasswordById(Integer.parseInt(id));

        if(password.equals(oldpass)){
            int count = userService.updatePassword(id,newpass);
            if(count > 0){
                request.setAttribute("msg","修改成功");
                request.getRequestDispatcher("update.jsp").forward(request,response);
            }else {
                response.sendRedirect("errorPage.jsp");
            }
        }else {
            request.setAttribute("msg","原密码错误");
            request.getRequestDispatcher("update.jsp").forward(request,response);
        }

    }
}


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf8");
        Map<String, String[]> meetingMap = request.getParameterMap();
        Meeting meeting = new Meeting();
        try {
            BeanUtils.populate(meeting,meetingMap);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
        MeetingService meetingService = new MeetingServiceImpl();
        int count = meetingService.addMeeting(meeting);

        if(count > 0){
            request.getContextPath();
            request.setAttribute("msg","添加成功");
            request.getRequestDispatcher("addmeeting.jsp").forward(request,response);
        }else {
            response.sendRedirect("../errorPage.jsp");
        }

    }
}

public class CookieUtils {
	private static final String KEY = "cookie@ybzy.com123!";

	/**
	 * 指令浏览器创建cookie文件用的方法
	 * 
	 * @param username:放到cookie信息里用户名
	 * @param req
	 * @param resp:调用addCookie方法得response对象
	 * @param sec:设置Cookie失效日期,单位秒
	 */
	public static String dateToString(Date date) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.format(date);
	}

	/**
	 *
	 * @param num
	 * @return
	 */
	public static DateTime createDateTime(int num, HttpServletRequest request){
		LocalDate ld = LocalDate.now();
		int week = ld.getDayOfWeek().getValue();

		LocalDate date = ld.plusWeeks(num);

		LocalDate monday = date.plusDays(-(week-1));
		LocalDate tuesday = monday.plusDays(1);
		LocalDate wednesday = tuesday.plusDays(1);
		LocalDate thursday = wednesday.plusDays(1);
		LocalDate friday = thursday.plusDays(1);
		LocalDate saturday = friday.plusDays(1);
		LocalDate sunday = saturday.plusDays(1);

		DateTime dateTime = new DateTime();
		dateTime.setMonday(monday.toString());
		dateTime.setTuesday(tuesday.toString());
		dateTime.setWednesday(wednesday.toString());
		dateTime.setThursday(thursday.toString());
		dateTime.setFriday(friday.toString());
		dateTime.setSaturday(saturday.toString());
		dateTime.setSunday(sunday.toString());

		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
		String first = monday.format(formatter);
		String last = sunday.format(formatter);
		dateTime.setDate(first+"—"+last);

		HttpSession session = request.getSession();
		session.setAttribute("datetime",dateTime);

		/*System.out.println(dateTime);*/

		/*Gson gson = new Gson();
		String json = gson.toJson(dateTime);
		session.setAttribute("datetimeJson",json);*/

		return dateTime;
	}

        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
        User user = (User)request.getSession().getAttribute("user");
        if (user != null){
            regform.setUid(user.getId());
            RegformService regformService = new RegformServiceImpl();
            int count = regformService.addRegform(regform);
            if (count > 0){
                request.setAttribute("msg","已发送登记信息,请等待审核通过");
                request.getRequestDispatcher("regform.jsp").forward(request,response);
            }else {
                response.sendRedirect("errorPage.jsp");
            }
        }else {
            response.sendRedirect("login.jsp");
        }
    }
}

@WebServlet("/back/addMeeting")
public class AddMeetingServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf8");
        Map<String, String[]> meetingMap = request.getParameterMap();
        Meeting meeting = new Meeting();
        try {
		LocalDate wednesday = tuesday.plusDays(1);
		LocalDate thursday = wednesday.plusDays(1);
		LocalDate friday = thursday.plusDays(1);
		LocalDate saturday = friday.plusDays(1);
		LocalDate sunday = saturday.plusDays(1);

		DateTime dateTime = new DateTime();
		dateTime.setMonday(monday.toString());
		dateTime.setTuesday(tuesday.toString());
		dateTime.setWednesday(wednesday.toString());
		dateTime.setThursday(thursday.toString());
		dateTime.setFriday(friday.toString());
		dateTime.setSaturday(saturday.toString());
		dateTime.setSunday(sunday.toString());

		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
		String first = monday.format(formatter);
		String last = sunday.format(formatter);
		dateTime.setDate(first+"—"+last);

		HttpSession session = request.getSession();
		session.setAttribute("datetime",dateTime);

		/*System.out.println(dateTime);*/

		/*Gson gson = new Gson();
		String json = gson.toJson(dateTime);
		session.setAttribute("datetimeJson",json);*/

		return dateTime;
	}

	public static boolean contains(String str, List<String> lists){
		for (String string : lists){
			if (str.contains(string)){
				return true;
			}
		}
		return false;
	}
	

}

    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        HttpServletRequest request = (HttpServletRequest)req;
        HttpServletResponse response = (HttpServletResponse)resp;

        String requestURI = request.getRequestURI();

        if (UtilHelper.contains(requestURI,urls)){
            chain.doFilter(request, response);
        }else {
            HttpSession session = request.getSession();
            Admin admin = (Admin) session.getAttribute("admin");
            if (admin != null){
                chain.doFilter(request,response);
            }else {
                response.sendRedirect("login.jsp");
            }
        }
    }

    public void init(FilterConfig config) throws ServletException {
        String url = config.getInitParameter("url");
        String[] split = url.split(",");
        urls = Arrays.asList(split);
    }

}

@WebServlet("/modifyPassword")
public class ModifyPasswordServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf8");
        String id = request.getParameter("id");
        String oldpass = request.getParameter("oldpass");
        String newpass = request.getParameter("newpass");
        }else {
            out.print("ok");
        }
    }
}

public class UtilHelper {

	/**
	 * 获取当前日期时间
	 */
	public static String getTime() {
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.format(date);

	}

	/**
	 * 把date对象转换成String
	 * @param date
	 */
	public static String dateToString(Date date) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.format(date);
	}

	/**
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf8");
        String id = request.getParameter("id");
        String oldpass = request.getParameter("oldpass");
        String newpass = request.getParameter("newpass");
        UserService userService = new UserServiceImpl();
        String password = userService.getPasswordById(Integer.parseInt(id));

        if(password.equals(oldpass)){
            int count = userService.updatePassword(id,newpass);
            if(count > 0){
                request.setAttribute("msg","修改成功");
                request.getRequestDispatcher("update.jsp").forward(request,response);
            }else {
                response.sendRedirect("errorPage.jsp");
            }
        }else {
            request.setAttribute("msg","原密码错误");
            request.getRequestDispatcher("update.jsp").forward(request,response);
        }

    }
}

@WebServlet("/regUser")
public class RegUserServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf8");
        Map<String, String[]> userMap = request.getParameterMap();

        if (startDate >= endDate){
            out.print("结束时间必须晚于开始时间");
        }else if(endDate - startDate >= 1000*60*60*14) {
            out.print("预约时常不可超出14小时");
        }else if(startHour < 8 || endHour >= 22){
            out.print("请在规定的时间段选择预约时间");
        }else if (applyService.isExistTime(start,end,mid)){
            out.print("此时间段已被预约,请换时间段");
        }else {
            out.print("ok");
        }
    }
}

public class UtilHelper {

	/**
	 * 获取当前日期时间
	 */
	public static String getTime() {
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.format(date);

	}

	/**
	 * 把date对象转换成String
	 * @param date
	 */
	public static String dateToString(Date date) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.format(date);
	}


@WebServlet("/back/modifyMeeting")
public class ModifyMeetingServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf8");
        Map<String, String[]> meetingMap = request.getParameterMap();
        Meeting meeting = new Meeting();

        try {
            BeanUtils.populate(meeting,meetingMap);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }

        MeetingService meetingService = new MeetingServiceImpl();
        int count = meetingService.updateMeeting(meeting);

        if (count > 0){
            response.sendRedirect("meetingList");
        }else {
            response.sendRedirect("../errorPage.jsp");
        }

    }
}


@WebFilter(urlPatterns = "/back/*",initParams = {@WebInitParam(name = "url",value = "css,layui,images,login,index.jsp")})
public class LoginFilter implements Filter {
    private List<String> urls;
    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        HttpServletRequest request = (HttpServletRequest)req;
        HttpServletResponse response = (HttpServletResponse)resp;

        String requestURI = request.getRequestURI();

        if (UtilHelper.contains(requestURI,urls)){
            chain.doFilter(request, response);
        }else {
            HttpSession session = request.getSession();
            Admin admin = (Admin) session.getAttribute("admin");
            if (admin != null){
                chain.doFilter(request,response);
            }else {
                response.sendRedirect("login.jsp");
            }
        }
    }

    public void init(FilterConfig config) throws ServletException {
        String url = config.getInitParameter("url");
        String[] split = url.split(",");
        urls = Arrays.asList(split);
    }

}
                requestURI.contains("apply.jsp") || requestURI.contains("meetinglist") || requestURI.contains("autoLogin") || requestURI.contains("top.jsp")){*/
            if(requestURI.equals("/meeting/") || UtilHelper.contains(requestURI,urls)){
                chain.doFilter(request, response);
            }else {
                HttpSession session = request.getSession();
                User user = (User)session.getAttribute("user");
                if (user != null){
                    chain.doFilter(request, response);
                }else {
                    response.sendRedirect(request.getContextPath()+"/login.jsp");
                }
            }

    }

    public void init(FilterConfig config) throws ServletException {
        String url = config.getInitParameter("url");
        String[] strs = url.split(",");
        urls = Arrays.asList(strs);

    }

}

	 * 
	 * @param username:放到cookie信息里用户名
	 * @param req
	 * @param resp:调用addCookie方法得response对象
	 * @param sec:设置Cookie失效日期,单位秒
	 */
	public static void createCookies(String username, HttpServletRequest req, HttpServletResponse resp, int sec) {
		Cookie userCookie = new Cookie("userKey", username);
		Cookie ssidCookie = new Cookie("ssid", md5Encrypt(username));
		userCookie.setMaxAge(sec);
		ssidCookie.setMaxAge(sec);
		resp.addCookie(userCookie);
		resp.addCookie(ssidCookie);
	}

	/**
	 * 这个方法得作用就是加密,把一个明文加载成密文
	 * 
	 * @param ss
	 * @return
	 */
	public static String md5Encrypt(String ss) {
		ss = ss == null ? "" : ss + KEY;
		char[] md5Digist = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
		byte[] ssarr = ss.getBytes();
		try {
			MessageDigest md = MessageDigest.getInstance("MD5");//md5  sha1  sha2  加密算法
			md.update(ssarr);//把明文放到MessageDigest的对象实例去,更新数据
			byte[] mssarr = md.digest();
			
			int len = mssarr.length;
			char[] str = new char[len*2];
			int k = 0;//计数
			
			for(int i=0;i<len;i++) {
				byte b = mssarr[i];
				str[k++] = md5Digist[b >>> 4 & 0xf];
				str[k++] = md5Digist[b & 0xf];
			}
			return new String(str);
		} catch (Exception e) {

    }
}

@WebServlet("/autoLogin")
public class AutoLoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf8");

        Cookie[] cookies = request.getCookies();
        String username = null;
        String ssid = null;
        for (Cookie cookie : cookies){
            if(cookie.getName().equals("userKey")){
                username = cookie.getValue();
            }
            if(cookie.getName().equals("ssid")){
                ssid = cookie.getValue();
            }
        }
        if(username != null && ssid != null && ssid.equals(CookieUtils.md5Encrypt(username))){
                UserService userService = new UserServiceImpl();
                User user = userService.getUserForPhone(username);
                HttpSession session = request.getSession();
                session.setAttribute("user",user);
//                response.sendRedirect("index.jsp");
        }/*else {
//            response.sendRedirect("index.jsp");
        }*/
    }

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于JavaWeb Servlet+JSP的量表系统可以通过以下步骤实现: 1.创建数据库表格,包括量表信息、题目信息、选项信息和用户答题记录信息等。 2.使用Servlet实现用户登录、注册、修改密码等功能。 3.使用JSP实现量表列表展示、量表详情展示、答题页面展示等功能。 4.使用ServletJSP实现用户答题记录的增加、查询、修改和删除等功能。 5.使用Bootstrap等前端框架美化页面,提高用户体验。 以下是一个简单的基于JavaWeb Servlet+JSP的量表系统的代码示例: 引用:基于JavaWeb Servlet+JSP+MYSQL+Bootstrap 文章管理系统 基于JavaWeb Servlet+JSP+MYSQL+Bootstrap 文章管理系统 基于JavaWeb Servlet+JSP+MYSQL+Bootstrap 文章管理系统 基于JavaWeb Servlet+JSP+MYSQL+Bootstrap ... 引用: ```java <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>量表详情</title> </head> <body> <h1>量表详情</h1> <table> <tr> <td>量表名称:</td> <td>${scale.name}</td> </tr> <tr> <td>量表描述:</td> <td>${scale.description}</td> </tr> <tr> <td>题目列表:</td> <td> <table> <c:forEach items="${scale.questions}" var="question"> <tr> <td>${question.content}</td> <td> <c:forEach items="${question.options}" var="option"> <input type="radio" name="${question.id}" value="${option.id}">${option.content} </c:forEach> </td> </tr> </c:forEach> </table> </td> </tr> </table> <form action="submit" method="post"> <input type="hidden" name="scaleId" value="${scale.id}"> <input type="submit" value="提交"> </form> </body> </html> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值