JAVA语言用springboot框架实现简单的登录

dao.UserDao

package com.zr.dao;

import com.zr.po.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserDao extends JpaRepository {

User findByUsernameAndPassword(String username, String password);

}

po.Blog

@Entity
@Table(name = “t_blog”)
public class Blog {

@Id
@GeneratedValue
private Long id;

private String title;

@Basic(fetch = FetchType.LAZY)
@Lob
private String content;
private String firstPicture;
private String flag;
private Integer views;
private boolean appreciation;
private boolean shareStatement;
private boolean commentabled;
private boolean published;
private boolean recommend;
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
@Temporal(TemporalType.TIMESTAMP)
private Date updateTime;

@ManyToOne
private Type type;

@ManyToMany(cascade = {CascadeType.PERSIST})
private List tags = new ArrayList<>();


@ManyToOne
private User user;

@OneToMany(mappedBy = "blog")
private List comments = new ArrayList<>();

@Transient
private String tagIds;

private String description;

public Blog() {
}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getContent() {
    return content;
}

public void setContent(String content) {
    this.content = content;
}

public String getFirstPicture() {
    return firstPicture;
}

public void setFirstPicture(String firstPicture) {
    this.firstPicture = firstPicture;
}

public String getFlag() {
    return flag;
}

public void setFlag(String flag) {
    this.flag = flag;
}

public Integer getViews() {
    return views;
}

public void setViews(Integer views) {
    this.views = views;
}

public boolean isAppreciation() {
    return appreciation;
}

public void setAppreciation(boolean appreciation) {
    this.appreciation = appreciation;
}

public boolean isShareStatement() {
    return shareStatement;
}

public void setShareStatement(boolean shareStatement) {
    this.shareStatement = shareStatement;
}

public boolean isCommentabled() {
    return commentabled;
}

public void setCommentabled(boolean commentabled) {
    this.commentabled = commentabled;
}

public boolean isPublished() {
    return published;
}

public void setPublished(boolean published) {
    this.published = published;
}

public boolean isRecommend() {
    return recommend;
}

public void setRecommend(boolean recommend) {
    this.recommend = recommend;
}

public Date getCreateTime() {
    return createTime;
}

public void setCreateTime(Date createTime) {
    this.createTime = createTime;
}

public Date getUpdateTime() {
    return updateTime;
}

public void setUpdateTime(Date updateTime) {
    this.updateTime = updateTime;
}

public Type getType() {
    return type;
}

public void setType(Type type) {
    this.type = type;
}

public List getTags() {
    return tags;
}

public void setTags(List tags) {
    this.tags = tags;
}


public User getUser() {
    return user;
}

public void setUser(User user) {
    this.user = user;
}


public List getComments() {
    return comments;
}

public void setComments(List comments) {
    this.comments = comments;
}


public String getTagIds() {
    return tagIds;
}

public void setTagIds(String tagIds) {
    this.tagIds = tagIds;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public void init() {
    this.tagIds = tagsToIds(this.getTags());
}

//1,2,3
private String tagsToIds(List tags) {
    if (!tags.isEmpty()) {
        StringBuffer ids = new StringBuffer();
        boolean flag = false;
        for (Tag tag : tags) {
            if (flag) {
                ids.append(",");
            } else {
                flag = true;
            }
            ids.append(tag.getId());
        }
        return ids.toString();
    } else {
        return tagIds;
    }
}


@Override
public String toString() {
    return "Blog{" +
            "id=" + id +
            ", title='" + title + '\'' +
            ", content='" + content + '\'' +
            ", firstPicture='" + firstPicture + '\'' +
            ", flag='" + flag + '\'' +
            ", views=" + views +
            ", appreciation=" + appreciation +
            ", shareStatement=" + shareStatement +
            ", commentabled=" + commentabled +
            ", published=" + published +
            ", recommend=" + recommend +
            ", createTime=" + createTime +
            ", updateTime=" + updateTime +
            ", type=" + type +
            ", tags=" + tags +
            ", user=" + user +
            ", comments=" + comments +
            ", tagIds='" + tagIds + '\'' +
            ", description='" + description + '\'' +
            '}';
}

}

po.comment

@Entity
@Table(name = “t_comment”)
public class Comment {

@Id
@GeneratedValue
private Long id;
private String nickname;
private String email;
private String content;
private String avatar;
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;

@ManyToOne
private Blog blog;

@OneToMany(mappedBy = "parentComment")
private List replyComments = new ArrayList<>();

@ManyToOne
private Comment parentComment;

public Comment() {
}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getNickname() {
    return nickname;
}

public void setNickname(String nickname) {
    this.nickname = nickname;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getContent() {
    return content;
}

public void setContent(String content) {
    this.content = content;
}

public String getAvatar() {
    return avatar;
}

public void setAvatar(String avatar) {
    this.avatar = avatar;
}

public Date getCreateTime() {
    return createTime;
}

public void setCreateTime(Date createTime) {
    this.createTime = createTime;
}

public Blog getBlog() {
    return blog;
}

public void setBlog(Blog blog) {
    this.blog = blog;
}

public List getReplyComments() {
    return replyComments;
}

public void setReplyComments(List replyComments) {
    this.replyComments = replyComments;
}

public Comment getParentComment() {
    return parentComment;
}

public void setParentComment(Comment parentComment) {
    this.parentComment = parentComment;
}

@Override
public String toString() {
    return "Comment{" +
            "id=" + id +
            ", nickname='" + nickname + '\'' +
            ", email='" + email + '\'' +
            ", content='" + content + '\'' +
            ", avatar='" + avatar + '\'' +
            ", createTime=" + createTime +
            '}';
}

}

po.Tag

@Entity
@Table(name = “t_tag”)
public class Tag {

@Id
@GeneratedValue
private Long id;
private String name;

@ManyToMany(mappedBy = "tags")
private List blogs = new ArrayList<>();

public Tag() {
}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public List getBlogs() {
    return blogs;
}

public void setBlogs(List blogs) {
    this.blogs = blogs;
}

@Override
public String toString() {
    return "Tag{" +
            "id=" + id +
            ", name='" + name + '\'' +
            '}';
}

}

po.Type

@Entity
@Table(name = “t_type”)
public class Type {

@Id
@GeneratedValue
private Long id;

private String name;

@OneToMany(mappedBy = "type")
private List blogs = new ArrayList<>();

public Type() {
}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public List getBlogs() {
    return blogs;
}

public void setBlogs(List blogs) {
    this.blogs = blogs;
}

@Override
public String toString() {
    return "Type{" +
            "id=" + id +
            ", name='" + name + '\'' +
            '}';
}

}

po.User

@Entity
@Table(name = “t_user”)
public class User {

@Id
@GeneratedValue
private Long id;
private String nickname;
private String username;
private String password;
private String email;
private String avatar;
private Integer type;
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
@Temporal(TemporalType.TIMESTAMP)
private Date updateTime;

@OneToMany(mappedBy = "user")
private List blogs = new ArrayList<>();

public User() {
}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getNickname() {
    return nickname;
}

public void setNickname(String nickname) {
    this.nickname = nickname;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getAvatar() {
    return avatar;
}

public void setAvatar(String avatar) {
    this.avatar = avatar;
}

public Integer getType() {
    return type;
}

public void setType(Integer type) {
    this.type = type;
}

public Date getCreateTime() {
    return createTime;
}

public void setCreateTime(Date createTime) {
    this.createTime = createTime;
}

public Date getUpdateTime() {
    return updateTime;
}

public void setUpdateTime(Date updateTime) {
    this.updateTime = updateTime;
}


public List getBlogs() {
    return blogs;
}

public void setBlogs(List blogs) {
    this.blogs = blogs;
}

@Override
public String toString() {
    return "User{" +
            "id=" + id +
            ", nickname='" + nickname + '\'' +
            ", username='" + username + '\'' +
            ", password='" + password + '\'' +
            ", email='" + email + '\'' +
            ", avatar='" + avatar + '\'' +
            ", type=" + type +
            ", createTime=" + createTime +
            ", updateTime=" + updateTime +
            '}';
}

}

service.impl.UserServiceimple

@Service
public class UserServiceImpl implements IUserService {

@Autowired
private UserDao userDao;

@Override
public User checkUser(String username, String password) {
    return userDao.findByUsernameAndPassword(username, MD5Util.code(password));
}

}

service.IUserService

public interface IUserService {
User checkUser(String username, String password);
}

public class MD5Util {

/**
 * MD5加密类
 * @param str 要加密的字符串
 * @return    加密后的字符串
 */
public static String code(String str){
    try {
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(str.getBytes());
        byte[]byteDigest = md.digest();
        int i;
        StringBuffer buf = new StringBuffer("");
        for (int offset = 0; offset < byteDigest.length; offset++) {
            i = byteDigest[offset];
            if (i < 0)
                i += 256;
            if (i < 16)
                buf.append("0");
            buf.append(Integer.toHexString(i));
        }
        //32位加密
        return buf.toString();
        // 16位的加密
        //return buf.toString().substring(8, 24);
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
        return null;
    }

}


public static void main(String[] args) {
    System.out.println(code("1"));
}

}

控制层

@Controller
@RequestMapping("/admin")
public class LoginController {

@Autowired
private IUserService userService;


@GetMapping
public String toLogin(){
    return "admin/login";
}
@PostMapping("/login")
public String login(String username, String password, HttpSession session, RedirectAttributes redirectAttributes){
    User user = userService.checkUser(username, password);
    if(user!=null){
        session.setAttribute("user",user);
        return "admin/index";
    }else{
        redirectAttributes.addFlashAttribute("message","用户名和密码错误");
        return "redirect:/admin";
    }

}
@GetMapping("/logout")
public String logout(HttpSession session){
    session.removeAttribute("user");
    return "admin/login";
}

你可能感兴趣的:(大神代码)