需要做个登陆和权限,考虑用struts2的拦截器和包属性来实现。
建立一个public的package,容纳公用的可以开放访问的所有action,返回的jsp页面也放在默认的webroot目录下,可无验证访问。
需要权限控制的定义在一个authority的package
interceptor name="author" 定义一个拦截器负责对session中的值进行判断来完成登陆的检验,当不是合法用户时跳转到login.jsp(webroot目录下可公共访问)。 并设置为此package目录的默认拦截器。拦截器需要实现 Interceptor接口或者abstractinterceptor抽象内。
主要是重写interceptor方法
struts.xml中配置的adminaction 并且设置该action
返回<result name="success">/WEB-INF/web/admin/index.jsp</result>
此处用web-inf是需要把需要权限控制的页面放到webroot/web-inf 防止用户直接在浏览器输入jsp文件URL访问页面。从而达到控制jsp页面登陆的效果。
小弟刚学struts2 都是简单的东西 新手共勉 大侠赐教 喷子滚蛋。
建立一个public的package,容纳公用的可以开放访问的所有action,返回的jsp页面也放在默认的webroot目录下,可无验证访问。
<!-- 公共页面包-->
<package name="public" extends="struts-default">
<action name="index" class="i.tommy.test.action.indexAction">
<result name="success">/index.jsp</result>
</action>
</package>
需要权限控制的定义在一个authority的package
<!-- 需要权限访问包 -->
<package name="tommy" extends="struts-default">
<interceptors>
<interceptor name="author" class="i.tommy.test.interceptor.userLoginInter"/>
</interceptors>
<default-interceptor-ref name="author" />
<global-results>
<result name="login">/login.jsp</result>
</global-results>
<action name="admin" class="i.tommy.test.action.adminAction">
<result name="success">/WEB-INF/web/admin/index.jsp</result>
</action>
</package>
interceptor name="author" 定义一个拦截器负责对session中的值进行判断来完成登陆的检验,当不是合法用户时跳转到login.jsp(webroot目录下可公共访问)。 并设置为此package目录的默认拦截器。拦截器需要实现 Interceptor接口或者abstractinterceptor抽象内。
主要是重写interceptor方法
public String intercept(ActionInvocation invocation) throws Exception
{
System.out.println("----权限拦截器拦截开始---");
ActionContext ctx = invocation.getInvocationContext();
Map session = ctx.getSession();
session.put("user", "admin");/模拟登陆状态
String user = (String) session.get("user");
if (user != null && user.equals("admin"))
{
System.out.println("----Welcome "+user+"--");
return invocation.invoke();
}
ctx.put("tip", "对不起,您没有登录。");
System.out.println("----权限拦截器拦截结束---");
return "login";
}
struts.xml中配置的adminaction 并且设置该action
返回<result name="success">/WEB-INF/web/admin/index.jsp</result>
此处用web-inf是需要把需要权限控制的页面放到webroot/web-inf 防止用户直接在浏览器输入jsp文件URL访问页面。从而达到控制jsp页面登陆的效果。
小弟刚学struts2 都是简单的东西 新手共勉 大侠赐教 喷子滚蛋。