007 登录注销功能 - bos

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了007 登录注销功能 - bos相关的知识,希望对你有一定的参考价值。


一、登录

1.准备validate.jsp页面

2.在数据库插入数据

insert into t_user(id, username, password) values(‘1‘, ‘admin‘, md5(‘admin‘));

3.调整login.jsp页面

<1>登录按钮的href改为#,并添加click事件,进行表单提交
<2>更改表单的action为Struts2中配置的地址:userAction_login.action

4.创建UserAction,提供登录方法,添加@Controller注解和@Scope注解

public String login(){

//先校验验证码是否输入正确
String validatecode = (String) session.get("key");
if(StringUtils.isNotBlank(checkcode) && checkcode.equals(validatecode)){
//正确则调用service进行登录
User user = userService.login(model);
if(user != null){
//登录成功,将user放入session,然后跳转到首页
session.put("loginUser", user);
return HOME;
}else{
//登录失败
this.addActionError("用户名或者密码输入错误");
return LOGIN;
}

}else{
//输入验证码错误。设置提示信息,
this.addActionError("输入的验证码错误");
return LOGIN;
}
}

5.创建UserService、UserDao相关,进行登录逻辑

6.在struts.xml中配置UserAction

<action name="userAction_*" class="userAction" method="{1}">
<result name="login">/login.jsp</result>
<result name="home">/index.jsp</result>
</action>

二、注销

1.在UserAction中编写logout

三、登录拦截器

1.自定义一个拦截器进行登录过滤,最好是继承MethodFiMethodFilterInterceptor,因为这个拦截器可以定义不过滤的路径

public class LoginInterceptor extends MethodFilterInterceptor{

private static final long serialVersionUID = 1L;

@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
User user = BOSUtils.getLoginUser();
if(user == null){
return "login";
}
return invocation.invoke();
}

}

2.在struts中配置登录拦截器和拦截器栈

<interceptors>
<!-- 注册拦截器 -->
<interceptor name="loginInterceptor" class="com.hao.bos.interceptor.LoginInterceptor">
<!-- 制定不拦截的方法 -->
<param name="excludeMethods">login</param>
</interceptor>
<!-- 定义拦截器栈 -->
<interceptor-stack name="myStack">
<interceptor-ref name="loginInterceptor"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>

3.配置默认拦截器栈

<default-interceptor-ref name="myStack"/>

4.配置全局结果

<global-results>
<result name="login">/login.jsp</result>
</global-results>




以上是关于007 登录注销功能 - bos的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 注册、登录和注销功能

Fb.Logout 功能不会注销用户

Flutter app:如何实现正确的注销功能?

codeigniter 中的注销功能

拦截登录/注销 ejabberd

如何向启用 OpenID 的站点添加注销功能?