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的主要内容,如果未能解决你的问题,请参考以下文章