From 8587a1c94e800dbf0400f13641362b15fa91e49f Mon Sep 17 00:00:00 2001 From: limingyue <100746101+Limingyue0715@users.noreply.github.com> Date: Wed, 29 May 2024 12:06:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 38 ++++++ .idea/.gitignore | 8 ++ .idea/encodings.xml | 7 + .idea/misc.xml | 14 ++ .idea/uiDesigner.xml | 124 ++++++++++++++++++ .idea/vcs.xml | 6 + pom.xml | 69 ++++++++++ .../java/com/controller/HelloController.java | 25 ++++ .../java/springweb/SuccessController.java | 12 ++ src/main/java/springweb/User.java | 22 ++++ src/main/java/springweb/UserController.java | 50 +++++++ src/main/java/springweb/UserDao.java | 5 + src/main/java/springweb/UserDaoImpl.java | 22 ++++ src/main/java/springweb/UserService.java | 5 + src/main/java/springweb/UserServiceImpl.java | 25 ++++ src/main/resources/jdbc.properties | 5 + src/main/resources/springMVC.xml | 37 ++++++ src/main/webapp/WEB-INF/index.jsp | 19 +++ src/main/webapp/WEB-INF/login.jsp | 25 ++++ src/main/webapp/WEB-INF/web.xml | 32 +++++ src/main/webapp/login.jsp | 24 ++++ .../java/springweb/UserControllerTest.java | 25 ++++ 22 files changed, 599 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 pom.xml create mode 100644 src/main/java/com/controller/HelloController.java create mode 100644 src/main/java/springweb/SuccessController.java create mode 100644 src/main/java/springweb/User.java create mode 100644 src/main/java/springweb/UserController.java create mode 100644 src/main/java/springweb/UserDao.java create mode 100644 src/main/java/springweb/UserDaoImpl.java create mode 100644 src/main/java/springweb/UserService.java create mode 100644 src/main/java/springweb/UserServiceImpl.java create mode 100644 src/main/resources/jdbc.properties create mode 100644 src/main/resources/springMVC.xml create mode 100644 src/main/webapp/WEB-INF/index.jsp create mode 100644 src/main/webapp/WEB-INF/login.jsp create mode 100644 src/main/webapp/WEB-INF/web.xml create mode 100644 src/main/webapp/login.jsp create mode 100644 src/test/java/springweb/UserControllerTest.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ff6309 --- /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 0000000..35410ca --- /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 0000000..aa00ffa --- /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 0000000..fdc35ea --- /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 0000000..2b63946 --- /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 0000000..94a25f7 --- /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 0000000..6dc901b --- /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 0000000..9953181 --- /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 0000000..5cb7d56 --- /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 0000000..ae42349 --- /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 0000000..8434ec9 --- /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 0000000..87ba559 --- /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 0000000..a34fe1e --- /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 0000000..d1bd96a --- /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 0000000..0745254 --- /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 0000000..2538c28 --- /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 0000000..f3ed330 --- /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 0000000..6cf47d3 --- /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 0000000..2fa5cd8 --- /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 0000000..3dbf3ee --- /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 0000000..de84c2a --- /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 0000000..3d9380d --- /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 -- Gitee