diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..5ff6309b7199129c1afe4f4ec1906e640bec48c6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..35410cacdc5e87f985c93a96520f5e11a5c822e4 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000000000000000000000000000000000000..aa00ffab7828f4818589659c804ec2cfd99baed3 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..fdc35ea8167a5fae3f335ef1d46269eaebfa6b03 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000000000000000000000000000000000000..2b63946d5b31084bbb7dda418ceb3d75eb686373 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..6dc901bf73e431c42bf0f9a6d0c527d7e301a4c7 --- /dev/null +++ b/pom.xml @@ -0,0 +1,69 @@ + + + 4.0.0 + + org.example + springmvc + 1.0-SNAPSHOT + war + + + 21 + 21 + UTF-8 + + + + + + org.springframework + spring-context + 6.1.6 + + + + org.springframework + spring-webmvc + 6.1.6 + + + + jakarta.servlet + jakarta.servlet-api + 6.0.0 + provided + + + + org.thymeleaf + thymeleaf-spring6 + 3.1.2.RELEASE + + + + + org.springframework + spring-jdbc + 6.1.6 + + + + com.alibaba + druid + 1.2.22 + + + com.mysql + mysql-connector-j + 8.3.0 + + + org.junit.jupiter + junit-jupiter-api + 5.10.2 + test + + + \ No newline at end of file diff --git a/src/main/java/com/controller/HelloController.java b/src/main/java/com/controller/HelloController.java new file mode 100644 index 0000000000000000000000000000000000000000..99531816e453f9e43dcefba4d56d1df45cd61a0b --- /dev/null +++ b/src/main/java/com/controller/HelloController.java @@ -0,0 +1,25 @@ +package com.controller; + +import com.mysql.cj.x.protobuf.MysqlxDatatypes; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +public class HelloController { + @RequestMapping("/mm") + public String index(Model model){ + String msg; + model.addAttribute("msg","成功"); + return "/index.jsp"; + } + +} + public class HelloController { + @RequestMapping("/mm") + public MysqlxDatatypes.Scalar.String index(Model model){ + MysqlxDatatypes.Scalar.String msg; + model.addAttribute("msg","成功"); + return "/index.jsp"; + } + } \ No newline at end of file diff --git a/src/main/java/springweb/SuccessController.java b/src/main/java/springweb/SuccessController.java new file mode 100644 index 0000000000000000000000000000000000000000..5cb7d568fd895b869548d110f5a19daf0db5e60a --- /dev/null +++ b/src/main/java/springweb/SuccessController.java @@ -0,0 +1,12 @@ +package springweb; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +public class SuccessController { + @RequestMapping ("/success") + public String success() { + return "/index.jsp"; // 返回首页视图名称 + } +} diff --git a/src/main/java/springweb/User.java b/src/main/java/springweb/User.java new file mode 100644 index 0000000000000000000000000000000000000000..ae4234963bb868a7dab6d4454a3763d0e8e6fa67 --- /dev/null +++ b/src/main/java/springweb/User.java @@ -0,0 +1,22 @@ +package springweb; + +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; + } +} diff --git a/src/main/java/springweb/UserController.java b/src/main/java/springweb/UserController.java new file mode 100644 index 0000000000000000000000000000000000000000..8434ec9824d76ad5c1c4dad52218ccb60b28d166 --- /dev/null +++ b/src/main/java/springweb/UserController.java @@ -0,0 +1,50 @@ +package springweb; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@Controller +public class UserController { + + UserService userService; + + // @Autowired + @Autowired + public void setUserService(UserService userService) { + this.userService = userService; + } + + @PostMapping("/login") + public String handleSubmitForm(@RequestParam("username") String username, @RequestParam("password") String password, Model model) { + User user = new User(); + user.setUsername(username); + user.setPassword(password); + // 处理表单数据 + Boolean result = userService.userLogin(user); + if (result) { + model.addAttribute("username", user.getUsername()); + return "/index"; + } else { + model.addAttribute("msg", "登陆失败"); + return "login"; + } + } + + public String userLogin(User user) { + Boolean result = userService.userLogin(user); + if (result) + return "success"; + else + return "error"; + } + + @RequestMapping("/mm") + public String shi() { + return "success"; + } + +} diff --git a/src/main/java/springweb/UserDao.java b/src/main/java/springweb/UserDao.java new file mode 100644 index 0000000000000000000000000000000000000000..87ba559839485afaa76b02ca34c64d67888dfa1e --- /dev/null +++ b/src/main/java/springweb/UserDao.java @@ -0,0 +1,5 @@ +package springweb; + +public interface UserDao { + public User userLogin(User user); +} diff --git a/src/main/java/springweb/UserDaoImpl.java b/src/main/java/springweb/UserDaoImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..a34fe1e4b92a1b98e0642b3ead866e04026885db --- /dev/null +++ b/src/main/java/springweb/UserDaoImpl.java @@ -0,0 +1,22 @@ +package springweb; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.BeanPropertyRowMapper; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Repository; + +@Repository +public class UserDaoImpl implements UserDao{ + JdbcTemplate jdbcTemplate; + @Autowired + public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + } + + @Override + public User userLogin(User user) { + String sql="SELECT * FROM user WHERE username=? AND password=?"; + User resuser=jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<>(User.class),user.getUsername(),user.getPassword()); + return resuser; + } +} diff --git a/src/main/java/springweb/UserService.java b/src/main/java/springweb/UserService.java new file mode 100644 index 0000000000000000000000000000000000000000..d1bd96a221071ef95dfab6c1bc2345f47c327e6c --- /dev/null +++ b/src/main/java/springweb/UserService.java @@ -0,0 +1,5 @@ +package springweb; + +public interface UserService { + public boolean userLogin(User user); +} diff --git a/src/main/java/springweb/UserServiceImpl.java b/src/main/java/springweb/UserServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..0745254463b5de3337bdb7ebbd61148393b2f757 --- /dev/null +++ b/src/main/java/springweb/UserServiceImpl.java @@ -0,0 +1,25 @@ +package springweb; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DataAccessException; +import org.springframework.stereotype.Service; + +@Service +public class UserServiceImpl implements UserService{ + UserDao userDao; + + @Autowired + public void setUserDao(UserDao userDao) { + this.userDao = userDao; + } + + @Override + public boolean userLogin(User user) { + try { + User sqlUser = userDao.userLogin(user); + if ((sqlUser.getUsername().equals(user.getUsername())) && (sqlUser.getPassword().equals(user.getPassword()))) + return true; + }catch (DataAccessException e){} + return false; + } +} diff --git a/src/main/resources/jdbc.properties b/src/main/resources/jdbc.properties new file mode 100644 index 0000000000000000000000000000000000000000..2538c281e03b1f55e8d7d8fd4669a50aff055700 --- /dev/null +++ b/src/main/resources/jdbc.properties @@ -0,0 +1,5 @@ +jdbc.user= +jdbc.password= +#jdbc.url=jdbc:mysql://localhost:3306/spring?characterEncoding=utf8&useSSL=false +jdbc.url=jdbc:mysql://localhost:3306/db?characterEncoding=utf8&useSSL=false +jdbc.driver=com.mysql.cj.jdbc.Driver \ No newline at end of file diff --git a/src/main/resources/springMVC.xml b/src/main/resources/springMVC.xml new file mode 100644 index 0000000000000000000000000000000000000000..f3ed33064ec7a56d8ac11270ec14918e50b8215e --- /dev/null +++ b/src/main/resources/springMVC.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/index.jsp b/src/main/webapp/WEB-INF/index.jsp new file mode 100644 index 0000000000000000000000000000000000000000..6cf47d3959ce781a59e1b8c2c63a281065c963b5 --- /dev/null +++ b/src/main/webapp/WEB-INF/index.jsp @@ -0,0 +1,19 @@ +<%-- + Created by IntelliJ IDEA. + User: Liang + Date: 2024/5/14 + Time: 10:51 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + 首页 + + +

首页

+ +HelloWorld,${username}
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/login.jsp b/src/main/webapp/WEB-INF/login.jsp new file mode 100644 index 0000000000000000000000000000000000000000..2fa5cd846621e840c175162adeb2dbbc7e5ca1da --- /dev/null +++ b/src/main/webapp/WEB-INF/login.jsp @@ -0,0 +1,25 @@ +<%-- + Created by IntelliJ IDEA. + User: Liang + Date: 2024/5/14 + Time: 10:54 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + 登录 + + +

登录

+${msg} +<%--HelloWorld
--%> +
+ ${pageContext.request.contextPath} + Username:
+ Password:
+ +
+ + diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000000000000000000000000000000000..3dbf3eeec67da43bdd83e8a4765db5136c42cfa5 --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,32 @@ + + + + + springMVC + org.springframework.web.servlet.DispatcherServlet + + + contextConfigLocation + + classpath:springMVC.xml + + + 1 + + + springMVC + + / + + \ No newline at end of file diff --git a/src/main/webapp/login.jsp b/src/main/webapp/login.jsp new file mode 100644 index 0000000000000000000000000000000000000000..de84c2af97e15a7a1f55497780c51d5508fa8c98 --- /dev/null +++ b/src/main/webapp/login.jsp @@ -0,0 +1,24 @@ +<%-- + Created by IntelliJ IDEA. + User: 86166 + Date: 2024/5/14 + Time: 10:54 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + 登录 + + +

登录

+<%--HelloWorld
--%> +
+ ${pageContext.request.contextPath} + Username:
+ Password:
+ +
+ + diff --git a/src/test/java/springweb/UserControllerTest.java b/src/test/java/springweb/UserControllerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..3d9380df34361c74816189746c9e19edcad81e65 --- /dev/null +++ b/src/test/java/springweb/UserControllerTest.java @@ -0,0 +1,25 @@ +package springweb; + +import org.junit.jupiter.api.Test; +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +import java.util.Scanner; + +import static org.junit.jupiter.api.Assertions.*; + +class UserControllerTest { + + @Test + void userLogin() { + ApplicationContext context=new ClassPathXmlApplicationContext("springMVC.xml"); + UserController userController= context.getBean(UserController.class); + User user=new User(); + Scanner scanner =new Scanner(System.in); + System.out.println("用户名:"); + user.setUsername(scanner.next()); + System.out.println("密码"); + user.setPassword(scanner.next()); + System.out.println(userController.userLogin(user)); + } +} \ No newline at end of file