`
glagra
  • 浏览: 4831 次
  • 性别: Icon_minigender_1
  • 来自: 吉安
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

struts2.0中拦截jsp页面的探讨!

阅读更多
在struts2.0中提供了拦截的使用。假如现在有一些jsp页面(包括login.jsp,register.jsp,welcome.jsp以及一些浏览的页面)这些浏览的页面如果是没有登录的用户浏览,则直接显示,如果登录了则还在相应处要显示用户的相关信息,这个怎么可以实现?我用Filter中的doFilter方法只能拦截某些文件下的页面(也就是只有登录用户才能访问的)如果既可以被登录用户访问,也可以被未登录用户访问,该怎么实现??哪位大哥能帮我解决下这个问题??
分享到:
评论
3 楼 yunhaifeiwu 2008-11-09  
glagra 写道
在struts2.0中提供了拦截的使用。假如现在有一些jsp页面(包括login.jsp,register.jsp,welcome.jsp以及一些浏览的页面)这些浏览的页面如果是没有登录的用户浏览,则直接显示,如果登录了则还在相应处要显示用户的相关信息,这个怎么可以实现?我用Filter中的doFilter方法只能拦截某些文件下的页面(也就是只有登录用户才能访问的)如果既可以被登录用户访问,也可以被未登录用户访问,该怎么实现??哪位大哥能帮我解决下这个问题??


太简单了!使用spring security用户权限认证框架吧!

这种拦截,小菜一碟!

在这种方式下:除了struts2的action,其他统统封掉.用户登陆口也只准有一个.

一切烦心事都没了!

spring securty,与你的业务代码耦合相当的小,除了网址与人的用户表外,再也没其他耦合的了.而网址与用户表,也是通过数据库(如果你用在内存中使用,我也没办法)进行耦合的.
2 楼 toeo 2008-11-08  
<pre name='code' class='java'>import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.javasystem.JavaSystemConstants;
import com.javasystem.action.TuserCRUDAction;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class LoginInterceptor extends AbstractInterceptor {

private static final long serialVersionUID = 8760120133840824493L;
public static final String LOGIN_KEY = "LOGIN";
// find &lt;result name="global.login"
// type="redirect"&gt;sysLogout.action&lt;/result&gt; is the forward action .
public static final String LOGIN_PAGE = "global.login";

@Override
public String intercept(ActionInvocation actionInvocation) throws Exception {
System.out.println("begin check login interceptor!");
// don't check user login action itself .
Object action = actionInvocation.getAction();
if (action instanceof TuserCRUDAction) {
System.out
.println("exit check login, because this is login action.");
return actionInvocation.invoke();
}
// check user login session .
ActionContext ctx = ActionContext.getContext();
HttpServletRequest request = (HttpServletRequest) ctx
.get(ServletActionContext.HTTP_REQUEST);
Object userSession = request.getSession().getAttribute(
JavaSystemConstants.USER_LOGIN_SESSION_NAME);
// get session use session name .
if (userSession != null) {
// 
System.out.println("already login!");
return actionInvocation.invoke();
} else {
// 
System.out.println("no login, forward login page!");
return LOGIN_PAGE;

}

}

}</pre>
<p> 这个地方可以获得的到request了就可以得到一个url。。</p>
<p> </p>
<pre name='code' class='xml'>&lt;package name="javasys" extends="struts-default"&gt;
&lt;interceptors&gt;
&lt;interceptor-stack name="authenticationStack"&gt;
&lt;interceptor-ref name="fileUpload"&gt;
&lt;param name="maximumSize"&gt;1024000000&lt;/param&gt;
&lt;/interceptor-ref&gt;
&lt;interceptor-ref name="basicStack" /&gt;
&lt;/interceptor-stack&gt;
&lt;interceptor name="login"
class="com.javasystem.core.interceptor.LoginInterceptor" /&gt;
&lt;interceptor-stack name="teamwareStack"&gt;
&lt;interceptor-ref name="i18n" /&gt;
&lt;interceptor-ref name="login" /&gt;
&lt;interceptor-ref name="basicStack" /&gt;
&lt;/interceptor-stack&gt;
&lt;/interceptors&gt;
..........</pre>
<p> 在下面配置下默认的拦截器就好了。</p>
1 楼 toeo 2008-11-08  
struts2是用的filter。。你自己写一个拦截器。。去解析url不就可以了么???

相关推荐

    Struts2.0视频教程+struts2.0中文教程

    Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0视频教程+struts2.0中文教程"包含的资源旨在...

    Struts2.0的api

    让我们深入探讨Struts2.0 API的核心概念、关键组件以及它们在实际开发中的应用。 首先,`Struts2.0中文教程.chm`可能包含对框架的详细解释,包括Action、Result、Interceptor等核心概念。Action是Struts2的核心,它...

    Struts2.0中文教程

    6. **OGNL(Object-Graph Navigation Language)**:介绍Struts2.0中使用的表达式语言OGNL,用于数据绑定、属性访问和方法调用,以及在JSP页面中的使用。 7. **国际化与异常处理**:讲解如何实现多语言支持,以及...

    struts2.0中文教程

    4. **ValueStack**:值栈是Struts2.0中的数据存储和传递机制,它将请求参数、Action属性、以及页面显示的数据集中在一起,方便在不同组件间共享。 5. **Ognl(Object-Graph Navigation Language)**:OGNL是Struts...

    Struts 2.0全攻略之Struts 2.0参考手册

    本指南将深入探讨Struts 2.0的核心概念、设计模式、配置以及实际应用中的最佳实践。下面,我们将详细讲解Struts 2.0的关键知识点。 1. **Struts 2.0架构** Struts 2.0基于Model-View-Controller(MVC)设计模式,...

    Struts 2.0中文教程

    10. **模板引擎**:探讨Struts 2.0对FreeMarker和JSP等模板引擎的支持,以及它们在实际开发中的应用。 11. **异常处理**:理解Struts 2.0的全局异常处理机制,如何捕获和处理程序中的异常。 12. **最佳实践**:...

    Struts2.0学习系列 包括webwork

    通过学习这个系列,你可以掌握如何创建Struts2.0的项目结构,编写Action类,配置Action和Result,使用Interceptor实现业务逻辑的增强,以及如何在JSP页面中利用Ognl表达式展示数据。此外,还将了解如何结合其他Java ...

    Struts2.0培训笔记

    本培训笔记将深入探讨Struts2.0的核心概念、特性以及如何在实际项目中有效应用。 一、Struts2.0框架基础 Struts2.0是Apache软件基金会的项目,它是Struts1.x的升级版,提供了更强大的功能和更好的性能。该框架通过...

    struts2.0中文帮助手册

    在Struts2.0中,有几个核心概念和技术值得我们深入探讨: 1. **Action类**:Action类是处理用户请求的核心组件,它接收请求,进行业务逻辑处理,并通过Result返回响应。开发者需要创建自定义的Action类,继承自`...

    Struts2.0框架书籍

    本书《Struts2.0框架书籍》显然是一本深入探讨这一框架的专业教程,旨在帮助开发者理解和掌握Struts2.0的核心概念、使用方法以及最佳实践。 在Struts2.0中,核心概念包括Action、Result、Interceptor(拦截器)等。...

    Struts2.0做的登陆

    "这个主题中,我们将探讨Struts2.0的基础知识,包括它的架构、配置以及如何实现一个简单的登录功能。 **Struts2.0架构** Struts2.0的核心是Action类,它是业务逻辑的入口点。当用户发送请求时,Struts2.0的Front ...

    struts2.0开发实例

    在这个“struts2.0开发实例”中,我们将深入探讨Struts2.0的核心概念、配置以及实际应用。 首先,Struts2.0的核心架构基于Action和Result,Action是业务逻辑的载体,而Result则负责展示结果。每个Action对应一个或...

    struts2.0标签使用源码

    Struts2.0标签库是基于OGNL(Object-Graph Navigation Language)表达式的,它提供了丰富的标签,如`s:property`、`s:textfield`、`s:form`等,这些标签用于在JSP页面中动态地展示和操作数据,与Action类中的属性进行...

    struts2.0 pdf书

    根据提供的信息,我们可以深入探讨Struts 2.0框架及其在构建MVC架构Web应用程序中的应用方式。以下是对Struts框架的重要概念和技术细节的详细解释: ### Struts 2.0 概述 Struts 2.0 是一个用于开发Java Web应用...

    Struts2.0+dwr的分页

    在"Struts2.0+dwr的分页"这个主题中,我们主要探讨的是如何在Struts2.0的应用中集成DWR,实现数据的动态分页展示。分页是一种常见的网页功能,它帮助用户更好地管理和浏览大量数据,避免一次性加载过多内容导致页面...

Global site tag (gtag.js) - Google Analytics