目录
1 概述
随着公益事业的发展,越来越多的人参与到志愿服务活动中。公益团体活动志愿者报名网站可以帮助公益组织更好地管理志愿者资源,提高活动的组织效率。然而,现有的报名系统存在以下问题:
功能单一:许多系统仅提供基本的报名功能,缺乏其他辅助功能。
用户体验不佳:界面设计不够友好,操作流程繁琐。
安全性不足:用户信息保护不到位,数据传输和存储存在安全隐患。
服务不完善:缺乏有效的通知和反馈机制,用户参与度不高。
开发一个功能完善、用户体验良好、安全性高的公益团体活动志愿者报名网站具有重要意义。
本项目旨在开发一个基于SSM框架的公益团体活动志愿者报名网站,具体目标如下:
活动发布与管理通过实现活动的发布、编辑和删除功能,方便公益团体管理活动信息。具体措施包括:
活动发布:提供活动发布功能,支持活动详情、时间、地点等信息的填写。
活动编辑:提供活动编辑功能,允许管理员随时更新活动信息。
活动删除:提供活动删除功能,确保过期或取消的活动能被及时移除。
志愿者报名通过实现志愿者在线报名功能,支持报名信息的提交和审核。具体措施包括:
报名提交:提供志愿者报名表单,支持基本信息、联系方式等信息的填写。
报名审核:支持管理员审核志愿者报名信息,确认报名资格。
报名状态:提供报名状态查询功能,让志愿者了解自己的报名进度。
活动通知与反馈通过实现活动通知和用户反馈功能,增强用户体验和互动性。具体措施包括:
活动通知:提供活动通知功能,通过邮件或短信提醒用户活动时间和地点。
用户反馈:提供用户反馈功能,收集用户对活动的意见和建议。
互动交流:提供论坛或讨论区,让用户之间进行互动交流。
数据统计与分析通过实现活动数据的统计与分析功能,帮助公益团体更好地了解活动效果。具体措施包括:
数据收集:收集活动参与人数、报名情况等数据。
数据分析:提供数据分析报告,帮助公益团体了解活动效果。
图表展示:使用ECharts等图表库,展示各类统计数据。
2 数据库表
表5 news志愿主题表
名称 | 类型 | 说明 |
id | int | 编号 |
typeid |
|
|
title | nvarchar(150) | 标题 |
pic | nvarchar(150) | 图片 |
[content] | text | 内容 |
addtime | datetime | 日期 |
表6 prep 活动报名表
名称 | 类型 | 说明 |
id | int | 编号 |
title | nvarchar(50) | 标题 |
address | nvarchar(50) | 地址 |
time | nvarchar(50) | 日期 |
linkman | nvarchar(50) | 联系人 |
[content] | text | 内容 |
addtime | nvarchar(50) | 日期 |
3 关键代码
package com.control.admin;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.dao.ActivityInfoDAO;
import com.dao.ActivityTypeDAO;
import com.entity.ActivityType;
import com.util.PublicToolCheckParam;
import com.util.PublicToolShowActivityTypeList;
public class ManageActivityType extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 903516041045550470L;
static ActivityTypeDAO gtdao = new ActivityTypeDAO();
public static void deleteActivityType(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String typeId = request.getParameter("typeId");
if (PublicToolCheckParam.checkNullAndEmpty(typeId)) {
ActivityInfoDAO gdao = new ActivityInfoDAO();
boolean isExist = gdao.isActivityExistInActivityType(Integer.parseInt(typeId));
if (isExist == false) {
gtdao.deleteActivityType(Integer.parseInt(typeId));
String isSearching = request.getParameter("isSearching");
String currentPage = request.getParameter("currentPage");
if (PublicToolCheckParam.checkNullAndEmpty(isSearching)) {
String key = request.getParameter("key");
PublicToolShowActivityTypeList.searchActivityType(request, response, currentPage, key);
request.setAttribute("key", key);
request.setAttribute("isSearching", "yes");
} else {
PublicToolShowActivityTypeList.showActivityTypeList(request, response, currentPage);
}
request.getRequestDispatcher("../admin/manageActivityType.jsp").forward(request, response);
} else {
request.setAttribute("error", "删除失败!活动类型下还存在活动!");
request.getRequestDispatcher("../admin/error.jsp").forward(request, response);
}
}
}
public static void deleteMoreActivityType(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String currentPage = request.getParameter("currentPage");
String[] ckb = request.getParameterValues("ckb");
if (ckb != null) {
int isDeleteMethodPass = 1;
for (int i = 0; i < ckb.length; i++) {
ActivityInfoDAO gdao = new ActivityInfoDAO();
boolean isExist = gdao.isActivityExistInActivityType(Integer.parseInt(ckb[i]));
if (isExist == true) {
isDeleteMethodPass = 0;
break;
}
}
if (isDeleteMethodPass == 1) {
for (int i = 0; i < ckb.length; i++) {
ActivityInfoDAO gdao = new ActivityInfoDAO();
boolean isExist = gdao.isActivityExistInActivityType(Integer.parseInt(ckb[i]));
if (isExist)
gtdao.deleteActivityType(Integer.parseInt(ckb[i]));
}
PublicToolShowActivityTypeList.showActivityTypeList(request, response, currentPage);
request.getRequestDispatcher("../admin/manageActivityType.jsp").forward(request, response);
} else {
request.setAttribute("error", "删除失败!活动类型下还存在活动!");
request.getRequestDispatcher("../admin/error.jsp").forward(request, response);
}
}
}
public static void insertActivityType(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String currentPage = request.getParameter("currentPage");
String typeName = request.getParameter("typeName");
// typeName = new String(typeName.getBytes("iso-8859-1"),"utf-8");
if (PublicToolCheckParam.checkNullAndEmpty(typeName)) {
gtdao.addActivityType(typeName);
PublicToolShowActivityTypeList.showActivityTypeList(request, response, currentPage);
request.getRequestDispatcher("../admin/manageActivityType.jsp").forward(request, response);
}
}
public static void searchActivityType(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String currentPage = request.getParameter("currentPage");
String key = request.getParameter("key");
key = new String(key.getBytes("iso-8859-1"), "utf-8");
PublicToolShowActivityTypeList.searchActivityType(request, response, currentPage, key);
request.setAttribute("isSearching", "yes");
request.setAttribute("key", key);
request.getRequestDispatcher("../admin/manageActivityType.jsp").forward(request, response);
}
public static void showAddActivityTypePage(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ActivityTypeDAO gtdao = new ActivityTypeDAO();
ArrayList<Object> typeList1 = gtdao.getAllType();
request.setAttribute("typeList1", typeList1);
request.getRequestDispatcher("../admin/addActivityType.jsp").forward(request, response);
}
public static void showManageActivityTypePage(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String currentPage = request.getParameter("currentPage");
PublicToolShowActivityTypeList.showActivityTypeList(request, response, currentPage);
request.getRequestDispatcher("../admin/manageActivityType.jsp").forward(request, response);
}
public static void updateActivityType(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String currentPage = request.getParameter("currentPage");
String submit = request.getParameter("submit");
String typeId = request.getParameter("typeId");
String typeName = request.getParameter("typeName");
if (PublicToolCheckParam.checkNullAndEmpty(typeId)) {
if (PublicToolCheckParam.checkNullAndEmpty(submit) && submit.equals("1")) {
gtdao.updateActivityType(Integer.parseInt(typeId), typeName);
PublicToolShowActivityTypeList.showActivityTypeList(request, response, currentPage);
request.getRequestDispatcher("../admin/manageActivityType.jsp").forward(request, response);
} else {
ActivityType activityTypeInfo = gtdao.getActivityTypeInfo(Integer.parseInt(typeId));
request.setAttribute("activityTypeInfo", activityTypeInfo);
request.getRequestDispatcher("../admin/updateActivityType.jsp").forward(request, response);
}
}
}
/**
* Constructor of the object.
*/
public ManageActivityType() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to
* post.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String method = request.getParameter("method");
if (PublicToolCheckParam.checkNullAndEmpty(method)) {
if (method.equals("showAddActivityTypePage")) {
showAddActivityTypePage(request, response);
} else if (method.equals("showManageActivityTypePage")) {
showManageActivityTypePage(request, response);
}
else if (method.equals("insert")) {
insertActivityType(request, response);
} else if (method.equals("delete")) {
deleteActivityType(request, response);
} else if (method.equals("deleteMore")) {
deleteMoreActivityType(request, response);
} else if (method.equals("search")) {
searchActivityType(request, response);
} else if (method.equals("update")) {
updateActivityType(request, response);
}
}
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException
* if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}
4 效果演示
idea或eclipse开发,mysql数据库