Idea Maven SpringMVC+Mysql 登录

上次做的是没有与数据库打交道的小项目,这次加入数据库访问。

参考上一个项目https://blog.csdn.net/ck784101777/article/details/82772416

1.创建maven-web项目

Idea Maven SpringMVC+Mysql 登录_第1张图片

 

2.加入maven依赖

在pom.xml下导入依赖,直接复制粘贴就好了,这是项目运行的基本包,包括spring,servlet,mysql,jstl等jar包


        UTF-8
        1.7
        1.7
        UTF-8
        4.2.2.RELEASE
        3.0-alpha-1
        1.8.1
        1.9
        1.4
        5.0.2.Final
        8.1.8.v20121106
        1.7.5
        6.8.7
    

    
        
            org.springframework
            spring-beans
            ${spring.version}
        
        
            org.springframework
            spring-context
            ${spring.version}
        
        
            org.springframework
            spring-context-support
            ${spring.version}
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        

        
            commons-dbcp
            commons-dbcp
            ${commons-dbcp.version}
        

        
            javax.servlet
            servlet-api
            ${servlet.version}
            provided
        

        
            javax.servlet
            jstl
            1.2
        
        
            org.aspectj
            aspectjweaver
            ${aspectj.version}
        

        
            org.testng
            testng
            ${testng.version}
            test
        
        
            org.springframework
            spring-test
            ${spring.version}
            test
        

        
            mysql
            mysql-connector-java
            5.1.46
        

    

3.导入springmvc

右键项目名

Idea Maven SpringMVC+Mysql 登录_第2张图片

Idea Maven SpringMVC+Mysql 登录_第3张图片

4.构建项目结构

上一个教程有写,不知道的可以回顾一下

完成之后是这样

Idea Maven SpringMVC+Mysql 登录_第4张图片

(1)dao用来写数据库语句

(2)service是业务层,是web与dao之间的桥梁

(3)web下写controller,springmvc的controller(控制器)是用户与服务器打交道的工具

(4)entity实体类,用来封装数据,数据模型

5.配置applicationContext.xml,dispatcher-servlet.xml,web.xml

web.xml配置信息如下




    Archetype Created Web Application
    
        contextConfigLocation
        /WEB-INF/applicationContext.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    

    
    
        springMVC
        org.springframework.web.servlet.DispatcherServlet
        
            
            contextConfigLocation
            /WEB-INF/dispatcher-servlet.xml
        
        1
    
    
        springMVC
        /
    

    
        dispatcher
        org.springframework.web.servlet.DispatcherServlet
        1
    
    
        dispatcher
        *.form
    

dispatcher-servlet.xml下的配置信息如下




    
    
    
    

    
    

    
    

    
    
    
        
        
        
        
    

Application-Context.xml下配置信息如下




    
    
    
    
    
    

    
    
        
        
    
    
        
            
        
    

有两处需要根据实际项目改动

6.dao.service.web.entity的实现

(1)entity写一个实体类封装数据就好了,这里是登录 只需要两条数据

package com.smart.entity;

public class User {
    private String username;
    private String password;

    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;
    }
}

get/set生成即可,快捷键alt+Insert

(2)dao

package com.smart.dao;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

@Repository
public class UserDAO {

    private JdbcTemplate jdbcTemplate;
    private final static String Match_COUNT_SQL="Select count(*) from user where username=? and password=?";

    @Autowired
    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    public int ValidUser(String username,String password){
        System.out.println("sss");
        return jdbcTemplate.queryForObject(Match_COUNT_SQL,new Object[]{username,password},Integer.class);
    }

}

(3)service

package com.smart.service;

import com.smart.dao.UserDAO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    private UserDAO userDAO;

    @Autowired
    public void setUserDAO(UserDAO userDAO) {
        this.userDAO = userDAO;
    }

    public boolean hasMatch(String username,String password){
        System.out.println("service");
        int count=userDAO.ValidUser(username,password);
        return count>0;
    }
}

(4)web

package com.smart.web;


import com.smart.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.smart.service.UserService;

import javax.servlet.http.HttpServletRequest;


@Controller
public class LoginController {
    private UserService userService;

    @Autowired
    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    @RequestMapping("/tologin")
    public String tologin(){
        System.out.println("ss");
        return "login";
    }

    @RequestMapping("/login")
    public ModelAndView login(HttpServletRequest request, User user){
        System.out.println(user.getUsername());
        boolean isValidUser=userService.hasMatch(user.getUsername(),user.getPassword());
        if (isValidUser){
            request.getSession().setAttribute("user",user);
            return new ModelAndView("success");
        }else{
            return new ModelAndView("login","error","用户名或账户错误");
        }
    }
}

7.展示层 jsp的实现

写两个login.jsp,success.jsp;

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2018/10/7 0007
  Time: 22:31
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


    Title


${error}
Username:
Password:
<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2018/10/8 0008
  Time: 12:53
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c"
           uri="http://java.sun.com/jsp/jstl/core" %>


    Title


welcome,${user.username}


在login界面下登录成功进入success.jsp,登录失败回到页面提示错误信息

8.配置tomcat

Idea Maven SpringMVC+Mysql 登录_第5张图片

9.运行项目,进行测试

Idea Maven SpringMVC+Mysql 登录_第6张图片

登录成功

Idea Maven SpringMVC+Mysql 登录_第7张图片

登录失败

Idea Maven SpringMVC+Mysql 登录_第8张图片

你可能感兴趣的:(Idea Maven SpringMVC+Mysql 登录)