在学习SpringMVC的时候,也就是应用这样连接的时候
http://c.biancheng.net/view/4412.html
发现在权限判断中总是出现并没有相关的权限判断标志,所示就对程序进行了整体分析,
首先程序包括如下的两部分
第一部分:
package controller;
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
@Controller
public class BaseController {
private static final Log logger = LogFactory.getLog(BaseController.class);
@ModelAttribute
public void isLogin(HttpSession session) throws Exception {
if (session.getAttribute("user") == null) {
logger.info("成功");
throw new Exception("没有权限");
}
}
}
这是一个基类,提供了如果是user是空的话,就允许通过,表示是一个基本用户,没有相关的登录权限;如果不是user,那么就可以登录进行相关的操作,登录成功,不会报错。
被继承的类为:
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/user")
public class ModelAttributeController{
@RequestMapping("/add")
public String add() {
return "index";
}
@RequestMapping("/update")
public String update() {
return "updateSuccess";
}
@RequestMapping("/delete")
public String delete() {
return "deleteSuccess";
}
}
结果可以发现,没有继承以上的类,导致程序运行出现错误,这也是非常细节的问题,大家要引起注意。
争确的代码如下:
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/user")
public class ModelAttributeController extends BaseController {
@RequestMapping("/add")
public String add() {
return "index";
}
@RequestMapping("/update")
public String update() {
return "updateSuccess";
}
@RequestMapping("/delete")
public String delete() {
return "deleteSuccess";
}
}