基于SSM的校园交友网站mysql数据源
JavaWeb项目:基于SSM的校园交友网站mysql数据源
前台代码;代码已经上传到github上 下载地址 Github
一、项目概况1.2开发工具
Eclipse或者Myeclipse,Java,MySQL,Redis,Html,CSS,JS。
二、详细设计2.1网站结构
系统介绍:
模块一:用户体验系统
1.研究的主要内容
(1)用户管理模块
如果是本网站的会员可以直接登陆账号,会员登录账号时有用户名的验证和密码验证,都验证成功后才可以进入网站。如果不是会员必须注册账号填写个人完整的基本信息后,才能登录进入网站。
(2)积分模块
本网站给会员提供了积分**。会员可以通过在自己的相册中上传照片,每上传一张照片可以增加相应的积分,并且在网站中发说说、给自己的账号充值、给网站提出自己的建议等操作都可以得到对应的积分。同时也可以对积分的规则进行录入、修改、删除等处理。
(3)用户相册信息模块
普通会员可以对自己的相册进行编辑,包括上传照片、删除照片等功能。上传的照片可以显示在自己的照片墙中。会员可以对自己的私密相册进行访问权限设置。其他会员可以在浏览照片的过程中对照片进行评论。//去掉权限
(4)等级模块
为了提高会员的积极性,网站中设置了提高会员等级的功能。根据会员得到的积分情况可以提高自己的账号等级,可以更改等级规则。
(5)说说模块
本网站的会员可以发表说说,会员编辑完说说后即可发布到平台,可供好友查看,好友可以对看到的说说发表评论,说说的发表者可以对评论者进行回复,会员可以在稍后对自己的说说进行删除处理。




2.实施方案与创新点
(1)用户可以通过条件筛选留言,避免了垃圾信息的骚扰,查看满足自己条件的好友留言。能让用户体验更加人性化。//只需要根据分组
(2)由于用户上传相册比较耗费服务器资源,后台可以规定满足一定积分的用户才能上传一定的照片数量。
(3)用户可以给自己喜欢的会员进行点赞。//去掉
(4)适用BootStrap响应式的jQuery框架,减少了Javascri-pt代码量,丰富页面的展示效果。
模块二:管理员系 统
1. 研究的主要内容
(1)新闻展示模块//增删改都有
本网站的首页的左上方设计显示时下的新闻,包括政治、军事、娱乐多个方面,每天显示10条新闻,会员可以手动点击下一页进行查看,管理员每日都会对其进行更新。
(2)意见箱公告板模块
本网站的首页将设有意见箱公告板,会员可以提出对网站的改进意见,管理员将在这些意见中搜寻出有价值的5条意见,使得会员名连同其意见,彩色发光,并滚动显示在首页,供更多会员点击查看。
(3)男女小主模块
管理员可以查看到所有会员上传的相册,以及其照片的点赞数量,列出点赞数量前10名,将其照片设计成规模多样的照片墙形式显示在网站首页的最中间,此照片墙将由管理员三天更新一次,会员可以点击照片墙中的照片进入到该会员的详细资料页面。//系统自动选择
(4)用户信息查看模块
管理员可操作网站的所有功能,除此之外,管理员登陆后还可以查看会员上传的相册信息、积分信息、等级信息。如果有会员上传不雅照片,管理员将对其发送站内消息进行警告并将其照片删除。若此会员多次上传此类照片,管理员将会把其拉入黑名单。
(5)绩效统计归纳模块
管理员每隔一个月统计一次注册本网站的用户量,会员照片的上传量,会员充值的数量,计算出与上个月相比的涨幅,制成报表,这引起数据可被相关人员查询。
2.实施方案与创新点
(1)报表统计功能使用 UIeditor,实现柱状或者曲线图形。
模块三:好友管理系统:
1.研究的主要内容
(1)充值模块:
用户在平台内的活动需要收费,无论是发短信还是晋升会员都需要充值。充值时可以通过支付宝、银行卡等方式支付。(只需模拟实现,无需第三方)
(2)信息存储与查询模块:
用户可以根据自己的需求选择好友发信息,好友也可进行回复,但是信息超出三条需要充值才能继续聊天。可以将本网站用户之间相应的信息记录保存下来,并且可以按日期查询到他们的信息记录。//没钱不能聊
(3)分组管理模块:
用户可以根据自己的需求添加并命名分组,分组设定好之后,用户可以选择不同的好友添加到相应的分组中。//固定分组
(4)好友管理模块:
用户可以根据自己的需求添加、删除好友,也可以对好友的备注进行修改。另外,用户还可以根据自己的分组对好友进行查询。//点开分组查看好友
(5)推荐好友功能模块://改成只用随机匹配 按照地址来
用户在注册会员、填写个人资料的时候会有年龄、性别、兴趣爱好、居住地等栏,可以根据他们填写的年龄、性别、兴趣爱好和城市户分成几组推荐栏目,然后用户在搜索好友时可以弹出推荐好友栏目,用户可以选择栏目进行添加,也可以自行搜索好友。
2.实施方案与创新点
点击设置好的随机按钮可以进行好友之间随机匹配。筛选用户信息,对有相同爱好、相同城市等类型的用户进行好友推荐。
package com.tc.controller;
import com.sun.org.apache.xpath.internal.SourceTree;
import com.tc.constants.FieldConstants;
import com.tc.constants.MsgConstants;
import com.tc.constants.NumberConstants;
import com.tc.entity.ExamPlan;
import com.tc.entity.ExamResult;
import com.tc.entity.Resp;
import com.tc.entity.User;
import com.tc.service.ExamPlanService;
import com.tc.utils.DatetimeUtil;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.*;
/**
* Created by htc on 2017/5/16.
*/
@Controller
@RequestMapping("ExamPlan")
public class ExamPlanController {
@Autowired
private ExamPlanService examPlanService;
@RequestMapping("insertExamPlan")
@ResponseBody
public Resp insertExamPlan(HttpServletRequest request, HttpServletResponse response){
Resp resp=new Resp();
String param="";
try {
Enumeration enumeration=request.getParameterNames();
while(enumeration.hasMoreElements()){
param=(String)enumeration.nextElement();
}
Map paramMap = (Map)JSONObject.fromObject(param);
paramMap.put("createDt", DatetimeUtil.getLocalDatetime());
int flag=examPlanService.insertExamPlan(paramMap);
if(flag!=NumberConstants.STATUS_OK){
resp.setStatus(NumberConstants.STATUS_ERROR);
resp.setMsg(MsgConstants.EXCUTE_ERROR);
return resp;
}
resp.setStatus(NumberConstants.STATUS_OK);
resp.setMsg(MsgConstants.EXCUTE_SUCCESS);
} catch (Exception e) {
e.printStackTrace();
resp.setStatus(NumberConstants.STATUS_ERROR);
resp.setMsg(MsgConstants.SYSTEM_ERROR);
}
return resp;
}
@RequestMapping("getAllExamNotSet")
@ResponseBody
public Resp getAllExamNotSet(HttpServletResponse response, HttpServletRequest request, HttpSession session){
Resp resp=new Resp();
try {
String account=((User)session.getAttribute(FieldConstants.ONLINE_USER)).getAccount();
List
if (examPlanList.size()==0){
examPlanList=new ArrayList
}
resp.setData(examPlanList);
resp.setStatus(NumberConstants.STATUS_OK);
} catch (NumberFormatException e) {
e.printStackTrace();
resp.setStatus(NumberConstants.STATUS_ERROR);
resp.setData(MsgConstants.SYSTEM_ERROR);
}
return resp;
}
@RequestMapping("getExamInfoById")
@ResponseBody
public Resp getExamInfoById(HttpServletRequest request,HttpServletResponse response ,String examid){
Resp resp=new Resp();
try {
ExamPlan examPlan=examPlanService.getExamInfoById(Integer.parseInt(examid));
if(examPlan== null){
examPlan=new ExamPlan();
}
resp.setStatus(NumberConstants.STATUS_OK);
resp.setData(examPlan);
} catch (Exception e) {
e.printStackTrace();
resp.setStatus(NumberConstants.STATUS_ERROR);
resp.setMsg(MsgConstants.SYSTEM_ERROR);
}
return resp;
}
/**
* 添加考试题型和分数
* @param request
* @param response
* @return
*/
@RequestMapping("updatePaperById")
@ResponseBody
public Resp updatePaperById(HttpServletRequest request,HttpServletResponse response){
Resp resp=new Resp();
String param="";
try {
Enumeration enumeration= request.getParameterNames();
while (enumeration.hasMoreElements()){
param=(String)enumeration.nextElement();
}
System.out.println(param);
Map map=JSONObject.fromObject(param);
int flag=examPlanService.updatePaperById(map);
if(flag==0){
resp.setStatus(NumberConstants.STATUS_ERROR);
resp.setMsg(MsgConstants.EXCUTE_ERROR);
return resp;
}
resp.setMsg(MsgConstants.EXCUTE_SUCCESS);
resp.setStatus(NumberConstants.STATUS_OK);
} catch (Exception e) {
e.printStackTrace();
resp.setStatus(NumberConstants.STATUS_ERROR);
resp.setMsg(MsgConstants.SYSTEM_ERROR);
}
return resp;
}
/**
* 开始考试,获取试卷
* @param request
* @param response
* @param examId
* @return
*/
@RequestMapping("getPaper")
@ResponseBody
public Resp getPaper(HttpServletRequest request,HttpServletResponse response ,String examId){
Resp resp=new Resp();
try {
String projectRealPath=request.getSession().getServletContext().getRealPath("");
String projectRootRealPath=projectRealPath.substring(0,projectRealPath.indexOf("target"));
String filePath=projectRootRealPath+"\\src\\main\\webapp\\file\\questionLibrary";
resp=examPlanService.getPaper(Integer.parseInt(examId),filePath);
resp.setStatus(NumberConstants.STATUS_OK);
} catch (Exception e) {
e.printStackTrace();
resp.setStatus(NumberConstants.STATUS_ERROR);
resp.setMsg(MsgConstants.SYSTEM_ERROR);
}
return resp;
}
/**
* 提交试卷
* @param request
* @param response
* @param session
* @return
*/
@RequestMapping("putPaper")
@ResponseBody
public Resp putPaper(HttpServletRequest request,HttpServletResponse response ,HttpSession session){
Resp resp=new Resp();
try {
Enumeration enumeration=request.getParameterNames();
String param=null;
while (enumeration.hasMoreElements()){
param= (String) enumeration.nextElement();
}
param="["+param+"]";
System.out.println(param);
JSONArray jsonArray=JSONArray.fromObject(param);
List
String projectRealPath=request.getSession().getServletContext().getRealPath("");
String projectRootRealPath=projectRealPath.substring(0,projectRealPath.indexOf("target"));
String filePath=projectRootRealPath+"\\src\\main\\webapp\\file\\questionLibrary";
String account=((User)session.getAttribute(FieldConstants.ONLINE_USER)).getAccount();
examPlanService.putPaper(mapList,filePath,account);
// for (int i = 0; i < mapList.size(); i++) {
// Map
//
// for(Map.Entry
// String strkey1 = entry.getKey();
// Object strval1 = entry.getValue();
// System.out.println("KEY:"+strkey1+" --> Value:"+strval1+"\n");
// }
// }
} catch (Exception e) {
e.printStackTrace();
}
return resp;
}
/**
* 添加考试记录
* @param request
* @param response
* @return
*/
@RequestMapping("insertExamRecord")
@ResponseBody
public Resp insertExamRecord(HttpServletRequest request,HttpServletResponse response,HttpSession session,String examId){
Resp resp=new Resp();
try {
Map map=new HashMap();
map.put("paper_id",Integer.parseInt(examId));
map.put("student_id",Integer.parseInt(((User)session.getAttribute(FieldConstants.ONLINE_USER)).getAccount()));
//该记录已存在
ExamResult examResult=examPlanService.getExamRecordByStudentIdAndPaperId(map);
if(examResult!=null){
resp.setMsg(MsgConstants.DATA_EXIST);
resp.setStatus(NumberConstants.STATUS_ERROR);
return resp;
}
map.put("id",examPlanService.gerExamCount()+1);
Integer flag=examPlanService.insertExamRecord(map);
} catch (NumberFormatException e) {
e.printStackTrace();
}
return resp;
}
}
package com.tc.controller;
import com.tc.constants.FieldConstants;
import com.tc.constants.MsgConstants;
import com.tc.constants.UrlConstants;
import com.tc.entity.Teacher;
import com.tc.entity.User;
import com.tc.service.TeacherService;
import com.tc.service.UserService;
import com.tc.utils.ChkUtil;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Created by htc on 2017/4/19.
*/
@Controller
public class LoginController {
@Autowired
private UserService userService;
@Autowired
private TeacherService teacherService;
/**
* 登陆
*
* @param request
* @param response
* @param session
* @param userParam
* @return
*/
@RequestMapping("login")
public ModelAndView login(HttpServletRequest request, HttpServletResponse response, HttpSession session, User userParam) {
try {
//判断参数
if (userParam == null || ChkUtil.isEmpty(userParam.getAccount()) || ChkUtil.isEmpty(userParam.getPwd())) {
return new ModelAndView(UrlConstants.LOGIN, FieldConstants.ERR, MsgConstants.LESS_PARAM);
}
//验证账号
int i = userService.getUserNum(userParam);
if (i == 0) {
return new ModelAndView(UrlConstants.LOGIN, FieldConstants.ERR, MsgConstants.ACCOUNT_NOT_EXIST);
}
String password = ChkUtil.MD5(userParam.getPwd());
userParam.setPwd(password);
//验证密码
User user = userService.getUserInfoByAccount(userParam);
if (user == null) {
return new ModelAndView(UrlConstants.LOGIN, FieldConstants.ERR, MsgConstants.PASSWORD_ERROR);
}
//放入session
session.setAttribute(FieldConstants.ONLINE_USER, user);
ServletContext application = session.getServletContext();
application.setAttribute(FieldConstants.NEW_SESSION_ID, session.getId());
application.setAttribute(FieldConstants.SESSION_ID, session.getId());
application.setAttribute(session.getId(), session);
//验证权限
//Teacher teacher = teacherService.getTeacherInfoByID(Integer.parseInt(userParam.getAccount()));
if (userParam.getAccount().length() >4 ) {
/**
* 学生账号为学号
*/
//返回主页面
return new ModelAndView(UrlConstants.REDIRECT_STUDENT_INDEX_JSP);
}else {
/**
* 账号为教师工号
*/
//返回教师首页
return new ModelAndView(UrlConstants.REDIRECT_TEACHER_INDEX_JSP);
}
} catch (Exception e) {
e.printStackTrace();
return new ModelAndView(UrlConstants.LOGIN, FieldConstants.ERR, MsgConstants.LOGIN_FAIL);
}
}
/**
* 退出登陆
*
* @param request
* @param response
* @param session
* @return
*/
@RequestMapping("exit")
public ModelAndView exit(HttpServletRequest request, HttpServletResponse response, HttpSession session) {
try {
session.invalidate();
return new ModelAndView(UrlConstants.REDIRECT_LOGIN_JSP);
} catch (Exception e) {
e.printStackTrace();
return new ModelAndView(UrlConstants.LOGIN, FieldConstants.ERR, MsgConstants.EXIT_FAIL);
}
}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
