`

Struts2day04判断用户是否登录

 
阅读更多

1.在拦截器中获得用户登录的session

 在LoginCheckInterceptor中extends AbstractInterceptor

package com.jsu.struts2.interceptor;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class LoginCheckInterceptor extends AbstractInterceptor {
	
	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		ActionContext ctx=invocation.getInvocationContext();
		String flag =(String)ctx.getContext().getSession().get("flag");
		if("ok".equals(flag)){
			System.out.println("已登录、、、");
			return invocation.invoke();
		}else{
			//提示信息,可以通过key值在页面获取
			ctx.put("err_msg",  "对不起,你还木有登录,请先登录");
			return "error";
		}
	}

}

 2.在LoginAction中

package com.jsu.struts2.action;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

	@Override
	public String execute() throws Exception {
		ActionContext.getContext().getSession().put("flag", "ok");
		System.out.println("OK");
		System.out.println(" Action Execute...");
		return SUCCESS;
	}
}

 3.在OrderAction中extends ActionSupport

package com.jsu.struts2.action;

import com.opensymphony.xwork2.ActionSupport;

public class OrderAction extends ActionSupport{
	@Override
	public String execute(){
		System.out.println("开始下订单、、、");
		return SUCCESS;
	}
}

 4.在error.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> </head>
  <body>
    Error ${err_msg} <br>
  </body>
</html>

 5.在struts.xml文件中配置

<struts>
  <package name="loginDemo" namespace="/" extends="struts-default">
    <interceptors>
	<interceptor name="myint1" class="com.jsu.struts2.interceptor.LoginCheckInterceptor">                       </interceptor>
    <action name="login" class="com.jsu.struts2.action.LoginAction">
	<interceptor-ref name="defaultStack"></interceptor-ref>
	<result>/index.jsp</result>
    </action>
    <action name="order" class="com.jsu.struts2.action.OrderAction">
	<interceptor-ref name="myint1"></interceptor-ref>
	       <result name="success">/index.jsp</result>
		<result name="error">/error.jsp</result>
    </action>
  </package>
</struts>

 6.在地址栏发请求

    1.http://localhost:8080/struts2_04/order error.jsp页面输出:你还没有登录,请先登录

    2.先输入http://localhost:8080/struts2_04/login 控制台输出登录成功

      在输入http://localhost:8080/struts2_04/order 控制台输出开始下订单、、、

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics