`
段海波
  • 浏览: 315716 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2拦截器实现用户登录管理

    博客分类:
  • j2ee
阅读更多

struts2拦截器实现用户登录管理

ManagerInterceptor.java

 

package dsh.bikegis.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;

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

import dsh.bikegis.action.ManagerLoginAction;

/**
 * 管理員登錄控制的攔截器
 * @author NanGuoCan
 *
 */
public class ManagerInterceptor extends AbstractInterceptor {
	private static final long serialVersionUID = 5722672508679011124L;

	public String intercept(ActionInvocation invocation) throws Exception {
		HttpServletRequest request = ServletActionContext.getRequest();
		HttpSession session = request.getSession(true);
		String username = (String) session.getAttribute("userName");
		ActionSupport action = (ActionSupport) invocation.getAction();
		
		if (action instanceof ManagerLoginAction)
			return invocation.invoke();

		if (username != null && !username.equals(""))
			return invocation.invoke();
		else {
			return "login";
		}

	}
}

 

 ManagerLoginActionImpl.java

package dsh.bikegis.action.impl;

import com.opensymphony.xwork2.ActionSupport;

import dsh.bikegis.action.ManagerLoginAction;
import dsh.bikegis.model.User;
import dsh.bikegis.service.ManagerLoginService;
import dsh.bikegis.system.SysAction;

public class ManagerLoginActionImpl extends SysAction implements ManagerLoginAction {

	/**
	 * 管理員登錄Action的實現部分
	 */
	private static final long serialVersionUID = 1L;
	private User user;
	private ManagerLoginService loginService;
	private String errMesg;
	/**
	 * 管理員登錄
	 */
	@Override
	public String login() {
		if(!(this.validateLogin()))
			return ActionSupport.ERROR;
		try {
			if (this.loginService.login(user)) {// 登錄成功
				request.getSession().setAttribute("userName",
						user.getUsername());
				request.getSession().setAttribute("id", user.getId());
				if (user.getUsername().equals("manager")) {
					request.getSession().setAttribute("ROLE", "manager");
				}
				return SUCCESS;
			} else {
				this.errMesg = "帳號或密码错误";
				return ERROR;
			}

		} catch (Exception e) {
			e.printStackTrace();
			this.errMesg = "帳號或密码错误";
			return ERROR;
		}
	}
	/**
	 * 管理员登录 验证
	 * @return
	 * 驗證成功返回true,否則返回false
	 */
	@Override
	public boolean validateLogin() {
		if (user == null) {
			this.errMesg ="未能取得用戶信息";
			return false;
		}
		if (user.getUsername() == null || user.getUsername().equals("")) {
			this.errMesg = "帳號不能為空";
			return false;
		}
		if (user.getUserpsw() == null || user.getUserpsw().equals("")) {
			this.errMesg = "密碼不能為空";
			return false;
		}
		return true;
	}

	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public ManagerLoginService getLoginService() {
		return loginService;
	}
	public void setLoginService(ManagerLoginService loginService) {
		this.loginService = loginService;
	}
	public String getErrMesg() {
		return errMesg;
	}
	public void setErrMesg(String errMesg) {
		this.errMesg = errMesg;
	}
	

}

 struts.xml

<!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<!-- 用戶操作類的Action -->
	<package name="adminmanage" namespace="/manage" extends="bikeGIS">
		<interceptors>
			<!-- 是否登录 -->
			<interceptor name="adminLogin"
				class="dsh.bikegis.interceptor.ManagerInterceptor"></interceptor>
			<interceptor-stack name="adminmanageStack">
				<interceptor-ref name="bikeGISstack"></interceptor-ref>
				<interceptor-ref name="adminLogin"></interceptor-ref>
			</interceptor-stack>
		</interceptors>
		<default-interceptor-ref name="adminmanageStack"></default-interceptor-ref>

		<global-results>
			<!-- 重新登錄 -->
			<result name="login" type="redirectAction">
				<param name="actionName">index</param>
				<param name="namespace">/manage</param>
			</result>
		</global-results>

		<action name="index" class="loginAction">
			<result>/manage/index.jsp</result>
		</action>

		<!-- 用戶登錄 -->
		<action name="loginAction" class="loginAction" method="login">
			<result type="redirect">/manage/frame.action</result>
			<result name="error">/manage/index.jsp</result>
			<result name="input">/manage/index.jsp</result>
		</action>


		<!-- 用戶退出 -->
		<action name="loginOut" class="userAction" method="loginOut">
			<result name="success">/manage/index.jsp</result>
		</action>

		<!-- 修改密碼 -->
		<action name="modifyPswAction" class="userAction" method="modifyUserPsw">
			<result name="success" type="redirect" >/manage/main.action</result>
			<result name="error" >/manage/user/modifypsw.jsp</result>
		</action>

	</package>

</struts>
 
分享到:
评论
1 楼 di1984HIT 2015-09-10  
学习了,嘿嘿。。

相关推荐

    图书管理系统-struts2

    (1) 图书管理系统可以按照用户权限和实现功能的不同分为两部分:外部学生对数据库的查阅访问和内部管理人员对图书记录的管理维护。 (2) 用户注册,需要通过Struts2字段校验判断用户注册页面中的用户名、密码、年龄...

    Struts2 in action中文版

    4.3 研究内建的Struts 2拦截器 67 4.3.1 工具拦截器 67 4.3.2 数据转移拦截器 67 4.3.3 工作流拦截器 69 4.3.4 其他拦截器 72 4.3.5 内建的拦截器栈 73 4.4 声明拦截器 74 4.4.1 声明独立的拦截器和拦截器栈 74 ...

    BBS-struts2课程设计-南工考研论坛

    2.游客可以浏览帖子,注册为用户才可回复和发帖(自定义拦截器实现) 3.管理员管理后台,帖子信息,回复信息和用户信息 特色功能: (1) BBS是网络中的电子公告版,在论坛中大家可以发布信息,进行讨论,聊天等。 (2...

    深入浅出Struts2(附源码)

    本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,...

    java Struts2+hibernate+Spring整合的通讯录

    (5) 使用token拦截器,阻止用户注册页面的重复提交。 (6) 用户登陆成功之后,能够修改自己的密码,要求修改密码的时候,新旧密码在一个文本框输入(用,分割),通过使用自定义类型转换完成新旧密码的拆分工作。

    bbs论坛系统 struts2 spring hibernate

    使用了struts2上传下载,语言国际化,拦截器,校验框架等。实现功能:用户模块 用户注册 用户登陆修改用户信息 用户等级.管理人员模块,用户删除 用户授权,取消权限。版面模块,添加版面,删除版面。类别模块,添加...

    struts2权限管理

    以拦截器的方式实现系统用户权限的管理,又清清楚楚的源码

    S2SH项目整体系统架构

    2、拦截器实现用户权限检查功能 3、拦截器自动生成日志 4、未登录非法访问页面检测 5、三种方式日志的生成 6、页面访问计数 7、选中页面对应的帮助页面实现 8、根据页面编号或名称跳转页面 9、数据库连接池 ...

    低清版 大型门户网站是这样炼成的.pdf

    2.6.1 struts 2内建拦截器介绍 95 2.6.2 定义和使用拦截器栈 97 2.6.3 使用自定义拦截器 98 2.7 小结 100 第3章 struts 2标签库详解与ajax技术应用 103 3.1 struts 2主题与模板 103 3.2 struts 2控制标签详解 ...

    学生信息管理系统 JSP课程设计(内含完整源码和设计说明手册)

    学生成绩管理系统JSP课程设计 可实现学生和老师两个端的登录;...教师个人信息修改、密码修改、成绩录入与...3、数据验证:HTML5的原生验证模式、Struts2的Validation验证框架以及Interceptor拦截器、JavaEE的Filter过滤器

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...

    前后台管理系统模板源代码 java语言 ssh开发框架 Spring+Struts+Hibernate

    又实现了权限拦截器、项目监听器、单元测试等功能。 页面简洁大气美观,系统耦合度小,可配置度高,几乎包含了全部常用功能,是很好的学习和使用框架,可直接部署测试。 项目访问路径:...

    s2sh + extjs4 办公平台架构

    3、系统利用struts2 拦截器 判断用户是否登录哦 4、使用p6spy 打印出hibernate 中已经替换了占位符参数的sql语句,为hibernate的调试不在感到苦恼 系统部署我使用的ant 部署,代码包含ant部署文件 skyline\...

    JAVA WEB典型模块与项目实战大全

    17.6 商业银行网上账户管理系统具体实现——工具类、校验器及拦截器  17.7小结  第18章 hibernate分页系统(hibernate 3.0)  18.1 hibernate分页系统原理  18.2 封装javabean的commons-beanutils组件  18.3...

    SSH个人信息管理系统.zip

    前端使用Bootstrap,后端采用Struts2+Spring3+Hibernate4集成框架,数据库使用MySQL数据库搭建的个人信息管理系统。 功能模块: 个人用户的登录及注册,登录成功后对个人信息的修改以及头像的更换。(其中使用了...

    达内Java培训项目(当当网/通用电子商务系统)

    使用拦截器机制来限制未登录用户对购买、结算等Action的访问,保证了系统的健壮性。 对分页进行了组建化封装,提高了系统的通用性。 层与层之间采用接口连接,面向接口编程使得系统结构良好。 经验总结: 通过该...

    毕业论文-办公自动化系统的设计和实现

    随着计算机网络通信技术的发展,资源...利用拦截器和过滤器实现“用户、角色、权限”三维管控,使系统更加具有层次化和结构化。 本系统具有易用性、健壮性、严密性和实用性等特点,将现代化办公和计算机技术有机结合。

    Java Web程序设计教程

    6.5.2struts2文件上传实现方式 136 6.5.3struts2文件下载实现方式 141 本章小结 143 课后练习 144 第7章 struts2中应用模板语言 145 7.1模板语言简介 145 7.2应用velocity 146 7.2.1velocity基础 146 7.2.2...

Global site tag (gtag.js) - Google Analytics