spring boot mvc初学 注册登录发表文章

1、springboot项目搭建

File new project选择spring initializr,如下图

 

点击下一步,

输入name,group,aftifact等选项,别的默认即可,

点击下一步

选择相应的webjpa、等需要的东西。点击下一步,

构建完成。会自动生成一些文件和文件夹。在javaresource两个文件夹下分别创建相应的文件夹,如图所示

Model实体

Dao操作数据库

Service调用dao层并可以被controller调用

Controller调用service层 并可指定模板  传递数据

Pom.xml基于maven为基础

如:

spring-boot-starter 核心 POM,包含自动配置支持、日志库和对 YAML 配置文件的支持。

spring-boot-starter-aop 包含 spring-aop AspectJ 来支持面向切面编程(AOP)。

spring-boot-starter-web 支持 Web 应用开发,包含 Tomcat spring-mvc

application.properties数据库信息等

 

 

2、创建数据库

创建user

 

编写实体类。

 

3、编码

1)注册

首先注册,需要检测用户名密码是否为空,用户名是否已经被占用,需要给密码加密

前台form表单提交过来,后台去判断,如下

用户名不能为空

if(user.getName().length() == 0) {
    attributes.addFlashAttribute("message","用户名不能为空");//传递给前台
    return "redirect:regist";
}

查询用户名是否存在

User user1 = userService.getUserByName(user.getName());

Service

public User getUserByName(String name){
    User user= userDao.findByName(name);
    return user;
}

Dao

//通过名字进行查找
User findByName(String name);

如果不存在则加入到数据库,进行注册。

user.setPassword(MD5Util.encode(user.getPassword()));//给密码md5加密,引入了MD5Util

类,加密方式为密码+特定字符串,然后md5加密
userService.save(user);//保存到数据库

由此注册完成。

 

(2)登录

前台传过来用户名和密码,后来来处理数据

// 用户登陆
@RequestMapping("/login")
public String getUser(User userObj,@RequestParam String name,
                    @RequestParam String password,
                    HttpSession session,
                    RedirectAttributes attributes) {
    if(name.length() == 0) {
        attributes.addFlashAttribute("message","用户名不能为空");
        return "redirect:";
    }
    password = MD5Util.encode(password);
    User user = userService.getUser(name,password);
    if (user != null) {
        user.setPassword(null);
        session.setAttribute("user", user);
        return "index";
    }else{
        attributes.addFlashAttribute("message","用户名或密码错误");
        return "redirect:";
    }
}

先判断用户名是否为空,然后给密码加密,加密后去根据用户名和加密后的密码去数据库中查找

@Override
public User getUser(String name, String password) {
    User user= userDao.findByNameAndPassword(name,password);
    return user;
}

Dao

// 通过名字和密码进行查找
User findByNameAndPassword(String name,String password);

如果数据库中存在,则登录成功。记录到session中。

user.setPassword(null);//把密码去除掉
session.setAttribute("user", user);

 

至此注册登录完成。

 

4、发布文章

创建news表

 

创建model、service等

发表文章,前台传过来标题和内容

通过session判断用户是否登录

User user = (User)session.getAttribute("user");
if(user == null || user.getId() < 1){
    attributes.addFlashAttribute("message","登陆后才可发布");
    return "redirect:tosavenews";
}

设置时间、部分值等并保存

news.setUser_id(user.getId());
news.setCreate_time(new Date());
news.setStatus(1);
news.setZan(0);
newsService.save(news);

 

查询文章列表并传给前台

List newsList = newsService.findAll();
model.addAttribute("newsList",newsList);

Service

目前还没有增加分页等限制,查询的是全部

@Override
public List findAll(){
    return newsDao.findAll();
}

 

详情页

通过id获取详情

@RequestMapping("detail/{id}")
public String detail(@PathVariable("id")int id, Model model){
    News news = newsService.getNewsById(id);
    model.addAttribute("news",news);
    return "detail";
}

Service

@Override
public News getNewsById(int id){
    News news= newsDao.findById(id);
    return news;
}

 源码在此处下载

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值