系统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)弹出页面如下: