SSH JavaWeb学生信息管理系统实现

上周周末断网。。。。。无聊的时候写的demo,SSH的。

SIMS(Student Information Management System,学生信息管理系统) 包括登录、学生信息录入,修改,删除,查询,数据批量导出等等功能。

开发环境:Eclipse ,jdk1.6

框架:SpringMvc+Hibernate(ORM工具)

前台:JSP

数据库:MySQL

众所周知,Spring配置是相当头疼的,后面尽量用Springboot写一下(当然得先学,省去自己配制还是相当方便的)。本来想把项目源码放到Github上面,

但是还要自己配置,就懒得放了。。。

话不多说,先看下目录结构:

SSH JavaWeb学生信息管理系统实现_第1张图片

配置文件有三个,Springmvc.xml,applicationContext.xml,web.xml;



  SIMS
  
    index.html
    index.html
    index.jsp
    default.html
    default.htm
    default.jsp
  
  
    spring
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      /WEB-INF/config/spring-mvc.xml
    
    1
    true
  
  
    spring
    /
  
  
    contextConfigLocation
    /WEB-INF/config/applicationContext.xml
  
  
    org.springframework.web.context.ContextLoaderListener
  
  
    org.springframework.web.context.request.RequestContextListener
  
  
    Set Character Encoding
    org.springframework.web.filter.CharacterEncodingFilter
    true
    
      encoding
      UTF-8
    
    
      forceEncoding
      true
    
  
  
    Set Character Encoding
    /*
  
  
    openSessionInViewFilter
    org.springframework.orm.hibernate4.support.OpenSessionInViewFilter
    true
    
      sessionFactoryBeanName
      sessionFactory
    
  
  
    openSessionInViewFilter
    /*
  
  
    loginFilter
    org.SIMS.controller.LoginFilter
  
  
    loginFilter
    /*
  

跟普通的web.xml一样,多了一个简单的过滤器,功能是判断当前用户是否登陆过。有的话放行,没有的话让其跳转到登录界面。




    
	
    
    
        
    
    
    
	
		
        
        
        
	

    
	
			
		
		
			
				${hibernate.dialect}
                ${hibernate.hbm2ddl.auto}
				true
				${hibernate.format_sql}
				
				
                class
                
                false
                
                ${hibernate.query.substitutions}
                ${hibernate.default_batch_fetch_size}
				${hibernate.max_fetch_depth}
				${hibernate.generate_statistics}
				${hibernate.bytecode.use_reflection_optimizer}
			
		
		
			
		
	
	
	
	
		
	
	
	
	
	
	

上面这个applicationContext.xml是配置一些bean,主要包括数据库,事务管理,上传文件等等。

SpringMvc的话功能主要是扫描注解,映射处理器,视图解析器,静态资源映射等等。



    
    
        
    
    
    
	

    
    
    
    

    
    

    
    
        
        
        
        
    
    

有了这几个文件,就可以完成Mvc的操作了,前台发起交易,后台处理完成返回视图经过视图解析器处理得到一个JSP页面。

这个系统有两种角色,Administrator和Student,由于是简单的demo,我就没给注册界面,手动添加了管理员信息入库,然后过滤器实现登录过滤,登录过滤如下:

package org.SIMS.controller;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.SIMS.domain.Administrator;

/**
 * Servlet Filter implementation class LoginFilter
 */
@WebFilter("/LoginFilter")
public class LoginFilter implements Filter {

    /**
     * Default constructor. 
     */
    public LoginFilter() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see Filter#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
	}

	/**
	 * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub
		// place your code here
		HttpServletRequest req= (HttpServletRequest)request;
		HttpServletResponse res= (HttpServletResponse)response;
		String url = req.getRequestURI();
		HttpSession session = req.getSession();
		Administrator ad = (Administrator) session.getAttribute("Admin");
		System.out.println(session.getAttribute("Admin"));
		if(ad!=null || url.endsWith("login")||url.endsWith(".css")||url.endsWith(".js")||url.endsWith("gakki.png")||url.endsWith("loginfmbg.png")||url.endsWith("SSH_market/")){//第一次登录的话放行,不然跳转至登陆页面
		// pass the request along the filter chain
			chain.doFilter(req, res);
		}else{
			//未登录的话就跳转至登陆页面
			req.getRequestDispatcher("/login.jsp").forward(req, res);
		}
	}

	/**
	 * @see Filter#init(FilterConfig)
	 */
	public void init(FilterConfig fConfig) throws ServletException {
		// TODO Auto-generated method stub
	}

}


下面以登录为例,请求到后台,dispatchServlet分发请求,HandlerMapping来处理映射,根据前台发的交易名字去找注解为"/login/login"的方法,即下面的Controller中的login方法。找到之后进行操作,完成返回视图,经viewResolver渲染得到JSP文件来展示。


package org.SIMS.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.SIMS.domain.Administrator;
import org.SIMS.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/login")
public class LoginController {
	@Autowired
	private StudentService studentservice;
	@RequestMapping("/login")
	public String login(HttpServletRequest request,HttpServletResponse response){
		String name = request.getParameter("name");
		String pwd =request.getParameter("pwd");
		Administrator ad = studentservice.getAdmin(name,pwd);
		if(ad==null){
			//失败的情况,跳转失败页面要么重新登录
			System.out.println("没有该用户!");
		}
		request.getSession().setAttribute("Admin", ad);
		return "redirect:/index.jsp";
	}
}


代码就不一一罗列了,相信大家应该会。登陆进去之后,就是普通的CRUD操作了,我不会写界面,难看了别骂我。。。。

CRUD就是普通的前台发起交易,后台Controller-service-dao调用完成之后生成视图用视图解析器解析之后返回jsp页面作展示。

下面是登录界面:

SSH JavaWeb学生信息管理系统实现_第2张图片




登陆进来之后,是首页:

SSH JavaWeb学生信息管理系统实现_第3张图片


选中某个记录进行编辑:

SSH JavaWeb学生信息管理系统实现_第4张图片



修改完电话号码身份证号之后更新如图:



然后是各按条件查询的功能:



查询完了结果如下:



数据批量导出:




其它功能就不一一罗列了。

———————————————————————————————————————

看完《李狗嗨》和《逃避可耻但有用》,简直太好看了,被gakki萌化了,好看!!!














你可能感兴趣的:(JavaWeb常见问题总结)