基于javaweb+mysql的jsp+servlet高校学生会社团管理系统(前台、后台)(java+jsp+servlet+javabean+mysql+tomcat)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
前台:用户注册登陆、个人中心的管理(成立社团、加入的社团、申请加入社团、申请加入活动等)、社团列表、社团风采、社团活动、新闻列表以及留言板功能;
后台管理页面主要有:注册登陆、个人中心、系统管理(用户管理、角色管理、菜单管理、新闻管理、留言管理)、社团管理(财务管理、社团列表、社团风采、社团活动、活动申请、学生管理、社团申请)等几大块
前台
后台:
技术框架
JSP Servlet MySQL JDBC Tomcat CSS JavaScript jstl
基于javaweb+mysql的JSP+Servlet高校学生会社团管理系统(前台、后台)(java+jsp+servlet+javabean+mysql+tomcat)
if(filename==null || filename.trim().equals("")){
continue;
}
//注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
//处理获取到的上传文件的文件名的路径部分,只保留文件名部分
filename = filename.substring(filename.lastIndexOf("\\")+1);
String suffix = filename.substring(filename.lastIndexOf("."));
filename=String.valueOf(System.currentTimeMillis()+suffix);
//获取item中的上传文件的输入流
InputStream in = item.getInputStream();
//创建一个文件输出流
FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
//创建一个缓冲区
byte buffer[] = new byte[1024];
//判断输入流中的数据是否已经读完的标识
int len = 0;
//循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
while((len=in.read(buffer))>0){
//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
out.write(buffer, 0, len);
}
//关闭输入流
in.close();
//关闭输出流
out.close();
//删除处理文件上传时生成的临时文件
item.delete();
msg = "文件上传成功!";
siteNews.setPic(request.getContextPath()+"/upload" + "/" + filename);
}
}
if (siteNews.getId()!=null && !"".equals(siteNews.getId())) {
siteNewsService.update(siteNews);
}else{
String username = CurrentUserUtils.getCurrentUser(request).getUsername();
siteNews.setCreateUser(username);
siteNewsService.add(siteNews);
}
response.sendRedirect(contextPath+"/siteNews?method=list&newsType="+siteNews.getNewsType());
}catch (Exception e) {
msg= "文件上传失败!";
e.printStackTrace();
request.setAttribute("msg",msg);
request.getRequestDispatcher("/views/team/siteNewsForm.jsp").forward(request, response);
}
}
request.getRequestDispatcher("/front/regit.jsp").forward(request, response);
}
}
}
@WebServlet("/siteNews")
}
String buildStu = request.getParameter("buildStu");
if (buildStu != null && buildStu != "") {
teams.setBuildStu(buildStu);
request.setAttribute("buildStu", buildStu);
}
String auditType = request.getParameter("auditType");
if (auditType != null && auditType != "") {
teams.setAuditType(auditType);
request.setAttribute("auditType", auditType);
}
//判断提示信息
Object msg = request.getSession().getAttribute("msg");
if (msg != null) {
request.setAttribute("msg", msg.toString());
request.getSession().removeAttribute("msg");
}
page = teamsService.page(teams, page);
request.setAttribute("page", page);
request.getRequestDispatcher("/views/team/teamsList.jsp").forward(request, response);
}
private void applayAct(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String activeId = request.getParameter("activeId");
String stuId = request.getParameter("stuId");
String stuName = request.getParameter("stuName");
String phone = request.getParameter("phone");
String type = request.getParameter("type");
String isArrive = request.getParameter("isArrive");
ActiveStu activeStu = new ActiveStu();
activeStu.setActiveId(activeId);
activeStu.setStuId(stuId);
response.setCharacterEncoding("GBK");
List<ActiveStu> findAll = activeStuService.findAll(activeStu);
if (findAll!=null && findAll.size()>0) {
}else{
activeStu.setStuName(stuName);
activeStu.setPhone(phone);
activeStu.setType(type);
teams.setId(id);
teams.setTeamName(teamName);
teams.setPic(pic);
teams.setTeamIntro(teamIntro);
teams.setBuildStu(buildStu);
teams.setAuditType(auditType);
teams.setMembers(Integer.parseInt(members));
teams.setRemark(remark);
teamsService.update(teams);
request.setAttribute("teams", teams);
request.getRequestDispatcher("/views/team/teamsForm.jsp").forward(request, response);
}
//列表查询
private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.err.println("---开始查询---");
Teams teams = new Teams();
//分页有关
Page<Teams> page = new Page<Teams>();
//设置查询页
String pageNoStr = request.getParameter("pageNo");
if (pageNoStr != null && pageNoStr != "") {
page.setPageNo(Integer.parseInt(pageNoStr));
}
//设置查询条件
String teamName = request.getParameter("teamName");
if (teamName != null && teamName != "") {
teams.setTeamName(teamName);
request.setAttribute("teamName", teamName);
}
String buildStu = request.getParameter("buildStu");
if (buildStu != null && buildStu != "") {
teams.setBuildStu(buildStu);
request.setAttribute("buildStu", buildStu);
}
String auditType = request.getParameter("auditType");
if (auditType != null && auditType != "") {
teams.setAuditType(auditType);
request.setAttribute("auditType", auditType);
}
//判断提示信息
Object msg = request.getSession().getAttribute("msg");
if (msg != null) {
request.setAttribute("msg", msg.toString());
request.getSession().removeAttribute("msg");
}
//数据过滤,根据当前登录的用户判断数据范围 如果只是社长 只能查看自己负责的社团
User currentUser = CurrentUserUtils.getCurrentUser(request);
String roleFlag = currentUser.getRole2().getRoleFlag();
InputStream in = item.getInputStream();
//创建一个文件输出流
FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
//创建一个缓冲区
byte buffer[] = new byte[1024];
//判断输入流中的数据是否已经读完的标识
int len = 0;
//循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
while((len=in.read(buffer))>0){
//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
out.write(buffer, 0, len);
}
//关闭输入流
in.close();
//关闭输出流
out.close();
//删除处理文件上传时生成的临时文件
item.delete();
msg = "文件上传成功!";
siteNews.setPic(request.getContextPath()+"/upload" + "/" + filename);
}
}
if (siteNews.getId()!=null && !"".equals(siteNews.getId())) {
siteNewsService.update(siteNews);
}else{
String username = CurrentUserUtils.getCurrentUser(request).getUsername();
siteNews.setCreateUser(username);
siteNewsService.add(siteNews);
}
response.sendRedirect(contextPath+"/siteNews?method=list&newsType="+siteNews.getNewsType());
}catch (Exception e) {
msg= "文件上传失败!";
e.printStackTrace();
request.setAttribute("msg",msg);
request.getRequestDispatcher("/views/team/siteNewsForm.jsp").forward(request, response);
}
}
//删除
private void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
String newsType = siteNewsService.getById(id).getNewsType();
siteNewsService.delete(id);
response.sendRedirect(contextPath+"/siteNews?method=list&newsType="+newsType);
}
//修改
private void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
student.setLoginPassword(loginPassword);
student.setAuditType(auditType);
student.setStuName(stuName);
student.setSex(sex);
student.setSchoolRoom(schoolRoom);
student.setClassRoom(classRoom);
student.setPhone(phone);
student.setPic(pic);
student.setRemark(remark);
studentService.add(student);
response.sendRedirect(contextPath+"/student?method=list");
}
//添加保存
protected void save(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Student student = new Student();
//这是上传到tomcat下,文件容易丢失
//得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
String savePath = this.getServletContext().getRealPath("/upload");
File file = new File(savePath);
//判断上传文件的保存目录是否存在
if (!file.exists() && !file.isDirectory()) {
System.out.println(savePath+"目录不存在,需要创建");
//创建目录
file.mkdir();
}
//上传到服务器硬盘上,保证重启tomcat不会丢失文件
//获取上传文件的路径
// String savePath = PropertiesUtil.getValue("fileUpload");
// File file = new File(savePath+"/");
// if (!file.exists() && !file.isDirectory()) {
// System.out.println(savePath+"目录不存在,需要创建");
// //创建目录
// file.mkdirs();
// }
//消息提示
String msg = "";
try{
//使用Apache文件上传组件处理文件上传步骤:
//1、创建一个DiskFileItemFactory工厂
@WebServlet("/message")
public class MessageController extends HttpServlet {
private static final long serialVersionUID = 1L;
private String contextPath = "";
MessageDao messageDao=new MessageDao();
MessageService messageService = new MessageServiceImpl();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
contextPath = request.getServletContext().getContextPath();
String method = request.getParameter("method");
if ("add".equals(method)) {
add(request,response);
}else if ("delete".equals(method)) {
delete(request, response);
}else if ("list".equals(method)) {
list(request, response);
}else if ("update".equals(method)) {
update(request, response);
}else if ("form".equals(method)) {
form(request, response);
}else if ("save".equals(method)) {
save(request, response);
}
}
//添加
private void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String content = request.getParameter("content");
String createTime = request.getParameter("createTime");
String createStu = request.getParameter("createStu");
String auditType = request.getParameter("auditType");
String replay = request.getParameter("replay");
String replayTime = request.getParameter("replayTime");
String replayUser = request.getParameter("replayUser");
Message message = new Message();
message.setContent(content);
message.setCreateStu(createStu);
message.setAuditType(auditType);
message.setReplay(replay);
message.setReplayUser(replayUser);
messageService.add(message);
response.sendRedirect(contextPath+"/message?method=list");
ActiveStu activeStu = new ActiveStu();
if (id!=null && id!="") {
activeStu = activeStuService.getById(id);
}
request.setAttribute("activeStu", activeStu);
request.getRequestDispatcher("/views/team/activeStuForm.jsp").forward(request, response);
}
}
@WebServlet("/teams")
public class TeamsController extends HttpServlet {
private static final long serialVersionUID = 1L;
private String contextPath = "";
TeamsDao teamsDao=new TeamsDao();
TeamsService teamsService = new TeamsServiceImpl();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
contextPath = request.getServletContext().getContextPath();
String method = request.getParameter("method");
@WebServlet("/menu")
public class MenuController extends HttpServlet {
private static final long serialVersionUID = 1L;
private String contextPath = "";
MenuDao menuDao=new MenuDao();
MenuService menuService = new MenuServiceImpl();
MenuRoleDao menuRoleDao = new MenuRoleDao();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
contextPath = request.getServletContext().getContextPath();
String method = request.getParameter("method");
if ("add".equals(method)) {
add(request,response);
}else if ("delete".equals(method)) {
delete(request, response);
}else if ("list".equals(method)) {
list(request, response);
}else if ("update".equals(method)) {
update(request, response);
}else if ("form".equals(method)) {
form(request, response);
}else if ("save".equals(method)) {
save(request, response);
}else if ("setMenuRole".equals(method)) {
setMenuRole(request, response);
}else if ("saveMenuRole".equals(method)) {
saveMenuRole(request, response);
student.setPhone(phone);
student.setPic(pic);
student.setRemark(remark);
studentService.add(student);
response.sendRedirect(contextPath+"/student?method=list");
}
//添加保存
protected void save(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Student student = new Student();
//这是上传到tomcat下,文件容易丢失
//得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
String savePath = this.getServletContext().getRealPath("/upload");
File file = new File(savePath);
//判断上传文件的保存目录是否存在
if (!file.exists() && !file.isDirectory()) {
System.out.println(savePath+"目录不存在,需要创建");
//创建目录
file.mkdir();
}
//上传到服务器硬盘上,保证重启tomcat不会丢失文件
//获取上传文件的路径
// String savePath = PropertiesUtil.getValue("fileUpload");
// File file = new File(savePath+"/");
// if (!file.exists() && !file.isDirectory()) {
// System.out.println(savePath+"目录不存在,需要创建");
// //创建目录
// file.mkdirs();
// }
//消息提示
String msg = "";
try{
//使用Apache文件上传组件处理文件上传步骤:
//1、创建一个DiskFileItemFactory工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
//2、创建一个文件上传解析器
ServletFileUpload upload = new ServletFileUpload(factory);
//解决上传文件名的中文乱码
upload.setHeaderEncoding("UTF-8");
//3、判断提交上来的数据是否是上传表单的数据
if(!ServletFileUpload.isMultipartContent(request)){
//按照传统方式获取数据
return;
}
//4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
List<FileItem> list = upload.parseRequest(request);
for(FileItem item : list){
//如果fileitem中封装的是普通输入项的数据
if(item.isFormField()){
String name = item.getFieldName();
//解决普通输入项的数据的中文乱码问题
if ("regitTime".endsWith(name)) {
student.setRegitTime(Timestamp.valueOf(item.getString("UTF-8")));
}
if ("auditType".endsWith(name)) {
student.setAuditType(item.getString("UTF-8"));
}
if ("stuName".endsWith(name)) {
student.setStuName(item.getString("UTF-8"));
}
if ("sex".endsWith(name)) {
student.setSex(item.getString("UTF-8"));
}
if ("schoolRoom".endsWith(name)) {
student.setSchoolRoom(item.getString("UTF-8"));
}
if ("classRoom".endsWith(name)) {
student.setClassRoom(item.getString("UTF-8"));
}
if ("phone".endsWith(name)) {
student.setPhone(item.getString("UTF-8"));
}
if ("pic".endsWith(name)) {
student.setPic(item.getString("UTF-8"));
}
student.setRemark(item.getString("UTF-8"));
}
}else{//如果fileitem中封装的是上传文件
//得到上传的文件名称,
String filename = item.getName();
System.out.println(filename);
if(filename==null || filename.trim().equals("")){
continue;
}
//注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
//处理获取到的上传文件的文件名的路径部分,只保留文件名部分
filename = filename.substring(filename.lastIndexOf("\\")+1);
//获取item中的上传文件的输入流
InputStream in = item.getInputStream();
//创建一个文件输出流
FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
//创建一个缓冲区
byte buffer[] = new byte[1024];
//判断输入流中的数据是否已经读完的标识
int len = 0;
//循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
while((len=in.read(buffer))>0){
//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
out.write(buffer, 0, len);
}
//关闭输入流
in.close();
//关闭输出流
out.close();
//删除处理文件上传时生成的临时文件
item.delete();
msg = "文件上传成功!";
student.setPic(request.getContextPath()+"/upload" + "/" + filename);
}
}
if (student.getId()!=null && !"".equals(student.getId())) {
studentService.update(student);
}else{
studentService.add(student);
student.setSchoolRoom(item.getString("UTF-8"));
}
if ("classRoom".endsWith(name)) {
student.setClassRoom(item.getString("UTF-8"));
}
if ("phone".endsWith(name)) {
student.setPhone(item.getString("UTF-8"));
}
if ("pic".endsWith(name)) {
student.setPic(item.getString("UTF-8"));
}
if ("remark".endsWith(name)) {
student.setRemark(item.getString("UTF-8"));
}
}else{//如果fileitem中封装的是上传文件
//得到上传的文件名称,
String filename = item.getName();
System.out.println(filename);
if(filename==null || filename.trim().equals("")){
continue;
}
//注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
//处理获取到的上传文件的文件名的路径部分,只保留文件名部分
filename = filename.substring(filename.lastIndexOf("\\")+1);
//获取item中的上传文件的输入流
InputStream in = item.getInputStream();
//创建一个文件输出流
FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
//创建一个缓冲区
byte buffer[] = new byte[1024];
//判断输入流中的数据是否已经读完的标识
int len = 0;
//循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
while((len=in.read(buffer))>0){
//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
out.write(buffer, 0, len);
}else{//如果fileitem中封装的是上传文件
//得到上传的文件名称,
String filename = item.getName();
System.out.println(filename);
if(filename==null || filename.trim().equals("")){
continue;
}
//注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
//处理获取到的上传文件的文件名的路径部分,只保留文件名部分
filename = filename.substring(filename.lastIndexOf("\\")+1);
String suffix = filename.substring(filename.lastIndexOf("."));
filename=String.valueOf(System.currentTimeMillis()+suffix);
//获取item中的上传文件的输入流
InputStream in = item.getInputStream();
//创建一个文件输出流
FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
//创建一个缓冲区
byte buffer[] = new byte[1024];
//判断输入流中的数据是否已经读完的标识
int len = 0;
//循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
while((len=in.read(buffer))>0){
//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
out.write(buffer, 0, len);
}
//关闭输入流
in.close();
//关闭输出流
out.close();
//删除处理文件上传时生成的临时文件
item.delete();
msg = "文件上传成功!";
user.setPic(request.getContextPath()+"/upload" + "/" + filename);
}
}
if (user.getId()!=null && !"".equals(user.getId())) {
user.setPassword(userService.getById(user.getId()).getPassword());
userService.update(user);
}else{
userService.add(user);
}
}
upperCase = true;
} else {
upperCase = false;
}
sb.append(Character.toLowerCase(c));
}
return sb.toString();
}
}
/**
* 这是过滤器,用于设置请求与响应的字符集编码
* @ClassName: SerFilter
* @Description: TODO(这里用一句话描述这个类的作用)
*/
@WebFilter("/*")
public class SerFilter implements Filter {
/**
* Default constructor.
*/
public SerFilter() {
// TODO Auto-generated constructor stub
}
/**
}
if ("isRun".endsWith(name)) {
siteNews.setIsRun(item.getString("UTF-8"));
}
if ("belonTeam".endsWith(name)) {
siteNews.setBelonTeam(item.getString("UTF-8"));
}
if ("isAudit".endsWith(name)) {
siteNews.setIsAudit(item.getString("UTF-8"));
}
if ("acStartTime".endsWith(name)) {
if (StringUtils.isNotEmpty(item.getString("UTF-8"))) {
siteNews.setAcStartTime(Timestamp.valueOf(item.getString("UTF-8")));
}else {
siteNews.setAcStartTime(new Date());
}
}
if ("acEndTime".endsWith(name)) {
if (StringUtils.isNotEmpty(item.getString("UTF-8"))) {
siteNews.setAcEndTime(Timestamp.valueOf(item.getString("UTF-8")));
}else {
siteNews.setAcEndTime(new Date());
}
}
if ("isCanApply".endsWith(name)) {
siteNews.setIsCanApply(item.getString("UTF-8"));
}
}else{//如果fileitem中封装的是上传文件
//得到上传的文件名称,
String filename = item.getName();
System.out.println(filename);
if(filename==null || filename.trim().equals("")){
continue;
}
//注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
//处理获取到的上传文件的文件名的路径部分,只保留文件名部分
request.setAttribute("zhichu", zhichu);
request.setAttribute("shouru", shouru);
request.getRequestDispatcher("/mui/welcome.jsp").forward(request, response);
}
//添加
private void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String newsType = request.getParameter("newsType");
String title = request.getParameter("title");
String pic = request.getParameter("pic");
String shortContent = request.getParameter("shortContent");
String content = request.getParameter("content");
String createUser = request.getParameter("createUser");
String createTime = request.getParameter("createTime");
String isRun = request.getParameter("isRun");
String belonTeam = request.getParameter("belonTeam");
String isAudit = request.getParameter("isAudit");
SiteNews siteNews = new SiteNews();
siteNews.setNewsType(newsType);
siteNews.setTitle(title);
siteNews.setPic(pic);
siteNews.setShortContent(shortContent);
siteNews.setContent(content);
siteNews.setCreateUser(createUser);
siteNews.setIsRun(isRun);
siteNews.setBelonTeam(belonTeam);
siteNews.setIsAudit(isAudit);
siteNewsService.add(siteNews);
response.sendRedirect(contextPath+"/siteNews?method=list");
}
//添加保存
protected void save(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
SiteNews siteNews = new SiteNews();
//这是上传到tomcat下,文件容易丢失
/* //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全*/
String savePath = this.getServletContext().getRealPath("/upload");
//设置查询页
String pageNoStr = request.getParameter("pageNo");
if (pageNoStr != null && pageNoStr != "") {
page.setPageNo(Integer.parseInt(pageNoStr));
}
//设置查询条件
String username = request.getParameter("username");
if (username != null && username != "") {
user.setUsername(username);
request.setAttribute("username", username);
}
page = userService.page(user, page);
request.setAttribute("page", page);
request.getRequestDispatcher("/views/system/userList.jsp").forward(request, response);
}
//form跳转页面
private void form(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
User user = new User();
if (id!=null && id!="") {
user = userService.getById(id);
}
request.setAttribute("user", user);
List<Role> findAll = roleService.findAll(new Role());
request.setAttribute("roles", findAll);
request.getRequestDispatcher("/views/system/userForm.jsp").forward(request, response);
}
}