Java项目:SSH校园精品课程网前后台

作者主页:夜未央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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜未央5788

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值