Java项目:动漫论坛的设计与实现(计算机毕业设计)

作者主页:Java毕设网

 简介: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命令,配置tomcat,
3. 将项目中WebRoot/WEB-INF/applicationContext.xml配置文件中的数据库配置改为自己的配置,然后运行;
4. 在浏览器中访问地址:http://localhost:8080/

五、运行截图

前台界面

后台界面


六、相关代码

登录控制器

public class userAction {
	private TUserDAO userDAO;
	private int id;
	private String userName;
	private String userPw;
	private String realName;
	private String email;
	
	private String message;
	private String path;
	
	public TUserDAO getUserDAO() {
		return userDAO;
	}

	public void setUserDAO(TUserDAO userDAO) {
		this.userDAO = userDAO;
	}
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getUserPw() {
		return userPw;
	}

	public void setUserPw(String userPw) {
		this.userPw = userPw;
	}

	public String getRealName() {
		return realName;
	}

	public void setRealName(String realName) {
		this.realName = realName;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public String getPath() {
		return path;
	}

	public void setPath(String path) {
		this.path = path;
	}

	public String userLogout(){
		Map session= ActionContext.getContext().getSession();
		session.remove("user");
		this.setMessage("退出成功");
		this.setPath("bbs/jump.jsp");
		return "succeed";
	}
	
	public String userReg(){
		TUser user = new TUser();
		
		user.setUserName(userName);
		user.setUserPw(userPw);
		user.setEmail(email);
		user.setRealName(realName);
		user.setUserType(1);
		user.setIsDel(0);
		
		userDAO.save(user);
		
		Map session= ActionContext.getContext().getSession();
		session.put("user", user);
		this.setMessage("注册成功");
		this.setPath("bbs/jump.jsp");
		return "succeed";
	}
	
	public String userMana()
	{
		List userList = userDAO.getHibernateTemplate().find("from TUser where userType=1 and isDel=0");
		Map request=(Map)ServletActionContext.getContext().get("request");
		
		request.put("userList", userList);
		return ActionSupport.SUCCESS;
	}
	
	public String userDel()
	{
		userDAO.getHibernateTemplate().bulkUpdate("update TUser set isDel=1 where id="+id);
		
		this.setMessage("操作成功");
		this.setPath("userMana.action");
		return "succeed";
	}
	
}
public class userAction {
	private TUserDAO userDAO;
	private int id;
	private String userName;
	private String userPw;
	private String realName;
	private String email;
	
	private String message;
	private String path;
	
	public TUserDAO getUserDAO() {
		return userDAO;
	}

	public void setUserDAO(TUserDAO userDAO) {
		this.userDAO = userDAO;
	}
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getUserPw() {
		return userPw;
	}

	public void setUserPw(String userPw) {
		this.userPw = userPw;
	}

	public String getRealName() {
		return realName;
	}

	public void setRealName(String realName) {
		this.realName = realName;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public String getPath() {
		return path;
	}

	public void setPath(String path) {
		this.path = path;
	}

	public String userLogout(){
		Map session= ActionContext.getContext().getSession();
		session.remove("user");
		this.setMessage("退出成功");
		this.setPath("bbs/jump.jsp");
		return "succeed";
	}
	
	public String userReg(){
		TUser user = new TUser();
		
		user.setUserName(userName);
		user.setUserPw(userPw);
		user.setEmail(email);
		user.setRealName(realName);
		user.setUserType(1);
		user.setIsDel(0);
		
		userDAO.save(user);
		
		Map session= ActionContext.getContext().getSession();
		session.put("user", user);
		this.setMessage("注册成功");
		this.setPath("bbs/jump.jsp");
		return "succeed";
	}
	
	public String userMana()
	{
		List userList = userDAO.getHibernateTemplate().find("from TUser where userType=1 and isDel=0");
		Map request=(Map)ServletActionContext.getContext().get("request");
		
		request.put("userList", userList);
		return ActionSupport.SUCCESS;
	}
	
	public String userDel()
	{
		userDAO.getHibernateTemplate().bulkUpdate("update TUser set isDel=1 where id="+id);
		
		this.setMessage("操作成功");
		this.setPath("userMana.action");
		return "succeed";
	}
	
}

主题管理控制器

ublic class topicAction extends ActionSupport{
	private TForumsDAO forumsDAO;
	private TTopicDAO topicDAO;
	private TThreadsDAO threadsDAO;
	private int fid;
	private int pid;
	
	private String message;
	private String path;
	
	public String topicMana(){
		List topicList = new ArrayList();
		
		String sql = "select ta.pid,author,name,`subject`,view,replies,addtime from t_topic ta left join t_forums tb on ta.fid=tb.fid";
		Session session = topicDAO.getSessionFactory().openSession();
		List objList = session.createSQLQuery(sql).list();
		for (Object object : objList) {
			Object[] objTopic = (Object[])object;
			
			TTopic topic = new TTopic();
			topic.setPid((Integer)objTopic[0]);
			topic.setAuthor((String)objTopic[1]);
			topic.setFname((String)objTopic[2]);
			topic.setSubject((String)objTopic[3]);
			topic.setView((Integer)objTopic[4]);
			topic.setReplies((Integer)objTopic[5]);
			topic.setAddtime((Date)objTopic[6]);
			
			topicList.add(topic);
		}
		
		Map request=(Map)ServletActionContext.getContext().get("request");
		request.put("topicList", topicList);
		return SUCCESS;
	}
	
	public String topicDel(){
		String delSql = "delete from TTopic where pid="+pid;
		topicDAO.getHibernateTemplate().bulkUpdate(delSql);
		
		delSql = "delete from TThreads where pid="+pid;
		topicDAO.getHibernateTemplate().bulkUpdate(delSql);
		
		this.setMessage("操作成功");
		this.setPath("topicMana.action");
		return "succeed";
	}
	
	public String topicview(){
		List topicList = topicDAO.getHibernateTemplate().find("from TTopic where fid="+fid +"order by addtime desc");
		for (Object object : topicList) {
			TTopic topic = (TTopic)object;
			topic.setStyle("folder_common");
			
			String sql = "from TThreads where pid="+topic.getPid()+" order by addtime desc limit 1";
			TThreads lastSub = (TThreads)threadsDAO.getHibernateTemplate().find(sql).get(0);
			
			if(topic.getReplies()>0){
				//判断是否是最新回复
				if(newSub(lastSub.getAddtime())){
					topic.setStyle("folder_new");
				}
			}
			topic.setLastsub(lastSub);
		}
		
		TForums forums = forumsDAO.findById(fid);
		
		Map request=(Map)ServletActionContext.getContext().get("request");
		request.put("topicList", topicList);
		request.put("forums", forums);
		return ActionSupport.SUCCESS;
	}
	
	/**
	 * 判断是否有新主题
	 * @return
	 */
	private boolean newSub(Date addtime){
		boolean result = false;
		
		Calendar calendar = Calendar.getInstance();
		
		calendar.setTime(addtime);
		long timeadd = calendar.getTimeInMillis();
		
		calendar.setTime(new Date());
		long timethis = calendar.getTimeInMillis();
		
		long theday = (timethis - timeadd) / (1000 * 60 * 60 * 24);
		
		if(theday<7)
			result = true;
		return result;
	}	
	
	public TForumsDAO getForumsDAO() {
		return forumsDAO;
	}
	public void setForumsDAO(TForumsDAO forumsDAO) {
		this.forumsDAO = forumsDAO;
	}
	public TTopicDAO getTopicDAO() {
		return topicDAO;
	}
	public void setTopicDAO(TTopicDAO topicDAO) {
		this.topicDAO = topicDAO;
	}
	public TThreadsDAO getThreadsDAO() {
		return threadsDAO;
	}
	public void setThreadsDAO(TThreadsDAO threadsDAO) {
		this.threadsDAO = threadsDAO;
	}
	public int getPid() {
		return pid;
	}
	public void setPid(int pid) {
		this.pid = pid;
	}
	public int getFid() {
		return fid;
	}
	public void setFid(int fid) {
		this.fid = fid;
	}
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	public String getPath() {
		return path;
	}
	public void setPath(String path) {
		this.path = path;
	}
}

七、如果也想学习本系统,下面领取。关注并回复:130ssh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值