java框架ssh实验报告_基于SSH框架的实验报告系统

本文介绍了一个基于SSH框架开发的实验报告系统,实现了老师发布作业、学生提交等功能。通过使用Hibernate简化数据库操作,Struts进行页面跳转控制,Spring实现依赖注入。系统中还涉及到了密码加密、邮件通知、UEditor编辑器以及版本控制的Git使用。
摘要由CSDN通过智能技术生成

其实也可以算成是作业系统,老师可以发布作业,实验内容,学生完成提交,老师批改给分。前端主要是之前在CSDN下载的一个资源的前端,原作者做得很漂亮就拿来用了(前端硬伤,还有几个页面是同学做的,在此谢过原作者和同学,改用了一些图片和文字)。其实写这篇博文的目的还是想用CSDN的CODE的功能,自己折腾了一个下午,了解CODE的帮助和git工具,原来版本控制这么好玩且方便。传说中的一个程序员向另外一个程序员的发出的挑战就是一个项目下的分支。

主页:

56ee2cb6c3364169e9dd6819310077c5.png

为了将框架那些零零碎碎的东西和3个框架整合起来,就搭建好SSH后来开发,相对于纯JSP的开发,总体来说框架的话是前难后易(自己一步一步摸索,一次次趴倒在桌子上,最后还是搞定了),纯JSP的话是前易后难。方便的地方是Hibernate带来的数据库语句的精简(面向对象)。Struts页面的跳转控制,Spring的注入,如不用自己new SessionFactory。

注册页面:

8cdd818ede15d60af6cbd2a1624a9676.png

项目还有很多不完善之处,如学院班级专业,如果算上这个,加上那么多老师,后面的跨系问题很复杂,就此打住,只针对一个专业做。密码做了加密处理。

老师登录:

c592509d6e9bad396a81c73dc700a79e.png

邮件通知功能未完善,就是javamail的东西。

作业发布的编辑器用了百度的UEditor。

921a264d760ff2ef2607160690820bc1.png

学生登录:

6ca093753af022cc34f397b0b0629200.png

其实里面的逻辑关系也不复杂,你布置我完成,我完成你改,你改我查成绩,一气呵成,主要是有了框架之后要考虑比较多的东西。

分层(以下代码省略)为实体类Bean层,如Homework

package com.web.bean;

import java.sql.Timestamp;

/**

* AbstractHomework entity provides the base persistence definition of the

* Homework entity. @author MyEclipse Persistence Tools

*/

public class Homework implements java.io.Serializable {

// Fields

private Integer id;

private String title;

//科目

private String subject;

private String studentcontent;

private String teachercontent;

private Integer teacherid;

private Integer studentid;

private Integer homeworkid;

//完成时间

private Timestamp finishdate;

//发布时间

private Timestamp publishdate;

//完成时间

private Timestamp lastdate;

//分数

private Integer mark;

}

Action层,struts的跳转,如登录跳转LoginAction

public class LoginAction extends ActionSupport {

private int loginid;

private String password;

private String role;

private LoginService loginService;

@Override

public String execute() throws Exception {

if(role.equals("1")){

Student student = new Student();

student.setLoginid(this.getLoginid());

student.setPassword(this.getPassword());

if(loginService.student_check(student) != null){

//验证成功后 ,往session中存入student

Map session = ActionContext.getContext().getSession();

session.put("student", loginService.student_check(student));

//System.out.println("true");

return "student_login";

}

}

}

DAO抽象层,HomeworkDAO,其实抽象主要为了以后的拓展,如果我一般系统定型,可以直接一层实现层应该也是可以的。

public interface HomeworkDAO {

void save(Homework homework);

void update(Homework homework);

void delete(Homework homework);

//所有作业

List listall();

}

DAO实现层,HomeworkDAOImpl

public class HomeworkDAOImpl extends HibernateDaoSupport implements HomeworkDAO {

/* (non-Javadoc)

* @see com.web.DAO.impl.HomeworkDAO#save(com.web.bean.Homework)

*/

public void save(Homework homework){

this.getHibernateTemplate().save(homework);

}

}

Util,功能层,主要实现一些具体的功能,如MD5加密等等。

服务层和服务实现层。HomeworkServiceImpl

public class HomeworkServiceImpl implements HomeworkService {

private HomeworkDAO homeworkDAO;

public HomeworkDAO getHomeworkDAO() {

return homeworkDAO;

}

}

总的层次有了之后,就是一个一个功能的实现,每实现一个功能就保存一份,然后命名给自己看明白,这也是所谓的版本控制。

根据CODE说明,发现Github的git shell一样可以用,vim打开存在路径问题。

查看属性

git config --list仓库初始化

git init

添加文件,add可以是将文件更新到暂存区域,也可以是文件已在暂存区域可以提交,具体看文件状态。add添加想要上传的文件。

git add README.md

commit -m不懂 可以利用git  help commit跳转到浏览器的解释文本 -m 即添加消息提示。

remote add 远程仓库添加,即存放在CSDN CODE区。

push到远程仓库,分支为master

git commit -m "first commit"

git remote add origin git@code.csdn.net:iaiti/experimentreportsystem.git

git push -u origin master

终于,可以了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值