Java项目:jsp+servlet网上会议室预约系统
作者主頁(yè):源碼空間站2022
?簡(jiǎn)介:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者、Java項(xiàng)目、學(xué)習(xí)資料、技術(shù)互助
文末獲取源碼
項(xiàng)目介紹
網(wǎng)上會(huì)議室預(yù)約系統(tǒng),該項(xiàng)目是一個(gè)前后臺(tái)的項(xiàng)目;
前臺(tái)主要功能有:
登錄、注冊(cè);
首頁(yè)、預(yù)約須知;
會(huì)議室預(yù)約;
會(huì)議室信息;
會(huì)議室預(yù)約表;
后臺(tái)主要功能有:
通告欄:查看、添加、修改、刪除;
會(huì)議室信息:查看、添加、修改、刪除;
查看登記表;
查看預(yù)約消息;
環(huán)境需要
1.運(yùn)行環(huán)境:最好是java jdk 1.8,我們?cè)谶@個(gè)平臺(tái)上運(yùn)行的。其他版本理論上也可以。
2.IDE環(huán)境:IDEA,Eclipse,Myeclipse都可以。推薦IDEA;
3.tomcat環(huán)境:Tomcat 7.x,8.x,9.x版本均可
4.硬件環(huán)境:windows 7/8/10 1G內(nèi)存以上;或者 Mac OS;
5.是否Maven項(xiàng)目: 否;查看源碼目錄中是否包含pom.xml;若包含,則為maven項(xiàng)目,否則為非maven項(xiàng)目?
6.數(shù)據(jù)庫(kù):MySql 8.0版本;
技術(shù)棧
1. 后端:Servlet
2. 前端:JSP+bootstrap+jQuery
使用說(shuō)明
1. 使用Navicat或者其它工具,在mysql中創(chuàng)建對(duì)應(yīng)名稱的數(shù)據(jù)庫(kù),并導(dǎo)入項(xiàng)目的sql文件;
2. 將項(xiàng)目中druid.properties配置文件中的數(shù)據(jù)庫(kù)配置改為自己的配置
3. 使用IDEA/Eclipse/MyEclipse導(dǎo)入項(xiàng)目,Eclipse/MyEclipse導(dǎo)入時(shí),若為maven項(xiàng)目請(qǐng)選擇maven;若為maven項(xiàng)目,導(dǎo)入成功后請(qǐng)執(zhí)行maven clean;maven install命令,配置tomcat,然后運(yùn)行;
4. 運(yùn)行項(xiàng)目,
前臺(tái)運(yùn)行地址:http://localhost:8080/index.jsp 登錄
后臺(tái)運(yùn)行地址:http://localhost:8080/back/index.jsp 登錄
運(yùn)行截圖
?
相關(guān)代碼?
AddApplyServlet
package com.xk.meeting.controller;import com.xk.meeting.entity.Apply; import com.xk.meeting.entity.Meeting; import com.xk.meeting.entity.User; import com.xk.meeting.service.ApplyService; import com.xk.meeting.service.ApplyServiceImpl; import com.xk.meeting.service.MeetingService; import com.xk.meeting.service.MeetingServiceImpl; import com.xk.meeting.utils.MyDateConverter; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtilsBean; import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.Converter;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.Date; import java.util.Map; import java.util.Set;@WebServlet("/addApply") public class AddApplyServlet 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("utf-8");Map<String, String[]> applyMap = request.getParameterMap();Apply apply = new Apply();try {ConvertUtils.register(new MyDateConverter(), Date.class);BeanUtils.populate(apply,applyMap);} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}User user = (User)request.getSession().getAttribute("user");if (user != null){apply.setUid(user.getId());ApplyService applyService = new ApplyServiceImpl();int count = applyService.addApply(apply);if (count > 0){request.setAttribute("msg","已發(fā)送申請(qǐng),等待審核通過(guò)");request.getRequestDispatcher("apply.jsp").forward(request,response);}else {response.sendRedirect("errorPage.jsp");}}else {response.sendRedirect("login.jsp");}} }ApplyServiceImpl
package com.xk.meeting.service;import com.xk.meeting.dao.ApplyDao; import com.xk.meeting.dao.ApplyDaoImpl; import com.xk.meeting.entity.Apply; import com.xk.meeting.entityutils.ListPage; import com.xk.meeting.entityutils.PageBean; import com.xk.meeting.entity.Regform; import com.xk.meeting.entityutils.ApplyList; import com.xk.meeting.entityutils.DateTime;import java.text.SimpleDateFormat; import java.util.*;public class ApplyServiceImpl implements ApplyService{private ApplyDao applyDao = new ApplyDaoImpl();@Overridepublic int addApply(Apply apply) {Calendar startDate = Calendar.getInstance();Calendar endDate = Calendar.getInstance();startDate.setTime(apply.getStarttime());endDate.setTime(apply.getEndtime());if (startDate.get(Calendar.MINUTE) < 30) {startDate.set(Calendar.MINUTE, 0);apply.setStarttime(startDate.getTime());} else {startDate.set(Calendar.MINUTE, 30);apply.setStarttime(startDate.getTime());}if (endDate.get(Calendar.MINUTE) > 0 && endDate.get(Calendar.MINUTE) < 30) {endDate.set(Calendar.MINUTE, 30);apply.setEndtime(endDate.getTime());} else {endDate.add(Calendar.HOUR_OF_DAY,1);endDate.set(Calendar.MINUTE, 0);apply.setEndtime(endDate.getTime());}return applyDao.addApply(apply);}/*@Overridepublic List<ApplyList> getApplyList() {List<ApplyList> lists = new ArrayList<>();ApplyList applyList = null;List<Apply> applys = applyDao.getApplys();MeetingService meetingService = new MeetingServiceImpl();RegformService regformService = new RegformServiceImpl();Regform regform = null;for (Apply apply : applys){applyList = new ApplyList();int num = applyDao.getStatus(apply.getId());String status = null;String style = null;regform = regformService.getRegform(apply.getUid());switch (num){case -1 : {status = "未通過(guò)";style = "status-refuse";break;}case 0 : {status = "未審核";style = "status-notyet";break;}case 1 : {status = "已通過(guò)";style = "status-pass";break;}}String name = meetingService.getName(apply.getMid());applyList.setRegform(regform);applyList.setName(name);applyList.setApply(apply);applyList.setStatus(status);applyList.setStyle(style);lists.add(applyList);}return lists;}*//*@Overridepublic List<ApplyList> getApplyList() {List<ApplyList> lists = new ArrayList<>();List<Integer> ids = applyDao.getApplyId();for (int id : ids){ApplyList applyList = getApplyList(id);lists.add(applyList);}return lists;}*/@Overridepublic ListPage<ApplyList> getApplyList(int currentPage, int rows) {ListPage<ApplyList> listPage = new ListPage<>();int index = (currentPage-1)*rows;List<ApplyList> lists = new ArrayList<>();List<Integer> ids = applyDao.getApplys(index,rows);for (int id : ids){ApplyList applyList = getApplyList(id);lists.add(applyList);}int count = applyDao.getCount();listPage.setTotalCount(count);listPage.setTotalPage(getTotalPage(rows));listPage.setList(lists);listPage.setCurrentPage(currentPage);listPage.setRows(rows);return listPage;}@Overridepublic ApplyList getApplyList(int id) {ApplyList applyList = null;Apply apply = applyDao.getApply(id);MeetingService meetingService = new MeetingServiceImpl();RegformService regformService = new RegformServiceImpl();Regform regform = null;applyList = new ApplyList();int num = applyDao.getStatus(apply.getId());String status = null;String style = null;regform = regformService.getRegform(apply.getUid());switch (num){case -1 : {status = "未通過(guò)";style = "status-refuse";break;}case 0 : {status = "未審核";style = "status-notyet";break;}case 1 : {status = "已通過(guò)";style = "status-pass";break;}}String name = meetingService.getName(apply.getMid());applyList.setRegform(regform);applyList.setName(name);applyList.setApply(apply);applyList.setStatus(status);applyList.setStyle(style);return applyList;}@Overridepublic int changeStatus(int id, int status) {return applyDao.changeStatus(id,status);}@Overridepublic boolean isExistTime(String start, String end, String mid) {int count = applyDao.isExistTime(start,end,mid);if (count > 0){return true;}else {return false;}}@Overridepublic Map<String, PageBean> getPageBean(int mid, DateTime datetime) {Map<String,PageBean> map = new HashMap<>();List<Apply> applys = applyDao.getApplys(mid,datetime);PageBean pageBean = null;for (Apply apply : applys){pageBean = new PageBean();pageBean.setTitle(apply.getTitle());Date starttime = apply.getStarttime();Date endtime = apply.getEndtime();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm");SimpleDateFormat sdf3 = new SimpleDateFormat("HH");SimpleDateFormat sdf4 = new SimpleDateFormat("mm");pageBean.setTime(sdf2.format(starttime)+"-"+sdf2.format(endtime));int hour = Integer.parseInt(sdf3.format(endtime)) - Integer.parseInt(sdf3.format(starttime));int second = Integer.parseInt(sdf4.format(endtime)) > 0 ? 1 : 0;pageBean.setHeight(hour*2+second);int status = apply.getStatus();switch (status){case 1: pageBean.setStyle("status-pass");break;case 0: pageBean.setStyle("status-notyet");}map.put(sdf.format(starttime),pageBean);}return map;}@Overridepublic int getcount() {return applyDao.getCount();}@Overridepublic int getUid(int id) {return applyDao.getUid(id);}@Overridepublic String getMeetingName(int id) {MeetingService meetingService = new MeetingServiceImpl();int mid = applyDao.getMid(id);return meetingService.getName(mid);}@Overridepublic String getDateTime(int id) {Date start = applyDao.getStart(id);Date end = applyDao.getEnd(id);SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日HH時(shí)mm分到");SimpleDateFormat sdf2 = new SimpleDateFormat("HH時(shí)mm分");String strattime = sdf1.format(start);String endtime = sdf2.format(end);return strattime+endtime;}@Overridepublic int getTotalPage(int rows) {int count = applyDao.getCount();return count % rows == 0 ? count / rows : count / rows + 1;} }MeetingServiceImpl
package com.xk.meeting.service;import com.xk.meeting.dao.MeetingDao; import com.xk.meeting.dao.MeetingDaoImpl; import com.xk.meeting.entity.Meeting;import java.util.List;public class MeetingServiceImpl implements MeetingService{private MeetingDao meetingDao = new MeetingDaoImpl();@Overridepublic int addMeeting(Meeting meeting) {return meetingDao.addMeeting(meeting);}@Overridepublic List<Meeting> getMeetingList() {return meetingDao.getMeetingList();}@Overridepublic int deleteMeeting(int id) {return meetingDao.deleteMeeting(id);}@Overridepublic Meeting getMeetingById(int id) {return meetingDao.getMeetingById(id);}@Overridepublic int updateMeeting(Meeting meeting) {return meetingDao.updateMeeting(meeting);}@Overridepublic String getName(int mid) {return meetingDao.getNameById(mid);}@Overridepublic List<Meeting> getMeetingLists() {return meetingDao.getMeetingLists();} }RegformServiceImpl
package com.xk.meeting.service;import com.xk.meeting.dao.RegformDao; import com.xk.meeting.dao.RegformDaoImpl; import com.xk.meeting.entity.Regform; import com.xk.meeting.entityutils.ApplyList; import com.xk.meeting.entityutils.ListPage; import com.xk.meeting.entityutils.RegformList;import java.util.ArrayList; import java.util.List;public class RegformServiceImpl implements RegformService{private RegformDao regformDao = new RegformDaoImpl();@Overridepublic int addRegform(Regform regform) {return regformDao.addRegform(regform);}@Overridepublic boolean isExist(int id) {int count = regformDao.isExist(id);if (count > 0){return true;}else {return false;}}private List<RegformList> getRegformList(int index,int rows) {List<RegformList> lists = new ArrayList<>();RegformList regformList = null;List<Regform> regforms = regformDao.getRegforms(index,rows);UserService userService = new UserServiceImpl();for (Regform regform : regforms){regformList = new RegformList();int uid = regform.getUid();String username = userService.getNameById(uid);String status = userService.getStatus(uid);String style = userService.getStatusStyle(uid);regformList.setUid(uid);regformList.setName(username);regformList.setRegform(regform);regformList.setStatus(status);regformList.setStyle(style);lists.add(regformList);}return lists;}@Overridepublic Regform getRegform(int uid) {return regformDao.getRegform(uid);}@Overridepublic int getcount() {return regformDao.getCount();}@Overridepublic ListPage<RegformList> getApplyList(int currentPage, int rows) {ListPage<RegformList> listPage = new ListPage<>();int index = (currentPage-1)*rows;List<RegformList> regformList = getRegformList(index,rows);int count = regformDao.getCount();listPage.setTotalCount(count);listPage.setTotalPage(getTotalPage(rows));listPage.setList(regformList);listPage.setCurrentPage(currentPage);listPage.setRows(rows);return listPage;}@Overridepublic int getTotalPage(int rows) {int count = regformDao.getCount();return count % rows == 0 ? count / rows : count / rows + 1;} }如果也想學(xué)習(xí)本系統(tǒng),下面領(lǐng)取。關(guān)注并回復(fù):010jsp
總結(jié)
以上是生活随笔為你收集整理的Java项目:jsp+servlet网上会议室预约系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Ubutu 12.04LTS 安装搜狗拼
- 下一篇: Codeforces 938E Max