`

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 控制台输出开始下订单、、、

 

分享到:
评论

相关推荐

    达内培训机密资料_struts2_day02(2)

    - **OGNL演示01**:介绍如何在Struts2中使用OGNL来访问对象的属性,如获取用户信息中的姓名、年龄等。 - **OGNL演示02**:进一步讲解OGNL表达式的复杂用法,如使用OGNL进行条件判断、循环迭代等高级操作。 - **...

    简单易懂Struts核心讲解

    在提供的压缩包文件中,"struts_day_01.pdf"可能涵盖了Struts的基本概念和安装配置,"struts_day_02[3].pdf"可能涉及了标签库的使用,"struts_day_05.pdf"可能讲解了验证框架的详细操作,而"struts_day_06.pdf"可能...

    ognl(关于标签strusts2)

    此外,OGNL还用于条件判断和循环结构,如`&lt;s:if test="%{user.isAdmin}"&gt;`检查用户是否为管理员。 Struts2的安全性与OGNL紧密相关。由于OGNL的强大功能,如果不正确或不安全地使用,可能会导致严重的安全问题,例如...

    day17过滤器 禁止缓存中文乱码自动登录MD5加密url级别权限控制

    在Spring Security或者Struts2等框架中,我们可以配置访问控制规则,限制不同用户可以访问的页面或服务。 7. **源码**: 标签中提到的“源码”可能指的是提供的`EncodingFilter.java`文件,这是一个Java源代码文件...

    自己总结的ssh相关的知识

    SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架,它将MVC(Model-View-Controller)模式应用于实际项目,实现了业务逻辑、数据访问和用户界面的分离,提升了开发效率和代码的可维护性。...

    SSH+JBPM4实现请假流程

    `start1`是流程的起始节点,`exclusive1`是一个决策节点,根据表达式`#{job}`(可能是判断用户职务)来决定流程走向,即`isChief`或`isnotChief`,分别对应“主管审批”和“非主管审批”。 `boosApprove`和`...

    整理后java开发全套达内学习笔记(含练习)

    instanceof (关键字) 运算符,用于引用变量,以检查这个对象是否是某种类型。返回 boolean 值。 interface (关键字) 接口 ['intәfeis] invoke vt.调用 [in'vәuk]' ( invocation [,invәu'keiʃәn]) Iterator ...

    JAVA程序员笔试题

    - **判断是否为当月最后一天**:使用`LocalDate`和`MonthDay`。 ```java LocalDate date = LocalDate.now(); MonthDay monthDay = MonthDay.of(date.getYear(), date.getMonth()); boolean isLastDayOfMonth = ...

    freemarker总结

    =:判断两个值是否不等. 3. &gt;或者gt:判断左边值是否大于右边值 4. &gt;=或者gte:判断左边值是否大于等于右边值 5. &lt;或者lt:判断左边值是否小于右边值 6. 或者lte:判断左边值是否小于等于右边值 注意:=和!=可以用于...

    java面试题

    - `File.isDirectory()`判断是否为目录。 - `Files.exists()`检查文件或目录是否存在。 - `BufferedReader/BufferedWriter`用于文件读写。 7. **多态** - 多态性是Java面向对象的重要特性,通过继承、重载和...

    JAVA笔试题,面试题(吐血推荐)

    - 获取当月最后一天:使用`java.time.MonthDay`类的`ofYearMonth`方法配合`Month`枚举。 - 格式化日期:推荐使用`java.time.format.DateTimeFormatter`类。 5. **数组和集合**:Java提供了多种集合框架类,如`...

    Java 面试宝典

    - 判断某日期是否为当月最后一天:使用`java.time.LocalDate`类的`isEqual()`方法结合`MonthDay`。 - 格式化日期:使用`SimpleDateFormat`或`DateTimeFormatter`。 5. **数组和集合** - 数组:固定大小的数据...

Global site tag (gtag.js) - Google Analytics