作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
本项目是很不错的一个校园精品课程网源码,前台和后台源码都有,分为管理员与学生两种角色;
前台功能:网站首页,校园新闻,课程中心,资源下载,互动交流,个人中心
后台功能:首页,新闻,用户管理,作业管理文件类型,添加课程,课程管理等等
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
6.是否Maven项目: 否;
技术栈
1. 后端:Spring+Struts+Hibernate
2. 前端:JSP+css+javascript+jQuery
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中applicationContext.xml配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入http://localhost:8080/ 登录
管理员账号:admin 密码:123
学生账号:user2 密码:123
运行截图
前台页面
相关代码
IndexAction
package com.classnet.action;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import com.classnet.dao.ClazzDao;
import com.classnet.dao.ClazzMenuDao;
import com.classnet.dao.NewsDao;
import com.classnet.dao.SourceDao;
import com.classnet.dao.SourceMenuDao;
import com.classnet.dao.TopicDao;
import com.classnet.dao.TopicMenuDao;
import com.classnet.entity.ClazzEntity;
import com.classnet.entity.ClazzMenuEntity;
import com.classnet.entity.NewsEntity;
import com.classnet.entity.SourceEntity;
import com.classnet.entity.SourceMenuEntity;
import com.classnet.entity.TopicEntity;
import com.classnet.entity.TopicMenuEntity;
public class IndexAction extends Action{
private NewsDao newsDao;
private ClazzDao clazzDao;
private SourceDao sourceDao;
private ClazzMenuDao clazzMenuDao;
private SourceMenuDao sourceMenuDao;
private TopicDao topicDao;
private TopicMenuDao topicMenuDao;
public void setTopicDao(TopicDao topicDao) {
this.topicDao = topicDao;
}
public void setTopicMenuDao(TopicMenuDao topicMenuDao) {
this.topicMenuDao = topicMenuDao;
}
public void setSourceMenuDao(SourceMenuDao sourceMenuDao) {
this.sourceMenuDao = sourceMenuDao;
}
public void setClazzMenuDao(ClazzMenuDao clazzMenuDao) {
this.clazzMenuDao = clazzMenuDao;
}
public void setSourceDao(SourceDao sourceDao) {
this.sourceDao = sourceDao;
}
public void setClazzDao(ClazzDao clazzDao) {
this.clazzDao = clazzDao;
}
public void setNewsDao(NewsDao newsDao) {
this.newsDao = newsDao;
}
@SuppressWarnings("unchecked")
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
DetachedCriteria newsTJdc = DetachedCriteria.forClass(NewsEntity.class);
newsTJdc.add(Restrictions.eq("status", 2));
List<NewsEntity> newsTJList = newsDao.findByExample(newsTJdc, 10);
DetachedCriteria newsBigImgdc = DetachedCriteria.forClass(NewsEntity.class);
newsBigImgdc.add(Restrictions.eq("status", 4));
List<NewsEntity> newsBigImgList = newsDao.findByExample(newsBigImgdc);
DetachedCriteria newclazzdc = DetachedCriteria.forClass(ClazzEntity.class);
newclazzdc.addOrder(Order.desc("pubtime"));
List<ClazzEntity> newClazzList = clazzDao.findByExample(newclazzdc,13);
DetachedCriteria clazzmenudc = DetachedCriteria.forClass(ClazzMenuEntity.class);
clazzmenudc.add(Restrictions.isNull("parentMenuEntity"));
List<ClazzMenuEntity> clazzMenuList = clazzMenuDao.findByExample(clazzmenudc);
DetachedCriteria clazztjdc = DetachedCriteria.forClass(ClazzEntity.class);
clazztjdc.add(Restrictions.eq("status", 2));
List<ClazzEntity> tjClazzList = clazzDao.findByExample(clazztjdc,4);
DetachedCriteria sourcedc = DetachedCriteria.forClass(SourceEntity.class);
sourcedc.addOrder(Order.desc("pubtime"));
List<SourceEntity> sourceList = sourceDao.findByExample(sourcedc, 16);
DetachedCriteria sourcemenudc = DetachedCriteria.forClass(SourceMenuEntity.class);
List<SourceMenuEntity> sourceMenuList = sourceMenuDao.findByExample(sourcemenudc);
DetachedCriteria topicdc = DetachedCriteria.forClass(TopicEntity.class);
topicdc.addOrder(Order.desc("id"));
List<TopicEntity> topicList = topicDao.findByExample(topicdc, 16);
DetachedCriteria topicmenudc = DetachedCriteria.forClass(TopicMenuEntity.class);
List<TopicMenuEntity> topicMenuList = topicMenuDao.findByExample(topicmenudc);
request.setAttribute("newsTJList", newsTJList);
request.setAttribute("newClazzList", newClazzList);
request.setAttribute("clazzMenuList", clazzMenuList);
request.setAttribute("tjClazzList", tjClazzList);
request.setAttribute("sourceList", sourceList);
request.setAttribute("sourceMenuList", sourceMenuList);
request.setAttribute("newsBigImgList", newsBigImgList);
request.setAttribute("topicList", topicList);
request.setAttribute("topicMenuList", topicMenuList);
return mapping.findForward("succ");
}
}
MenuAction
package com.classnet.action.source;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import com.classnet.dao.ClazzDao;
import com.classnet.dao.NewsDao;
import com.classnet.dao.SourceMenuDao;
import com.classnet.entity.ClazzEntity;
import com.classnet.entity.NewsEntity;
import com.classnet.entity.SourceEntity;
import com.classnet.entity.SourceMenuEntity;
import com.classnet.util.page.IPagination;
import com.classnet.util.page.SimplePagination;
import com.classnet.util.page.WebUtil;
public class MenuAction extends Action{
private SourceMenuDao sourceMenuDao;
private NewsDao newsDao;
private ClazzDao clazzDao;
public void setNewsDao(NewsDao newsDao) {
this.newsDao = newsDao;
}
public void setClazzDao(ClazzDao clazzDao) {
this.clazzDao = clazzDao;
}
public void setSourceMenuDao(SourceMenuDao sourceMenuDao) {
this.sourceMenuDao = sourceMenuDao;
}
@SuppressWarnings("unchecked")
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
int page = WebUtil.getPage(request);
int page_size = 20;
int id = WebUtil.getInteger(request, "id");
SourceMenuEntity sourceMenu = sourceMenuDao.selectById(SourceMenuEntity.class, id);
if(sourceMenu==null){
response.sendRedirect(request.getContextPath());
return null;
}
DetachedCriteria dc = DetachedCriteria.forClass(SourceEntity.class);
dc.add(Restrictions.eq("sourceMenu.id", id));
dc.addOrder(Order.desc("pubtime"));
IPagination pp = new SimplePagination(dc,Order.desc("pubtime"),true,page,page_size);
pp.save(request);
List<SourceEntity> sourceList = pp.getPage();
DetachedCriteria menudc = DetachedCriteria.forClass(SourceMenuEntity.class);
List<SourceMenuEntity> menuList = sourceMenuDao.findByExample(menudc);
DetachedCriteria hotnewsdc = DetachedCriteria.forClass(NewsEntity.class);
hotnewsdc.addOrder(Order.desc("viewNum"));
List<NewsEntity> newsList = newsDao.findByExample(hotnewsdc, 10);
DetachedCriteria clazzdc = DetachedCriteria.forClass(ClazzEntity.class);
clazzdc.add(Restrictions.eq("status", 2));
clazzdc.addOrder(Order.desc("viewCount"));
List<ClazzEntity> clazzList = clazzDao.findByExample(clazzdc, 10);
request.setAttribute("sourceMenu", sourceMenu);
request.setAttribute("sourceList", sourceList);
request.setAttribute("menuList", menuList);
request.setAttribute("newsList", newsList);
request.setAttribute("clazzList", clazzList);
return mapping.findForward("succ");
}
}
SourceIndexAction
package com.classnet.action.source;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import com.classnet.dao.ClazzDao;
import com.classnet.dao.NewsDao;
import com.classnet.dao.SourceDao;
import com.classnet.dao.SourceMenuDao;
import com.classnet.entity.ClazzEntity;
import com.classnet.entity.NewsEntity;
import com.classnet.entity.SourceEntity;
import com.classnet.entity.SourceMenuEntity;
public class SourceIndexAction extends Action{
private SourceDao sourceDao;
private SourceMenuDao sourceMenuDao;
private NewsDao newsDao;
private ClazzDao clazzDao;
public void setClazzDao(ClazzDao clazzDao) {
this.clazzDao = clazzDao;
}
public void setSourceDao(SourceDao sourceDao) {
this.sourceDao = sourceDao;
}
public void setSourceMenuDao(SourceMenuDao sourceMenuDao) {
this.sourceMenuDao = sourceMenuDao;
}
@SuppressWarnings("unchecked")
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
DetachedCriteria menudc = DetachedCriteria.forClass(SourceMenuEntity.class);
List<SourceMenuEntity> menuList = sourceMenuDao.findByExample(menudc);
if(menuList!=null&&!menuList.isEmpty()){
for(SourceMenuEntity menu : menuList){
DetachedCriteria sourcedc = DetachedCriteria.forClass(SourceEntity.class);
sourcedc.add(Restrictions.eq("sourceMenu.id", menu.getId()));
sourcedc.addOrder(Order.desc("pubtime"));
List<SourceEntity> sourceList = sourceDao.findByExample(sourcedc, 10);
menu.setSourceList(sourceList);
}
}
DetachedCriteria hotnewsdc = DetachedCriteria.forClass(NewsEntity.class);
hotnewsdc.addOrder(Order.desc("viewNum"));
List<NewsEntity> newsList = newsDao.findByExample(hotnewsdc, 10);
DetachedCriteria clazzdc = DetachedCriteria.forClass(ClazzEntity.class);
clazzdc.add(Restrictions.eq("status", 2));
clazzdc.addOrder(Order.desc("viewCount"));
List<ClazzEntity> clazzList = clazzDao.findByExample(clazzdc, 10);
request.setAttribute("menuList", menuList);
request.setAttribute("newsList", newsList);
request.setAttribute("clazzList", clazzList);
return mapping.findForward("succ");
}
public void setNewsDao(NewsDao newsDao) {
this.newsDao = newsDao;
}
}
UploadAction
package com.classnet.action;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
import com.classnet.form.UploadForm;
import com.classnet.util.DateUtil;
import com.classnet.util.upload.UploadFileImpl;
public class UploadAction extends Action{
private String type;
private int filesize = 1024*1024;
private String path;
private String uploadHttpPath;
public void setUploadHttpPath(String uploadHttpPath) {
this.uploadHttpPath = uploadHttpPath;
}
public void setPath(String path) {
this.path = path;
}
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
UploadForm uploadForm = (UploadForm)form;
FormFile file = uploadForm.getNewFile();
UploadFileImpl uploadFile = new UploadFileImpl(path+"/images",filesize,type,file);
uploadFile.save(DateUtil.getDateString());
out.write("<script type='text/javascript'>");
out.write("(function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})(); ");
out.write("window.parent.OnUploadCompleted(0,'"+uploadHttpPath+"/images/"+uploadFile.getUploadFileName()+"','','') ; ");
out.write("</script>'");
return null;
}
public void setType(String type) {
this.type = type;
}
}
如果也想学习本系统,下面领取。关注并回复:123ssh