基于javaweb的SSM学生成绩管理系统(java+spring+hibernate+mysql+jsp)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

392123240510

392123240509

402123240509

412123240509

422123240509

432123240509

442123240509

基于javaweb的SSM学生成绩管理系统(java+spring+hibernate+mysql+jsp)

系统管理员:
admin 123456

老师:
t1 123456

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

@Controller
@RequestMapping("/userController")
public class UserController extends BaseController{

private static final Logger logger = Logger.getLogger(UserController.class);

@Autowired
private SystemService systemService;


/**
* 登陆页
* @param
* @param model
* @return
*/
@RequestMapping(params="goUser")
public ModelAndView goUser(HttpServletRequest request){
return new ModelAndView("system/user");
}

@RequestMapping(params="checkRemote")
@ResponseBody
public void checkRemote(HttpServletRequest request, HttpServletResponse response, String signcode) throws Exception {
UserEntity user = this.systemService.findUniqueByProperty(UserEntity.class, "username", signcode);
String flag = "true";
if(user != null){
flag = "false";
}
response.setCharacterEncoding("utf-8");
response.getWriter().write(flag);

}

@RequestMapping(params="save")
@ResponseBody
public AjaxJson save(HttpServletRequest request, HttpServletResponse response, UserEntity user, String roleid) throws Exception {
AjaxJson j = new AjaxJson();
j.setMsg("保存成功!");
j.setSuccess(true);
try{
Md5Hash md5Hash = new Md5Hash(user.getPassword());
user.setPassword(md5Hash.toHex());
user.setRoles(getRoleList(roleid));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
		List<RoleEntity> roleList = user.getRoles();
for(RoleEntity re : roleList){
List<ResourceEntity> tempRes = re.getResource();
for(ResourceEntity res : tempRes){
if(!resourceList.contains(res)){
resourceList.add(res);
}
}

}
Client client = new Client();
client.setIp(ResourceUtil.getIpAddr(req));
client.setLogindatetime(new Date());
client.setUser(user);
client.setMenuList(resourceList);
ClientManager.getInstance().addClinet(session.getId(),
client);
if(user != null && user.getId() != null){
if(user.getStatus() == 2){
j.setSuccess(false);
j.setMsg("该用户被禁用,请联系管理员!");
}else{
j.setSuccess(true);
j.setMsg("登陆成功!");
}

}else{
j.setSuccess(false);
j.setMsg("用户名或密码错误!");
}
}
return j;
}


@RequestMapping(params="getTreeMenu")
@ResponseBody
public String getTreeMenu(HttpServletRequest request){
Client client = ResourceUtil.getClient();
List<ResourceEntity> resourceList = new ArrayList<ResourceEntity>();
if(client == null || client.getUser() == null){
return "system/login";
}else{
resourceList = client.getMenuList();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

this.scoreService.saveBatch(scoreList);
}
} catch (Exception e) {
e.printStackTrace();
j.setMsg("导入失败!");
j.setSuccess(false);
}
return j;

}

@RequestMapping(params = "exportExcel")
public void exportExcel(HttpServletRequest request, HttpServletResponse response,String teachername,String coursename,
String term,String name) throws Exception {
DetachedCriteria condition = DetachedCriteria.forClass(ScoreEntity.class);
List<ScoreEntity> scoreList = this.scoreService.findData(condition, name, teachername, coursename, term);

HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("sheet1");
HSSFRow row = sheet.createRow((int) 0);
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

for (int i = 0; i < excelHeader.length; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellValue(excelHeader[i]);
cell.setCellStyle(style);
sheet.autoSizeColumn(i);
}

for (int i = 0; i < scoreList.size(); i++) {
row = sheet.createRow(i + 1);
ScoreEntity scoreEntity = scoreList.get(i);
row.createCell(0).setCellValue(scoreEntity.getStudentEntity().getStudentnum());
row.createCell(1).setCellValue(scoreEntity.getCoursename());
row.createCell(2).setCellValue(scoreEntity.getScore().toString());
row.createCell(3).setCellValue(scoreEntity.getTerm());
row.createCell(4).setCellValue(scoreEntity.getClassname());
row.createCell(5).setCellValue(scoreEntity.getTeacherEntity().getTeachernum());
row.createCell(6).setCellValue(scoreEntity.getTeacherEntity().getTeachername());
row.createCell(7).setCellValue(scoreEntity.getStudentEntity().getName());

}

response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=studentScore.xls");
OutputStream ouputStream = response.getOutputStream();
try{
wb.write(ouputStream);
ouputStream.flush();
ouputStream.close();
}catch(Exception e){
e.printStackTrace();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
	List<ResourceEntity> resource = new ArrayList<ResourceEntity>();
for(ResourceEntity re:resourceList){
if(resourceList.size()<=0){
break;
}
if("1".equals(re.getId())){
resource.add(re);
break;
}
}
return JSONObject.valueToString(resourceToTreeNode(resource,resourceList));
}

/**
* 将sysResource类型的数据集合转化为前端较好识别的TreeNode
* @param resource
* @return
*/
private List<TreeNode> resourceToTreeNode(List<ResourceEntity> resource, List<ResourceEntity> userResource) {
if (resource != null && !resource.isEmpty() && resource.get(0).getResourceType() == ResourceEntity.TYPE_MENU) {
List<TreeNode> ch = new ArrayList<TreeNode>();
for (ResourceEntity rr : resource) {
TreeNode node = new TreeNode();
if(userResource.contains(rr)){
if(rr.getHref()==null){
node.setId(rr.getId());
}else{
node.setId(rr.getId());
}
node.setId(rr.getId());
node.setState("open");
node.setText(rr.getName());

Map<String, Object> _temp = new HashMap<String, Object>();
_temp.put("href", rr.getHref());
node.setAttributes(_temp);

ch.add(node);

}
node.setChildren(resourceToTreeNode(rr.getResources(),userResource));
}

return ch;
}
return Collections.emptyList();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
	ModelAndView mav = new ModelAndView("system/main");
HttpSession session = ContextHolderUtils.getSession();
Client client = ClientManager.getInstance().getClient(session.getId());
req.setAttribute("username", client.getUser().getUsername());
return mav;
}

@RequestMapping(params="doCheck")
@ResponseBody
public AjaxJson doCheck(HttpServletRequest req,String username, String password, String captcha){
HttpSession session = ContextHolderUtils.getSession();
AjaxJson j = new AjaxJson();

if(!captcha.equalsIgnoreCase(String.valueOf(session.getAttribute(SystemConstant.KEY_CAPTCHA)))){
j.setSuccess(false);
j.setMsg("验证码错误!");
}else{
UserEntity user = new UserEntity();
user.setUsername(username);
user.setPassword(password);
user = this.systemService.getUserByNameAndPassword(user);
if(user == null){
j.setSuccess(false);
j.setMsg("用户名或密码错误!");
return j;
}
List<ResourceEntity> resourceList = new ArrayList<ResourceEntity>();
List<RoleEntity> roleList = user.getRoles();
for(RoleEntity re : roleList){
List<ResourceEntity> tempRes = re.getResource();
for(ResourceEntity res : tempRes){
if(!resourceList.contains(res)){
resourceList.add(res);
}
}

}
Client client = new Client();
client.setIp(ResourceUtil.getIpAddr(req));
client.setLogindatetime(new Date());
client.setUser(user);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
			ImageIO.write(image, "JPEG", resp.getOutputStream());


} catch (Exception e) {
e.printStackTrace();
}

}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}


public static void main(String[] args) {
Md5Hash md5Hash = new Md5Hash("123456");
String password = md5Hash.toHex();
System.out.println(password);
}
}




/**
*
* 指导老师:动力节点-王勇
* 封装基础的内容controller
*/
@Controller
public class BaseController {

/**
* 将前台传递过来的日期格式的字符串,自动转化为Date类型
*
* @param binder
*/
@InitBinder
public void initBinder(ServletRequestDataBinder binder) {
binder.registerCustomEditor(Date.class, new DateConvertEditor());
}

// public BaseController(){


项目链接:
https://javayms.github.io?id=382123240509201el
https://javayms.pages.dev?id=382123240509201el