采用技术
基于Spring+SpringMVC+MyBatis框架实现的少儿编程网上报名系统的设计与实现~
开发语言:Java
数据库:MySQL
技术:SpringMVC+MyBatis
工具:IDEA/Ecilpse、Navicat、Maven
页面展示效果
前台首页
管理员模块
管理员登录
后台页面
用户管理
课程信息管理
轮播图
课程购买管理
退课管理
课程评价管理
用户模块
用户信息
课程购买管理
课程评价管理
我的收藏管理
项目背景
- 近年来,随着网络技术的不断发展,越来越多人在网站查询各种信息,少儿编程网上报名系统对用户和管理员都有很大帮助,少儿编程网上报名系统通过和数据库管理系软件协作来实现用户与管理员之间的一个很好的操作平台,基于这一点,设计了一个少儿编程网上报名系统。
- 经过对以上的情况进行分析,我们对用户的实际需求进行了详细的分析,指定出了相应的开发计划,为了方便用户在线进行查看首页、课程信息、课程资讯、留言反馈、个人中心、后台管理操作,帮助管理员节省很多的管理时间以及可以减少工作量,使得管理工作更加快捷顺利的进行,因此开发设计了该系统。
- 随着计算机的不断发展,已经融入到我们生活工作的每一个领域中,给我们的生活工作带来了很多的便利,因此,希望可以通过该系统的开发也能使少儿编程网上报名系统实现信息化管理,减轻人的负担,提高工作效率。
研究意义
- 与其他国家相比,我国的软件产业相对落后,在信息化建设方面起步也比较晚,但是随着我国经济的不断发展,以及网络技术的不断提高,我国也在不断的进行软件行业的摸索,也得到了一些成果,我国的软件产业得到了快速的发展,越来越多的软件系统出现在人们的视线中,也逐渐改变着人们生活工作的方式。
- 但是,对于信息化,与很多发达国家相比,由于信息化程度的落后以及经费的不足,我国的少儿编程网上报名系统开发方面还是相对落后的,因此,要不断的努力探索,争取开发出一个实用信息化的少儿编程网上报名系统,来实现少儿编程网上报名系统的信息化。因此本课题以课程为例,目的是开发一个实用的少儿编程网上报名系统。
源码示例
public class KechengxinxiModel implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 课程名称
*/
private String kechengmingcheng;
/**
* 课程类型
*/
private String kechengleixing;
/**
* 课时
*/
private Integer keshi;
/**
* 图片
*/
private String tupian;
/**
* 价格
*/
private Integer jiage;
/**
* 课程详情
*/
private String kechengxiangqing;
/**
* 最近点击时间
*/
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
@DateTimeFormat
private Date clicktime;
/**
* 点击次数
*/
private Integer clicknum;
/**
* 设置:课程名称
*/
public void setKechengmingcheng(String kechengmingcheng) {
this.kechengmingcheng = kechengmingcheng;
}
/**
* 获取:课程名称
*/
public String getKechengmingcheng() {
return kechengmingcheng;
}
/**
* 设置:课程类型
*/
public void setKechengleixing(String kechengleixing) {
this.kechengleixing = kechengleixing;
}
/**
* 获取:课程类型
*/
public String getKechengleixing() {
return kechengleixing;
}
/**
* 设置:课时
*/
public void setKeshi(Integer keshi) {
this.keshi = keshi;
}
/**
* 获取:课时
*/
public Integer getKeshi() {
return keshi;
}
/**
* 设置:图片
*/
public void setTupian(String tupian) {
this.tupian = tupian;
}
/**
* 获取:图片
*/
public String getTupian() {
return tupian;
}
/**
* 设置:价格
*/
public void setJiage(Integer jiage) {
this.jiage = jiage;
}
/**
* 获取:价格
*/
public Integer getJiage() {
return jiage;
}
/**
* 设置:课程详情
*/
public void setKechengxiangqing(String kechengxiangqing) {
this.kechengxiangqing = kechengxiangqing;
}
/**
* 获取:课程详情
*/
public String getKechengxiangqing() {
return kechengxiangqing;
}
/**
* 设置:最近点击时间
*/
public void setClicktime(Date clicktime) {
this.clicktime = clicktime;
}
/**
* 获取:最近点击时间
*/
public Date getClicktime() {
return clicktime;
}
/**
* 设置:点击次数
*/
public void setClicknum(Integer clicknum) {
this.clicknum = clicknum;
}
/**
* 获取:点击次数
*/
public Integer getClicknum() {
return clicknum;
}
}
@Component
public class AuthorizationInterceptor implements HandlerInterceptor {
public static final String LOGIN_TOKEN_KEY = "Token";
@Autowired
private TokenService tokenService;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//支持跨域请求
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization");
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
IgnoreAuth annotation;
if (handler instanceof HandlerMethod) {
annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);
} else {
return true;
}
//从header中获取token
String token = request.getHeader(LOGIN_TOKEN_KEY);
/**
* 不需要验证权限的方法直接放过
*/
if(annotation!=null) {
return true;
}
TokenEntity tokenEntity = null;
if(StringUtils.isNotBlank(token)) {
tokenEntity = tokenService.getTokenEntity(token);
}
if(tokenEntity != null) {
request.getSession().setAttribute("userId", tokenEntity.getUserid());
request.getSession().setAttribute("role", tokenEntity.getRole());
request.getSession().setAttribute("tableName", tokenEntity.getTablename());
request.getSession().setAttribute("username", tokenEntity.getUsername());
return true;
}
PrintWriter writer = null;
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8");
try {
writer = response.getWriter();
writer.print(JSONObject.toJSONString(R.error(401, "请先登录")));
} finally {
if(writer != null){
writer.close();
}
}
// throw new EIException("请先登录", 401);
return false;
}
}