整合SpringMVC框架+Mybatis框架开发人力资源管理系统(八)

系统UI界面设计

为了实现权限控制并提高安全性,我将所有的jsp页面均放在WEB-INF的文件夹下,利用一个拦截器判断用户是否登录,未登录用户不具备访问的资格。拦截器代码如下:

package org.fkit.hrm.interceptor;

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

import org.fkit.hrm.domain.User;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
/**
 * 判断用户权限的拦截器
 * @author lenovo
 *
 */
public class AuthorizedInterceptor implements HandlerInterceptor {
	//定义无需拦截的url
    private static final String [] IGNORE_URI={"/loginForm","/login","/404.html",".js"};
	@Override
	public void afterCompletion(HttpServletRequest arg0,
			HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {
		/**
		 * 该方法用于用于视图渲染之后进行,即在控制器将视图返回给请求之后,
		 * 该方法一般用于对资源进行清理
		 */
	}

	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
			Object arg2, ModelAndView arg3) throws Exception {
		/**
		 * 该方法用于preHandle方法执行之后并且返回为true的情况下执行,
		 * 也就是在控制器执行完具体操作返回视图之前
		 */
	}

	@Override
	public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
			Object arg2) throws Exception {
		/**
		 * 该方法用于在控制器执行之前执行,进行一些初始化操作,比如验证用户权限之类的
		 */
		//默认用户没有登录
		boolean flag=false;
		//获取用户的访问路径
	    String path=arg0.getServletPath();
	    for(String str:IGNORE_URI){
	    	if(path.contains(str)){
	    		flag=true;
	    		break;
	    	}
	    }
	    if(!flag){
	    	//先判断session是否有登录信息
	    	User user=(User)arg0.getSession().getAttribute("user");
	    	//判断用户是否已经登录
	    	if(user==null){
	    		//如果用户为空,跳转到登录界面
	    		arg0.setAttribute("message", "请先登录在访问网站");
	    	    arg0.getRequestDispatcher("loginForm").forward(arg0, arg1);
	    	    return flag;
	    	}
	    	else{
	    		flag=true;
	    	}
	    }
		return flag;
	}

}

springmvc-config.xml配置文件对拦截器的设置如下:

<!-- 定义spring mvc的拦截器 -->
       <mvc:interceptors>
         <mvc:interceptor>
           <!-- 拦截所有请求 -->
           <mvc:mapping path="/*"/>
           <!-- 设置拦截器不拦截js、css等文件 -->
           <mvc:exclude-mapping path="/*.css"/>
           <mvc:exclude-mapping path="/*.js"/>
           <!-- 自定义判断用户权限的拦截类 -->
           <bean class=" org.fkit.hrm.interceptor.AuthorizedInterceptor"/> 
         </mvc:interceptor>
       </mvc:interceptors>

先贴出系统的UI:
在这里插入图片描述
对于前端页面的设计我没有太多的经验,因此借鉴了网上一般人事系统常用的界面构造,整体以一个框架划分页面各组成部分。框架部分的代码如下:

<frameset rows="66,*" cols="*" frameborder="yes" border="1" framespacing="1">
  <frame class="top"src="top" name="topFrame" scrolling="no" noresize="noresize" id="topFrame" title="topFrame" />
  <frameset rows="*" cols="220,*" frameborder="yes" border="1" framespacing="1"">
    <frame src="MyHtml" name="mainFrame" id="mainFrame" scrolling="no"title="mainFrame" />
    <frame src="first" name="rightFrame" scrolling="no" noresize="noresize" id="rightFrame" title="rightFrame" />
  </frameset>

页面的顶部(即topFrame)展示系统标志,右边的头像可实现退出功能,日期图像可查看日期与时间。
在这里插入图片描述
菜单栏的框架我下载自网上,可进行上滑与下滑,我进行了细微的修改。
在这里插入图片描述
点击菜单栏上的查询与添加,在做右下角的框架部分(即rightFrame)弹出页面如下:
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/llc950819/article/details/85240535