毕业设计 SSM校友录网站设计与实现

文章目录

  • 0 项目说明
  • 1 项目简介
  • 2 开发环境
  • 3 导入数据库
  • 4 导入工程(推荐IDEA)
  • 5 项目构建
  • 6 项目部署
  • 7 项目源码
  • 8 最后


0 项目说明

基于Springboot / SSM的校友录网站设计与实现

提示:适合用于课程设计或毕业设计,工作量达标,源码开放


1 项目简介

校友录网站是作为毕业设计为母校设计的校友交流平台。基于javaWeb,由Maven构建管理,采用Spring+SpringMVC+MyBatis框架,用EhCache做数据缓存。门户网站采用BootStrap设计界面,后台管理网站用AmazeUI设计界面。门户网站总体布局如下所示:

2 开发环境

Maven 3.0.3
IntelliJ IDEA 2017.1/eclipse EE
jdk1.8
tomcat8.0
mysql 5.1

3 导入数据库

数据库为MySQL5.1,数据库sql文件在./ar-doc/sql/ar-mysql-data.sql,新建数据库ar,执行此sql文件,可导入表结构和数据字典等数据。

  1. 导入数据字典表;
  2. 在用户表(user)中加入id为1的超级管理员;
  3. 在组织表(origin)中加入id为1的徐州工程学院;
  4. 在图片表(image)中加入id为1的徐州工程学院logo;

数据字典

dictionary(字典表):
dictionary_data(字典数据表):

4 导入工程(推荐IDEA)

1.安装Maven…

2.在IDEA中配置Maven,jdk

3.导入Maven项目,等待maven依赖项下载…

4.在IDEA中配置Tomcat8.0

5.修改项目中的数据库配置 ./ar-parent/ar-portal/src/main/resources/config.properties

jdbc.driver=com.mysql.jdbc.Driver
# 数据库地址
jdbc.url=jdbc:mysql://localhost/ar?characterEncoding=utf8
# 数据库用户名密码
jdbc.username=root
jdbc.password=root

5 项目构建

执行ar-common模块下的maven clean 以及 maven install

ar-common生成jar 安装在本地,ar-manage和ar-portal依赖此库。

6 项目部署

建议运行 ar-portal:war exploded。

门户网站: 访问地址: http://localhost:8080/ar-portal/index.action 用户名/密码: black/12345678

后台管理: 访问地址: http://localhost:8080/ar-portal/manage.action 用户名/密码: sa/12345678

7 项目源码

/**
 * @Title: BaseController.java 
* @Package com.xzit.ar.common.base
* @Description:
* @author Mr.Black
* @version V1.0
*/
package com.xzit.ar.common.base; import java.io.UnsupportedEncodingException; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringUtils; import org.springframework.ui.Model; import org.springframework.ui.ModelMap; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.xzit.ar.common.constant.GlobalConstants; import com.xzit.ar.common.constant.WebConstant; import com.xzit.ar.common.exception.AssertException; import com.xzit.ar.common.util.Assert; import com.xzit.ar.common.util.CommonUtil; /** * @author Mr.Black
* @version V1.0
*
* @ClassName: BaseController
* @Description:
* @date 2015年12月21日 上午11:08:45
*/
public abstract class BaseController { /** * 分页最大数 */ private static final int MAX_PAGE_SIZE = 100; /** * 分页最小数 */ private static final int MIN_PAGE_SIZE = 5; /** * 默认页大小 */ private static final int DEFAULT_PAGE_SIZE = 10; /** * 页面操作备注 */ private static String OPERATE_REMARKS = "operateRemarks"; /** * 操作结果信息 */ private static String OPERATE_REASULT_MESSAGE = "_message"; /** * 成功跳转页面 */ private static String successPage = "error/page500"; /** * 失败跳转页面 */ private static String errorPage = "error/page500"; protected static Logger logger = new Logger(BaseController.class); /** * @param @throws AssertException
* @return String
* @throws
* @Title: getParameter
* @Description: 获取参数
* @author Mr.Black
* @date 2015年12月21日 下午1:28:56
*/
protected String getParameter(String param, String errMsg) throws AssertException { String value = getRequest().getParameter(param); if (errMsg != null) { Assert.notEmpty(value, errMsg); } return StringUtils.trim(value); } /** * @throws
* @Title: getParameter
* @Description: 获取参数
* @author Mr.Black
* @date 2015年12月21日 下午1:11:27
*/
protected String getParameter(String param) { String value = getRequest().getParameter(param); if (CommonUtil.isNotEmpty(value)) { try { value = new String(value.getBytes("ISO-8859-1"), GlobalConstants.DEFAULT_CHARSET); } catch (UnsupportedEncodingException e) { logger.warn(e); } } return StringUtils.trim(value); } /** * @return Long
* @throws
* @Title: getLongParameter
* @Description: getLongParameter
* @author Mr.Black
* @date 2015年12月21日 下午1:30:55
*/
protected Long getLongParameter(String param, String errMsg) throws AssertException { String value = getParameter(param, errMsg); return CommonUtil.isEmpty(value) ? null : Long.valueOf(value); } /** * @throws
* @Title: getLongParameter
* @Description: getLongParameter
* @author Mr.Black
* @date 2015年12月21日 下午1:31:34
*/
protected Long getLongParameter(String param) { String value = getParameter(param); return CommonUtil.isEmpty(value) ? null : Long.valueOf(value); } /** * @return Integer
* @Description: getIntegerParameter
* @author Mr.Black
* @date 2015年12月21日 下午1:32:44
*/
protected Integer getIntegerParameter(String param, String errMsg) throws AssertException { String value = getParameter(param, errMsg); return CommonUtil.isEmpty(value) ? null : Integer.valueOf(value); } /** * @return Integer
* @Description: getIntegerParameter
* @author Mr.Black
* @date 2015年12月21日 下午1:33:23
*/
protected Integer getIntegerParameter(String param) { String value = getParameter(param); return (CommonUtil.isEmpty(value) || value.equals("undefined")) ? null : Integer.valueOf(value); } /** * @Title: getQueryStr * @Description: 获取查询条件字符串 */ protected String getQueryStr() { return this.getParameter("queryStr"); } /** * @Title: setQuery * @Description: 传递查询条件字符串 */ protected void setQuery() { this.getRequest().setAttribute("queryStr", this.getParameter("queryStr")); } /** * @Title: getStateStr * @Description: 获取查询条件字符串 */ protected String getStateStr() { if (this.getParameter("stateStr") == null) { return "A"; } else { return this.getParameter("stateStr"); } } /** * @Title: setState * @Description: 传递查询条件字符串 */ protected void setState() { this.getRequest().setAttribute("stateStr", this.getStateStr()); } /** * @Title: getSelectStr * @Description: 获取条件查询下拉框条件 */ protected String getSelectStr() { return this.getParameter("selectStr"); } /** * @Title: setSelectStr * @Description: 返回条件查询下拉框条件 */ protected void setSelectStr() { this.getRequest().setAttribute("selectStr", this.getParameter("selectStr")); } /** * @param @return
* @return int
* @Description: getPageIndex
* @author Mr.Black
* @date 2015年12月21日 下午1:34:13
*/
protected int getPageIndex() { Object temp = getIntegerParameter("pageIndex"); if (temp == null || temp.equals("undefined")) { return 1; } Integer pageIndex = Integer.parseInt(temp.toString()); return pageIndex < 1 ? 1 : pageIndex; } /** * @param @return
* @return int
* @Description: getPageSize
* @author Mr.Black
* @date 2015年12月21日 下午1:34:22
*/
protected int getPageSize() { Object temp = getIntegerParameter("pageSize"); if (temp == null || temp.equals("undefined")) { return DEFAULT_PAGE_SIZE; } Integer pageSize = Integer.parseInt(temp.toString()); return (pageSize < MIN_PAGE_SIZE || pageSize > MAX_PAGE_SIZE) ? DEFAULT_PAGE_SIZE : pageSize; } /** * @return ModelAndView
* @Description: 页面跳转成功处理
* @author Mr.Black
* @date 2015年12月23日 下午9:07:08
*/
protected ModelAndView success(String message, String redirectUrl, Map<String, String> param) { ModelMap map = new ModelMap(); map.put("success", true); map.put("message", message); map.put("url", redirectUrl); map.put("paramMap", param); return new ModelAndView(successPage, map); } /** * @return ModelAndView
* @Description: 页面跳转失败处理
* @author Mr.Black
* @date 2015年12月23日 下午9:06:44
*/
protected ModelAndView fail(String errMessage, String redirectUrl, Map<String, String> param) { ModelMap map = new ModelMap(); map.put("errMsg", errMessage); map.put("url", redirectUrl); if (param != null) { map.put(WebConstant.PAGE_NOT_REDIRECT, param.remove(WebConstant.PAGE_NOT_REDIRECT)); } map.put("paramMap", param); return new ModelAndView(errorPage, map); } /** * @param @return
* @return HttpServletRequest
* @Description: 获取request
* @author Mr.Black
* @date 2015年12月21日 下午1:36:56
*/
protected HttpServletRequest getRequest() { RequestAttributes requestAttr = RequestContextHolder.getRequestAttributes(); return ((ServletRequestAttributes) requestAttr).getRequest(); } /** * @Title: getSession * @Description: 获取当前 Session */ protected HttpSession getSession() { return this.getRequest().getSession(); } /** * @Title: setOperateRemarks * @Description: 通过request设置操作备注 */ protected void setOperateRemarks(String operateRemarks) { this.getRequest().setAttribute(OPERATE_REMARKS, operateRemarks); } /** * @Description: 添加页面操作说明
* @author Mr.Black
* @date 2015年12月26日 上午2:03:44
*/
protected void setOperateRemarks(Model model, String operateRemarks) { model.addAttribute(OPERATE_REMARKS, operateRemarks); } /** * @Title: setMessage * @Description: 处理后存放处理结果信息 */ protected void setMessage(String message) { this.getRequest().setAttribute("OPERATE_REASULT_MESSAGE", message); } /** * @Description: 向页面返回操作结果信息
* message 操作结果信息 * @author Mr.Black
* @date 2015年12月27日 下午8:51:09
*/
protected void setMessage(Model model, String message) { if (model != null) { model.addAttribute(OPERATE_REASULT_MESSAGE, message); } } /** * @Title: setMessage * @Description: 重定向传参数 */ protected void setMessage(RedirectAttributes attr, String message) { if (attr != null) { attr.addAttribute(OPERATE_REASULT_MESSAGE, message); } } /** * @Title: getCurrentUser * @Description: 获取当前用户 */ protected Map<String, Object> getCurrentUser() { Map<String, Object> user = null; // 普通用户 user = (Map<String, Object>) getRequest().getSession().getAttribute(WebConstant.SESSION_USER); // 管理员用户 if (CommonUtil.isEmpty(user)) { user = (Map<String, Object>) getRequest().getSession().getAttribute(WebConstant.SESSION_ADMIN); } return user; } /** * @Title: getCurrentUserId * @Description: 获取当前用户 ID */ protected Integer getCurrentUserId() { Integer userId = null; if (CommonUtil.isNotEmpty(this.getCurrentUser())) { // 获取当前用户id userId = (Integer) this.getCurrentUser().get("userId"); } return userId; } /** * @Title: isCurrentUserAdmin * @Description: 判断当前用户是否是管理员 */ protected boolean isCurrentUserAdmin() { // 获取管理员标识 String isAdmin = (String) this.getCurrentUser().get("isAdmin"); if (CommonUtil.isNotEmpty(isAdmin) && isAdmin.equals("1")) { return true; } return false; } /** * @Title: setFormValid * @Description: 设置表单校验标识 */ protected void setFormValid() { // 消除失效校验标识 this.getSession().setAttribute(WebConstant.FORM_VALID_NAME, null); // 生成新标识 this.getSession().setAttribute(WebConstant.FORM_VALID_NAME, WebConstant.FORM_VALID_NAME); } /** * @Title: validForm * @Description: 提交表单后调用此方法,校验是否重复提交 */ protected boolean validForm() { String _validFlag = (String) getSession().getAttribute(WebConstant.FORM_VALID_NAME); // 标识不为空 if (CommonUtil.isNotEmpty(_validFlag)) { // 标识有效 if (_validFlag.equals(WebConstant.FORM_VALID_NAME)) { // 消除失效校验标识 this.getSession().setAttribute(WebConstant.FORM_VALID_NAME, null); return true; } } return false; } }

8 最后

你可能感兴趣的:(课程设计,毕业设计,java,web,校友录网站,毕业设计)