SSM博客系统(博主后台登录)

博主后台登录login. jsp界面

/*** 验证用户名和密码不能为空*/
function checkForm(){var userName=$("#userName").val();var password=$("#password").val();if(userName==null||userName==""){$("#error").html("用户名不能为空")return false;}if(password==null||password==""){$("#error").html("密码不能为空")return false;}return true;
}

后台返回错误的原因文字${errorInfo}

BloggerMapper.xml


DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<mapper namespace="com.blog.dao.BloggerDao">

<resultMap type="Blogger" id="BloggerResult"><result property="id" column="id"/><result property="userName" column="userName"/><result property="password" column="password"/><result property="nickName" column="nickName"/><result property="sign" column="sign"/><result property="profile" column="profile"/><result property="imageName" column="imageName"/>
resultMap>

<select id="getByUserName" parameterType="String" resultMap="BloggerResult">select * from t_blogger where userName=#{userName}
select>
mapper>
属性描述
id在命名空间中唯一的标识符,可以被引用
parameterType将会传入这条语句的参数类的完全限定名或别名。这个属性是可选的,因为 MyBatis 可以通过 TypeHandler 推断出具体传入语句的参数,默认值为 unset。
resultType从这条语句中返回的期望类型的类的完全限定名或别名。注意如果是集合情形,那应该是集合可以包含的类型,而不能是集合本身。使用 resultType 或 resultMap,但不能同时使用。
resultMap外部 resultMap 的命名引用。结果集的映射是 MyBatis 最强大的特性,对其有一个很好的理解的话,许多复杂映射的情形都能迎刃而解。使用 resultMap 或 resultType,但不能同时使用。

BloggerDao

public interface BloggerDao {/**通过用户名查找在mappers里面编写*/public Blogger getByUsername(@Param("userName")String userName);
}

Service里面的BloggerService

public interface BloggerService {public Blogger getByUserName(String userName);
}

Service impl里面的BloggerServiceImpl

@Service("bloggerService")
public class BloggerServiceImpl implements BloggerService{@Resourceprivate BloggerDao bloggerDao;public Blogger getByUsername(String userName) {// TODO Auto-generated method stubreturn bloggerDao.getByUserName(userName);}
}
public class MyRealm extends AuthorizingRealm{@Resourceprivate BloggerService bloggerService;/*** 获取授权信息*/@Overrideprotected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {// TODO Auto-generated method stubreturn null;}/*** 登陆验证* token:令牌,基于用户名密码的令牌*/@Overrideprotected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {//从令牌中取出用户名String userName = (String)token.getPrincipal();//让Shiro去验证账号密码Blogger blogger = bloggerService.getByUserName(userName);if(blogger!=null) {//把当前用户存储到session中让其他地方可以直接取到blogger信息SecurityUtils.getSubject().getSession().setAttribute("currentUser", blogger);AuthenticationInfo authenInfo = new SimpleAuthenticationInfo(blogger.getUserName(), blogger.getPassword(),getName());return authenInfo;}return null;}}

博主后台登录BloggerController

/*** 后台登录*/
@Controller
@RequestMapping("/blogger")
public class BloggerController {@RequestMapping("/login")public String login(Blogger blogger,HttpServletRequest request) {String userName=blogger.getUserName();String password=blogger.getPassword();//这里传进来的密码之前加密过,所以要比较加密后的数据String pw=CryptographyUtil.md5(password, "loveyourself");/** Subject*/Subject subject = SecurityUtils.getSubject();UsernamePasswordToken token=new UsernamePasswordToken(userName,pw);try {//传递token给shiro的realmsubject.login(token);//成功之后就进入主页return "redirect:/admin/main.jsp";} catch (Exception e) {e.printStackTrace();//把用户名密码传回前台页面,让用户修改正确的再次提交request.setAttribute("blogger", blogger);request.setAttribute("errorInfo", "用户名密码错误");}return "login";}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部