基于javaweb+mysql的ssh教务学生信息选课成绩管理系统(java+ssh+mysql+jsp)

基于javaweb+mysql的ssh教务学生信息选课成绩管理系统(java+ssh+mysql+jsp)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+mysql的SSH教务学生信息选课成绩管理系统(java+ssh+mysql+jsp)

管理员:

admin 123456

教师:

T001 123456

T002 123456

学生:

S001 123456

S002 123456

S003 123456

管理员管理课程、选课、查看成绩、公告管理、学生管理、老师管理、班级管理等

学生查看课程、选课、向老师留言提问等

老师回复学生留言、创建课程、批改成绩等

		List<Kecheng> listkecheng = DALBase.getPageEnity("kecheng", filter,
				pageindex, pagesize);
		int recordscount = DALBase.getRecordCount("kecheng",
				filter == null ? "" : filter);
		request.setAttribute("listkecheng", listkecheng);
		PagerMetal pm = new PagerMetal(recordscount);
		// 设置尺寸
		pm.setPagesize(pagesize);
		// 设置当前显示页
		pm.setCurpageindex(pageindex);
		// 设置分页信息
		request.setAttribute("pagermetal", pm);
		// 分发请求参数
		dispatchParams(request, response);
		String forwardurl = request.getParameter("forwardurl");
		System.out.println("forwardurl=" + forwardurl);
		if (forwardurl == null) {
			forwardurl = "/admin/kechengmanager.jsp";
		}
		forward(forwardurl);
	}
}

/**************************
 * 
 * 
 *         教师控制
 * 
    public void parseRequest(HttpServletRequest request)
            throws UnsupportedEncodingException {

        files = new HashMap<String, FileItem>();

        // Create a factory for disk-based file items

        DiskFileItemFactory factory = new DiskFileItemFactory();

        factory.setSizeThreshold(sizeThreshold);
        
        if (repository != null)
            factory.setRepository(repository);

        ServletFileUpload upload = new ServletFileUpload(factory);

        upload.setHeaderEncoding(encoding);

        try {
            List<FileItem> items = upload.parseRequest(request);

            for (FileItem item : items) {
                if (item.isFormField()) {
                    String fieldName = item.getFieldName();
                    String value = item.getString(encoding);
                    parameters.put(fieldName, value);
                } else {

                    if (super.isValidFile(item)) {
                        continue;
                    }

                    String fieldName = item.getFieldName();

                    files.put(fieldName, item);
                    filesSize += item.getSize();
                }
            }

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

    /** *//** *//** *//**
     * 上传文件, 调用该方法之前必须先调用 parseRequest(HttpServletRequest request)
     * @param parent 文件存储的目录
     * @throws Exception
     */
    public void upload(File parent) throws Exception {
        if (files.isEmpty())
    private void uploadFile(File file) throws Exception{
        if (fileItem == null)
            return;

        long fileSize = fileItem.getSize();
        if (sizeMax > -1 && fileSize > super.sizeMax){
            String message = String.format("the request was rejected because its size (%1$s) exceeds the configured maximum (%2$s)", fileSize, super.sizeMax);
                    
            throw new RuntimeException(message);
        }
        
        String name = fileItem.getName();
        fileItem.write(file);
    }
    
    /** *//** *//** *//**
     * 获取文件信息
     * 必须先调用 parseRequest(HttpServletRequest request)
     * @return
     */
    public FileItem getFileItem() {
        return fileItem;
    }
}

 
 
 
 

public class MutiFileUpload extends FileUploadBase {

    private Map<String, FileItem> files;// 保存上传的文件
	private void modifyPw() {
		String password1 = request.getParameter("password1");
		String repassword1 = request.getParameter("repassword1");
		String repassword2 = request.getParameter("repassword2");
		String forwardurl = request.getParameter("forwardurl");
		String errorpageurl = request.getParameter("errorpageurl");
		String id = request.getParameter("id");
		if (id == null || id == "")
			return;
		Teacher teacher = (Teacher) DALBase
				.load(Teacher.class, new Integer(id));
		if (teacher != null) {
			if (!teacher.getPassword().equals(password1)) {
				try {
					request.setAttribute("errormsg",
							"<label class='error'>原始密码不正确,不能修改</label>");
					request.getRequestDispatcher(errorpageurl).forward(request,
							response);
				} catch (Exception e) {
					e.printStackTrace();
				}
			} else {
				teacher.setPassword(repassword1);
				DALBase.update(teacher);
				request.getSession().setAttribute("teacher", teacher);
				redirect(forwardurl);
			}
		}
	}

	/********************************************************
	 ****************** 信息注销监听支持*****************************
	 *********************************************************/
	public void delete() {
		String id = request.getParameter("id");
		DALBase.delete("teacher", " where id=" + id);
		binding();
	}

	/*************************************************************
	 **************** 保存动作监听支持******************************
	 **************************************************************/
	public void save() {
		String forwardurl = request.getParameter("forwardurl");
		// 验证错误url
		String errorurl = request.getParameter("errorurl");
		String tno = request.getParameter("tno");
                if (item.isFormField()) {
                    String fieldName = item.getFieldName();
                    String value = item.getString(encoding);
                    parameters.put(fieldName, value);
                } else {

                    if (!super.isValidFile(item)) {
                        continue;
                    }
                    
                    if (fileItem == null)
                        fileItem = item;
                }
            }

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

    /** *//** *//** *//**
     * 上传文件, 调用该方法之前必须先调用 parseRequest(HttpServletRequest request)
     * @param fileName 完整文件路径
     * @throws Exception
     */
    public void upload(String fileName) throws Exception {
        File file = new File(fileName);
        uploadFile(file);
    }

    /** *//** *//** *//**
     * 上传文件, 调用该方法之前必须先调用 parseRequest(HttpServletRequest request)
     * @param parent 存储的目录
     * @throws Exception
     */
    public void upload(File parent) throws Exception {
        if (fileItem == null)
            return;

        String name = fileItem.getName();
        File file = new File(parent, name);
        uploadFile(file);
    }
    
    private void uploadFile(File file) throws Exception{
        if (fileItem == null)
            return;

        long fileSize = fileItem.getSize();
		String replycontent = request.getParameter("replycontent");
		
		
		leaveword.setReplycontent(replycontent);
		leaveword.setStatus(2);
		
		DALBase.update(leaveword);
		if (forwardurl == null) {
			forwardurl = "/admin/leavewordmanager.do?actiontype=get";
		}
		redirect(forwardurl);
	}

	/********************************************************
	 ****************** 信息注销监听支持*****************************
	 *********************************************************/
	public void delete() {
		String id = request.getParameter("id");
		DALBase.delete("leaveword", " where id=" + id);
		binding();
	}

	/*************************************************************
	 **************** 保存动作监听支持******************************
	 **************************************************************/
	public void save() {
		String forwardurl = request.getParameter("forwardurl");
		// 验证错误url
		String errorurl = request.getParameter("errorurl");
		String title = request.getParameter("title");
		String dcontent = request.getParameter("dcontent");
		String createtime = request.getParameter("createtime");
		String replyren = request.getParameter("replyren");
		String replytime = request.getParameter("replytime");
		String replycontent = request.getParameter("replycontent");
		String status = request.getParameter("status");
		String lyren = request.getParameter("lyren");
		String stname = request.getParameter("stname");
		SimpleDateFormat sdfleaveword = new SimpleDateFormat("yyyy-MM-dd");
		Leaveword leaveword = new Leaveword();
		leaveword.setTitle(title == null ? "" : title);
		leaveword.setDcontent(dcontent == null ? "" : dcontent);
		if (createtime != null) {
			try {
			e.printStackTrace();
		} 
		return invokeMethod;
	}

	
	public  void  dispatchParams(HttpServletRequest request,HttpServletResponse response){
		Enumeration  params=request.getParameterNames();
		while (params.hasMoreElements())
		{
		   String paramname=params.nextElement().toString();
		   String value=request.getParameter(paramname);
		   request.setAttribute(paramname, value);
		}
	}
	
	public  String join(String join,String[] strAry){
        StringBuffer sb=new StringBuffer();
        for(int i=0;i<strAry.length;i++){
             if(i==(strAry.length-1)){
                 sb.append(strAry[i]);
             }else{
                 sb.append(strAry[i]).append(join);
             }
        }
        
        return new String(sb);
    }
	/**
	 * 也没跳转
	 * @param url
	 */
	public void redirect(String url){
		if (url == null) {
			return;
		}
		try {
			response.sendRedirect(request.getContextPath() + url);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	/**
	 * 重定向
	 * @param url
	 */
	public void forward(String url){
		String zhuanye = request.getParameter("zhuanye");
		String jiguan = request.getParameter("jiguan");
		String mobile = request.getParameter("mobile");
		String banji = request.getParameter("banji");
		String photo = request.getParameter("photo");
		String mianmao = request.getParameter("mianmao");
		String address = request.getParameter("address");
		String des = request.getParameter("des");

		String nation = request.getParameter("nation");
		String birthday = request.getParameter("birthday");
		SimpleDateFormat sdfstudent = new SimpleDateFormat("yyyy-MM-dd");
		if (stno != null)
			student.setStno(stno);
		if (name != null)
			student.setName(name);
		student.setSex(sex);
		student.setZhuanye(zhuanye);
		student.setJiguan(jiguan);
		student.setMobile(mobile);
		student.setBanji(banji);
		student.setPhoto(photo);
		student.setMianmao(mianmao);
		student.setAddress(address);
		student.setDes(des);

		student.setNation(nation);
		if (birthday != null) {
			try {
				student.setBirthday(sdfstudent.parse(birthday));
			} catch (ParseException e) {
				e.printStackTrace();
			}
		}
		DALBase.update(student);

		if (forwardurl == null) {
			forwardurl = "/admin/studentmanager.do?actiontype=get";
		}
		redirect(forwardurl);
	}
		if (banji == null)
			return;
		String name = request.getParameter("name");
		SimpleDateFormat sdfbanji = new SimpleDateFormat("yyyy-MM-dd");
		banji.setName(name);
		DALBase.update(banji);
		if (forwardurl == null) {
			forwardurl = "/admin/banjimanager.do?actiontype=get";
		}
		redirect(forwardurl);
	}

	/******************************************************
	 *********************** 加载内部支持*********************
	 *******************************************************/
	public void load() {
		//
		String id = request.getParameter("id");
		String actiontype = "save";
		dispatchParams(request, response);
		if (id != null) {
			Banji banji = (Banji) DALBase.load("banji", "where id=" + id);
			if (banji != null) {
				request.setAttribute("banji", banji);
			}
			actiontype = "update";
			request.setAttribute("id", id);
		}
		request.setAttribute("actiontype", actiontype);
		String forwardurl = request.getParameter("forwardurl");
		System.out.println("forwardurl=" + forwardurl);
		if (forwardurl == null) {
			forwardurl = "/admin/banjiadd.jsp";
		}
		forward(forwardurl);
	}

	/******************************************************
	 *********************** 数据绑定内部支持*********************
	 *******************************************************/
	public void binding() {
		if (id == null)
			return;
		Leaveword leaveword = (Leaveword) DALBase.load(Leaveword.class,
				new Integer(id));
		if (leaveword == null)
			return;
		
		String replycontent = request.getParameter("replycontent");
		
		
		leaveword.setReplycontent(replycontent);
		leaveword.setStatus(2);
		
		DALBase.update(leaveword);
		if (forwardurl == null) {
			forwardurl = "/admin/leavewordmanager.do?actiontype=get";
		}
		redirect(forwardurl);
	}

	/********************************************************
	 ****************** 信息注销监听支持*****************************
	 *********************************************************/
	public void delete() {
		String id = request.getParameter("id");
		DALBase.delete("leaveword", " where id=" + id);
		binding();
	}

	/*************************************************************
	 **************** 保存动作监听支持******************************
	 **************************************************************/
	public void save() {
		String forwardurl = request.getParameter("forwardurl");
		// 验证错误url
		String errorurl = request.getParameter("errorurl");
		String title = request.getParameter("title");
		String dcontent = request.getParameter("dcontent");
		String createtime = request.getParameter("createtime");
		String replyren = request.getParameter("replyren");
		String replytime = request.getParameter("replytime");
					+ id);
			if (kecheng != null) {
				request.setAttribute("kecheng", kecheng);
			}
			actiontype = "update";
			request.setAttribute("id", id);
		}
		request.setAttribute("actiontype", actiontype);
		String forwardurl = request.getParameter("forwardurl");
		System.out.println("forwardurl=" + forwardurl);
		if (forwardurl == null) {
			forwardurl = "/admin/kechengadd.jsp";
		}
		forward(forwardurl);
	}
	
	public void getChoose() {
		String SQL = "";
		String stno = request.getParameter("stno");
		String subname = request.getParameter("subname");
		SQL="select kc.* from kecheng kc ,xuanke xk where kc.subno=xk.subno ";
		if (stno != null)
			SQL+=" and xk.stno='"+stno+"'";
		
		if (subname != null)
			SQL += "  and kc.subname like '%" + subname + "%'  ";
		
		//
		int pageindex = 1;
		int pagesize = 10;
		// 获取当前分页
		String currentpageindex = request.getParameter("currentpageindex");
		// 当前页面尺寸
		String currentpagesize = request.getParameter("pagesize");
		// 设置当前页
		if (currentpageindex != null)
			pageindex = new Integer(currentpageindex);
		// 设置当前页尺寸
		if (currentpagesize != null)
			pagesize = new Integer(currentpagesize);
		List<Kecheng> listkecheng = DALBase.runNativeSQLInPage(SQL, Kecheng.class, pageindex, pagesize);
		int recordscount = DALBase.getNativeSQLCount(SQL);
		request.setAttribute("listkecheng", listkecheng);
		PagerMetal pm = new PagerMetal(recordscount);
		// 设置尺寸
		pm.setPagesize(pagesize);
		// 设置当前显示页
		pm.setCurpageindex(pageindex);
		// 设置分页信息
		request.setAttribute("pagermetal", pm);
		// 分发请求参数
		dispatchParams(request, response);
		String forwardurl = request.getParameter("forwardurl");
			teacherLogin(request, response);
		}
		
		

	}

	private void adminLogin(HttpServletRequest request,
			HttpServletResponse response) {

		String username = request.getParameter("username");
		String password = request.getParameter("password");
		
		Users u = (Users) DALBase.load("users", " where username='" + username
				+ "' and password='" + password + "'");

		if (u != null) {

			HttpSession session = request.getSession();
			u.setLogtimes(u.getLogtimes() + 1);
			DALBase.update(u);
			session.setAttribute("users", u);

			redirect("/admin/index.jsp");
			

		} else {

			// 分发
			dispatchParams(request, response);
			request.setAttribute("errmsg",
					"<img src=\"images/error.gif\"/>用户与密码不匹配");

			System.out.println("系统用户登录失败");
			forward("/admin/login.jsp");

		}

	}
	
	private void studentLogin(HttpServletRequest request,
			HttpServletResponse response) {

		if (id == null)
			return;
		Xuenian xuenian = (Xuenian) DALBase.load(Xuenian.class, new Integer(id));
		if (xuenian == null)
			return;
		String niandu = request.getParameter("niandu");
		SimpleDateFormat sdfxuenian = new SimpleDateFormat("yyyy-MM-dd");
		xuenian.setNiandu(niandu);
		DALBase.update(xuenian);
		if (forwardurl == null) {
			forwardurl = "/admin/xuenianmanager.do?actiontype=get";
		}
		redirect(forwardurl);
	}

	/******************************************************
	 *********************** 加载内部支持*********************
	 *******************************************************/
	public void load() {
		//
		String id = request.getParameter("id");
		String actiontype = "save";
		dispatchParams(request, response);
		if (id != null) {
			Xuenian xuenian = (Xuenian) DALBase.load("xuenian", "where id="
					+ id);
			if (xuenian != null) {
				request.setAttribute("xuenian", xuenian);
			}
			actiontype = "update";
			request.setAttribute("id", id);
		}
		request.setAttribute("actiontype", actiontype);
		String forwardurl = request.getParameter("forwardurl");
		System.out.println("forwardurl=" + forwardurl);
		if (forwardurl == null) {
			forwardurl = "/admin/xuenianadd.jsp";
		}
		forward(forwardurl);
	}

	/******************************************************
	 *********************** 数据绑定内部支持*********************
	 *******************************************************/
	public void binding() {
		}
		forward(forwardurl);
	}
	
	
}

public class KechengAction extends PageActionBase {
	
	

	private void waitXuanke() {
		String filter = "where status='选课中' ";
		String subname = request.getParameter("subname");
		if (subname != null)
			filter += "  and subname like '%" + subname + "%'  ";
		//
		int pageindex = 1;
		int pagesize = 10;
		// 获取当前分页

		}
		List<Object> banji_datasource = DALBase.getEntity("banji", "");
		request.setAttribute("banji_datasource", banji_datasource);
		dispatchParams(request, response);
		String forwardurl = request.getParameter("forwardurl");
		if (forwardurl == null) {
			forwardurl = "/admin/tongji.jsp";
		}
		forward(forwardurl);

	}

	private void avgTongji() {

		String filter = null;
		String banji = request.getParameter("banji");
		String begintime = request.getParameter("begintime");
		String endtime = request.getParameter("endtime");
		String stno = request.getParameter("stno");
		if (banji != null) {

			filter = MessageFormat
					.format(" select cj.subname,avg(score) from xuanke cj,student s where s.stno=cj.stno  and s.banji=''{0}'' group by cj.subname ",
							banji);
		}
		if (begintime != null && endtime != null && stno != null) {
			filter = MessageFormat
					.format(" select cj.subname,avg(score) from xuanke cj  where cj.createtime>=''{0}''   and cj.createtime<=''{1}'' and cj.xuehao=''{2}''   group by cj.subname ",
							begintime, endtime, stno);
		}

		if (filter != null) {
			SimpleStatistics simpleStatistics = new SimpleStatistics();
			JFreeChart chart = simpleStatistics.buildColumnChart("科目", "平均分",
					"科目平均分统计", filter);
			String filename = null;
			try {
				filename = ServletUtilities.saveChartAsPNG(chart, 1000, 500,
						request.getSession());
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
		if (forwardurl == null) {
			forwardurl = "/admin/noticemanager.do?actiontype=get";
		}
		redirect(forwardurl);
	}

	
	/******************************************************
	 *********************** 更新内部支持*********************
	 *******************************************************/
	public void update() {
		String forwardurl = request.getParameter("forwardurl");
		String id = request.getParameter("id");
		if (id == null)
			return;
		Notice notice = (Notice) DALBase.load(Notice.class, new Integer(id));
		if (notice == null)
			return;
		String title = request.getParameter("title");
		String content = request.getParameter("content");
		String pubren = request.getParameter("pubren");
		SimpleDateFormat sdfnotice = new SimpleDateFormat("yyyy-MM-dd");
		notice.setTitle(title);
		notice.setContent(content);
		notice.setCreatetime(new Date());
		notice.setPubren(pubren);
		DALBase.update(notice);
		
		if (forwardurl == null) {
			forwardurl = "/admin/noticemanager.do?actiontype=get";
		}
		redirect(forwardurl);
	}

	/******************************************************
	 *********************** 加载内部支持*********************
	 *******************************************************/
	public void load() {
		//
		String id = request.getParameter("id");
		String actiontype = "save";
		dispatchParams(request, response);
		if (id != null) {
			Notice notice = (Notice) DALBase.load("notice", "where id=" + id);
			if (notice != null) {
				request.setAttribute("notice", notice);
			}
			actiontype = "update";
		String id = request.getParameter("id");
		DALBase.delete("banji", " where id=" + id);
		binding();
	}

	/*************************************************************
	 **************** 保存动作监听支持******************************
	 **************************************************************/
	public void save() {
		String forwardurl = request.getParameter("forwardurl");
		// 验证错误url
		String errorurl = request.getParameter("errorurl");
		String name = request.getParameter("name");
		SimpleDateFormat sdfbanji = new SimpleDateFormat("yyyy-MM-dd");
		Banji banji = new Banji();
		banji.setName(name == null ? "" : name);
		// 产生验证
		Boolean validateresult = saveValidate("where name='" + name + "'");
		if (validateresult) {
			try {
				request.setAttribute("errormsg",
						"<label class='error'>已经存在班级</label>");
				request.setAttribute("banji", banji);
				request.setAttribute("actiontype", "save");
				request.getRequestDispatcher(errorurl).forward(request,
						response);
			} catch (Exception e) {
				e.printStackTrace();
			}
			return;
		}
		DALBase.save(banji);
		if (forwardurl == null) {
			forwardurl = "/admin/banjimanager.do?actiontype=get";
		}
		redirect(forwardurl);
	}

	// 新增验证
	private boolean saveValidate(String filter) {
		return DALBase.isExist("banji", filter);
	}

	/******************************************************
	 *********************** 更新内部支持*********************
		Student u = (Student) DALBase.load("student", " where stno='" + username
				+ "' and password='" + password + "'");

		if (u != null) {

			HttpSession session = request.getSession();
			
			DALBase.update(u);
			session.setAttribute("student", u);

			redirect("/student/index.jsp");
			

		} else {

			// 分发
			dispatchParams(request, response);
			request.setAttribute("errmsg",
					"<img src=\"images/error.gif\"/>用户与密码不匹配");

			System.out.println("系统用户登录失败");
			forward("/admin/login.jsp");

		}

	}
	private void teacherLogin(HttpServletRequest request,
			HttpServletResponse response) {

		String username = request.getParameter("username");
		String password = request.getParameter("password");
		
		Teacher u = (Teacher) DALBase.load("teacher", " where tno='" + username
				+ "' and password='" + password + "'");

		if (u != null) {

			HttpSession session = request.getSession();
			
			DALBase.update(u);
			session.setAttribute("teacher", u);

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值