首先在index.jsp页面登录:
<form action="
itcsss" method="post">
<input type="text" name="username" />
<br>
<input type="password" name="password"/>
<br>
<input type="submit" value="login"/>
</form>
然后是action中方法(HelloWorldAction):
public String execute()
{
System.out.println("****************");
message = "这是我的第一个jsp页面!";
if(username.length()>0)
{
//此处可以通过查询数据库来判断用户是否可以登录
System.out.println("username isd:"+username);
HttpSession session = ServletActionContext.getRequest().getSession();
session.setAttribute("loginuser", username);
return "success";
}
else
{
return "error";
}
}
保存登录信息。
配置文件:struts.xml
<struts>
<!-- 用户登录的action -->
<package name="strut-login" extends="struts-default">
<global-results>
<result name="error">/index.jsp</result>
</global-results>
<action name="itcsss" class="cn.itcast.action.HelloWorldAction">
<result name="success">/WEB-INF/page/hello.jsp</result>
</action>
</package>
<!-- 使用拦截器拦截非法登录的用户 -->
<package name="struts2" extends="struts-default" >
<interceptors>
<interceptor class="cn.itcast.indeptor.AuthorityInterceptor" name="authority"/>
<interceptor-stack name="mydefault">
<!--配置默认的拦截器 -->
<interceptor-ref name="defaultStack"/>
<!--配置自定义的拦截器-->
<interceptor-ref name="authority" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="mydefault" /><!-- 全局拦截 -->
<global-results>
<result name="error">/index.jsp</result>
</global-results>
<action name="go" class="cn.itcast.action.HelloWorldAction" method="go">
<!-- interceptor-ref name="mydefault">
<param name="excludeMethods">go</param>
</interceptor-ref-->
<result name="success">/WEB-INF/page/MyJsp.jsp</result>
</action>
</package>
</struts>
拦截该方法:
public String go()
{
return "success";
}
判断session里时候有用户的登录信息,如果没有就跳转到登录页面。拦截器的实现:
package cn.itcast.indeptor;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class AuthorityInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
ActionContext ctx = invocation.getInvocationContext();
Map<String,Object> session = ctx.getSession();
String username = (String)session.get("loginuser");//获取用户登录的信息,从session中获取
if(username==""||username==null)
return "error";//跳转到登录页面
//如果session中有登录的信息,就继续执行action中的方法
return invocation.invoke(); //如果有权限就执行Action
}
}
分享到:
相关推荐
本文将深入探讨如何使用Struts2结合session来实现用户登录检查。 首先,我们需要理解session的概念。在Web开发中,session是一种服务器端存储用户状态的方式。当用户登录后,服务器会为该用户创建一个session,并将...
这个登录验证程序是一个基础的示例,展示了如何结合Struts2和Hibernate实现用户登录功能。在实际项目中,还需要考虑更多的功能和安全问题,比如会话管理、异常处理、用户权限控制等。理解并掌握这些知识点,将有助于...
在这个“Struts2登录验证实例”中,我们将探讨如何利用Struts2实现用户登录功能,包括用户输入验证、会话管理以及错误处理等关键环节。 首先,我们需要在项目中引入Struts2的核心库。这通常通过在`pom.xml`(如果...
本资源"struts2_session_权限检查并控制重复登录源码"提供了一个具体的实现方案,下面我们将深入探讨相关的知识点。 1. **Struts2框架**:Struts2是Apache软件基金会下的一个开源项目,它基于MVC设计模式,提供了...
在Struts2中实现登录验证,我们需要以下几个关键组件和步骤: 1. **Action类**:这是处理用户请求的核心,通常包含一个表示登录行为的方法,如`login()`。在这个方法中,我们需要获取并验证用户的用户名和密码。 2...
下面我们将详细探讨Struts2实现登陆验证的关键知识点: 1. **MVC设计模式**:Struts2基于Model-View-Controller(MVC)设计模式,将业务逻辑、数据和用户界面分离,提高代码的可维护性和可重用性。 2. **Action类*...
在这个“struts2 登陆注册 以及验证”的主题中,我们将探讨如何使用Struts2实现用户登录注册系统,并集成验证机制。 首先,让我们了解Struts2的核心概念。Action是Struts2的核心,它是处理用户请求的类,负责业务...
或自定义Action父类,实现登录逻辑。通常,Action类包含两个主要方法:`execute()`方法负责处理请求,`input()`方法处理验证失败的情况。 3. **编写Action类的逻辑**:在`execute()`方法内,接收用户提交的用户名和...
这种方式常用于实现如登录验证、日志记录等功能。 了解了这些基本方法后,我们可以通过阅读Struts2的源码来深入理解其工作原理。例如,研究`ActionSupport`类如何与ActionContext交互,或者查看`ValueStack`如何...
简单登录验证”旨在介绍如何利用Struts2框架实现一个基本的用户登录验证功能,这是Web应用中的常见需求。 在Struts2中,我们首先需要配置`struts.xml`文件,它是整个应用的核心配置文件,定义了动作映射、拦截器和...
Struts2提供了一种机制,即tokenSession,来解决这个问题。 首先,我们要理解什么是重复提交。在Web环境中,由于网络延迟或用户误操作,可能会导致同一个表单数据被多次提交,这就是重复提交。这种现象可能导致数据...
在Struts2框架中,拦截器(Interceptor)是实现业务逻辑和控制流程分离的重要工具,它允许开发者在执行Action之前或之后执行某些操作,比如验证用户登录状态。在这个案例中,我们讨论的是如何使用拦截器来检查用户的...
### Struts2拦截器实现用户登录权限的验证 在Web应用开发中,用户登录权限验证是确保系统安全的重要环节之一。Struts2框架提供了一种灵活的方式来实现这一功能:通过自定义拦截器来控制用户的访问权限。下面我们将...
这些代码可以帮助你理解如何设置拦截器,如何配置验证规则,以及如何在实际应用中实现登录验证。通过研究这些例子,你可以深入理解Struts2的拦截器机制,并将其应用于实际项目中,提高应用的安全性和用户体验。 ...
学习这个压缩包中的内容,初学者不仅可以了解Struts2的基本架构和生命周期,还能掌握如何在实际项目中运用Struts2实现业务逻辑,以及如何通过JDBC进行数据库操作。同时,实践过程中可能会涉及异常处理、国际化、模板...
这篇博客“struts2 拦截器实现登录控制”显然会探讨如何利用拦截器来实现用户登录验证,从而保护应用程序的受保护资源。 首先,我们了解下Struts2拦截器的工作原理。拦截器是基于AOP(面向切面编程)的概念,它位于...
在这个“Struts2实现增删改查和登录校验”的项目中,我们将探讨如何使用Struts2框架来构建一个基础的Web应用,涵盖数据操作和用户验证的关键功能。 首先,了解Struts2的基本架构至关重要。Struts2的核心是Action类...
综上所述,"struts2+hibernate实现登录及增删改操作"涉及到的是如何利用这两个框架构建一个完整的Java Web应用,包括用户身份验证、数据库操作以及对数据的增删改等核心功能。这个小案例可以帮助开发者理解并熟练...
Struts2验证码用户登录是一个常见的...总的来说,Struts2验证码用户登录的实现涉及了后端验证码生成、session存储、前端JavaScript交互以及Struts2的MVC架构。理解并掌握这一过程,对于开发安全的Web应用程序至关重要。
4. 在Struts2的Action类中,定义登录方法,该方法使用Spring注入的SessionFactory创建Session,然后执行查询。 5. 使用Hibernate的Query或Criteria API来查找匹配的用户记录。 6. 验证用户名和密码,如果正确,使用...