diff --git a/.springBeans b/.springBeans index 4d9eb32..4558973 100644 --- a/.springBeans +++ b/.springBeans @@ -1,13 +1,17 @@ 1 - + + + src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml + src/main/webapp/WEB-INF/spring/root-context.xml + diff --git a/pom.xml b/pom.xml index fecd7ef..674e4f8 100644 --- a/pom.xml +++ b/pom.xml @@ -1,145 +1,112 @@ - - 4.0.0 - com.shoppingmall - biz - ShoppingMall - war - 1.0.0-BUILD-SNAPSHOT - - 1.6 - 3.1.1.RELEASE - 1.6.10 - 1.6.6 - - - - - org.springframework - spring-context - ${org.springframework-version} - - - - commons-logging - commons-logging - - - - - org.springframework - spring-webmvc - ${org.springframework-version} - - - - - org.aspectj - aspectjrt - ${org.aspectj-version} - - - - - org.slf4j - slf4j-api - ${org.slf4j-version} - - - org.slf4j - jcl-over-slf4j - ${org.slf4j-version} - runtime - - - org.slf4j - slf4j-log4j12 - ${org.slf4j-version} - runtime - - - log4j - log4j - 1.2.15 - - - javax.mail - mail - - - javax.jms - jms - - - com.sun.jdmk - jmxtools - - - com.sun.jmx - jmxri - - - runtime - + + 4.0.0 + com.shoppingmall + biz + ShoppingMall + war + 1.0.0-BUILD-SNAPSHOT + + 1.8 + 5.3.23 + 1.9.9.1 + 1.7.36 + 4.13.2 + + + + + org.springframework + spring-jdbc + 5.3.24 + - - - javax.inject - javax.inject - 1 - - - - - javax.servlet - servlet-api - 2.5 - provided - - - javax.servlet.jsp - jsp-api - 2.1 - provided - - - javax.servlet - jstl - 1.2 - - - - - junit - junit - 4.7 - test - - + + + org.springframework + spring-context + ${spring.version} + + + org.springframework + spring-webmvc + ${spring.version} + + + + + org.aspectj + aspectjrt + ${aspectj.version} + + + + + org.slf4j + slf4j-api + ${slf4j.version} + + + org.slf4j + jcl-over-slf4j + ${slf4j.version} + + + org.slf4j + slf4j-log4j12 + ${slf4j.version} + + + log4j + log4j + 1.2.17 + + + + + javax.inject + javax.inject + 1 + + + + + javax.servlet + javax.servlet-api + 4.0.1 + provided + + + javax.servlet + javax.servlet.jsp-api + 2.3.1 + provided + + + javax.servlet + jstl + 1.2 + + + + + junit + junit + ${junit.version} + test + + - - maven-eclipse-plugin - 2.9 - - - org.springframework.ide.eclipse.core.springnature - - - org.springframework.ide.eclipse.core.springbuilder - - true - true - - org.apache.maven.plugins maven-compiler-plugin - 2.5.1 + 3.8.1 - 1.6 - 1.6 + ${java.version} + ${java.version} -Xlint:all true true @@ -148,7 +115,7 @@ org.codehaus.mojo exec-maven-plugin - 1.2.1 + 1.6.0 org.test.int1.Main diff --git a/src/main/java/com/miniproject/user/UserService.java b/src/main/java/com/miniproject/user/UserService.java new file mode 100644 index 0000000..911d80c --- /dev/null +++ b/src/main/java/com/miniproject/user/UserService.java @@ -0,0 +1,6 @@ +package com.miniproject.user; + +public interface UserService { + UserVO loginUser(String id, String pass); + boolean registerUser(UserVO user); +} diff --git a/src/main/java/com/miniproject/user/UserSservice.java b/src/main/java/com/miniproject/user/UserSservice.java deleted file mode 100644 index ff8c8fc..0000000 --- a/src/main/java/com/miniproject/user/UserSservice.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.miniproject.user; - -public interface UserSservice { - -} diff --git a/src/main/java/com/miniproject/user/UserVO.java b/src/main/java/com/miniproject/user/UserVO.java index 5d90a03..aae7976 100644 --- a/src/main/java/com/miniproject/user/UserVO.java +++ b/src/main/java/com/miniproject/user/UserVO.java @@ -1,5 +1,15 @@ package com.miniproject.user; -public class UserVO { +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class UserVO { + private String id; + private String pass; + private String name; + private String phone; + private String nickname; } diff --git a/src/main/java/com/miniproject/user/controller/JoinController.java b/src/main/java/com/miniproject/user/controller/JoinController.java new file mode 100644 index 0000000..fb3efa4 --- /dev/null +++ b/src/main/java/com/miniproject/user/controller/JoinController.java @@ -0,0 +1,37 @@ +package com.miniproject.user.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.ModelAndView; + +import com.miniproject.user.UserService; +import com.miniproject.user.UserVO; + +@Controller +@RequestMapping("/user") +public class JoinController { + + private final UserService userService; + + @Autowired + public JoinController(UserService userService) { + this.userService = userService; + } + + @RequestMapping(value = "/join.do", method = RequestMethod.GET) + public String showJoinForm() { + return "join"; // 회원가입 폼을 보여줍니다. + } + + @RequestMapping(value = "/join.do", method = RequestMethod.POST) + public String join(UserVO user) { + boolean isRegistered = userService.registerUser(user); + if (isRegistered) { + return "redirect:/user/login.do"; // 회원가입 성공 후 로그인 페이지로 리다이렉트 + } else { + return "join"; // 회원가입 실패 시 다시 회원가입 페이지로 + } + } +} diff --git a/src/main/java/com/miniproject/user/controller/LoginController.java b/src/main/java/com/miniproject/user/controller/LoginController.java new file mode 100644 index 0000000..3c923b0 --- /dev/null +++ b/src/main/java/com/miniproject/user/controller/LoginController.java @@ -0,0 +1,38 @@ +// LoginController.java +package com.miniproject.user.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.ModelAndView; + +import com.miniproject.user.UserService; +import com.miniproject.user.UserVO; + +@Controller +@RequestMapping("/user") +public class LoginController { + + private final UserService userService; + + @Autowired + public LoginController(UserService userService) { + this.userService = userService; + } + + @RequestMapping(value = "/login.do", method = RequestMethod.GET) + public String showLoginForm() { + return "login"; // 로그인 폼을 보여줍니다. + } + + @RequestMapping(value = "/login.do", method = RequestMethod.POST) + public ModelAndView login(String id, String pass) { + UserVO user = userService.loginUser(id, pass); + if (user != null) { + return new ModelAndView("index", "user", user); // 로그인 성공 후 index.jsp로 이동 + } else { + return new ModelAndView("login", "message", "Invalid credentials"); // 로그인 실패 + } + } +} diff --git a/src/main/java/com/miniproject/userImpl/UserDAO.java b/src/main/java/com/miniproject/userImpl/UserDAO.java index 5f3f06a..f609575 100644 --- a/src/main/java/com/miniproject/userImpl/UserDAO.java +++ b/src/main/java/com/miniproject/userImpl/UserDAO.java @@ -1,39 +1,48 @@ package com.miniproject.userImpl; -import java.io.IOException; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * Servlet implementation class UserDAO - */ -public class UserDAO extends HttpServlet { - private static final long serialVersionUID = 1L; - - /** - * @see HttpServlet#HttpServlet() - */ - public UserDAO() { - super(); - // TODO Auto-generated constructor stub +import com.miniproject.user.UserVO; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowMapper; +import org.springframework.stereotype.Repository; + +import javax.sql.DataSource; +import java.sql.ResultSet; +import java.sql.SQLException; +import org.springframework.dao.EmptyResultDataAccessException; + +@Repository +public class UserDAO { + + private final JdbcTemplate jdbcTemplate; + + public UserDAO(DataSource dataSource) { + this.jdbcTemplate = new JdbcTemplate(dataSource); } - /** - * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) - */ - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - // TODO Auto-generated method stub - response.getWriter().append("Served at: ").append(request.getContextPath()); - } - - /** - * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) - */ - protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - // TODO Auto-generated method stub - doGet(request, response); - } + public UserVO selectUserByIdAndPassword(String id, String pass) { + String sql = "SELECT * FROM users WHERE id = ? AND pass = ?"; + try { + return jdbcTemplate.queryForObject(sql, new Object[]{id, pass}, new UserRowMapper()); + } catch (EmptyResultDataAccessException e) { + return null; + } + } + + public boolean insertUser(UserVO user) { + String sql = "INSERT INTO users (id, pass, name, phone, nickname) VALUES (?, ?, ?, ?, ?)"; + int rowsAffected = jdbcTemplate.update(sql, user.getId(), user.getPass(), user.getName(), user.getPhone(), user.getNickname()); + return rowsAffected > 0; + } + private static class UserRowMapper implements RowMapper { + @Override + public UserVO mapRow(ResultSet rs, int rowNum) throws SQLException { + UserVO user = new UserVO(); + user.setId(rs.getString("id")); + user.setName(rs.getString("name")); + user.setPhone(rs.getString("phone")); + user.setNickname(rs.getString("nickname")); + return user; + } + } } diff --git a/src/main/java/com/miniproject/userImpl/UserServiceImpl.java b/src/main/java/com/miniproject/userImpl/UserServiceImpl.java index c594bfa..230fd2c 100644 --- a/src/main/java/com/miniproject/userImpl/UserServiceImpl.java +++ b/src/main/java/com/miniproject/userImpl/UserServiceImpl.java @@ -1,39 +1,33 @@ package com.miniproject.userImpl; -import java.io.IOException; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; -/** - * Servlet implementation class UserServiceImpl - */ -public class UserServiceImpl extends HttpServlet { - private static final long serialVersionUID = 1L; - - /** - * @see HttpServlet#HttpServlet() - */ - public UserServiceImpl() { - super(); - // TODO Auto-generated constructor stub - } +import com.miniproject.user.UserService; +import com.miniproject.user.UserVO; + +@Service +public class UserServiceImpl implements UserService { + private static final Logger logger = LoggerFactory.getLogger(UserServiceImpl.class); + + private final UserDAO userDAO; - /** - * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) - */ - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - // TODO Auto-generated method stub - response.getWriter().append("Served at: ").append(request.getContextPath()); - } + @Autowired + public UserServiceImpl(UserDAO userDAO) { + this.userDAO = userDAO; + } - /** - * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) - */ - protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - // TODO Auto-generated method stub - doGet(request, response); - } + @Override + public UserVO loginUser(String id, String pass) { + logger.info("Logging in user with id: {}", id); + return userDAO.selectUserByIdAndPassword(id, pass); + } + @Override + public boolean registerUser(UserVO user) { + logger.info("Registering user with id: {}", user.getId()); + return userDAO.insertUser(user); + } } diff --git a/src/main/resources/config/datasource.properties b/src/main/resources/config/datasource.properties new file mode 100644 index 0000000..8efb6a1 --- /dev/null +++ b/src/main/resources/config/datasource.properties @@ -0,0 +1,4 @@ +jdbc.driver=oracle.jdbc.driver.OracleDriver +jdbc.url=jdbc:oracle:thin:@localhost:1521:xe +jdbc.username=miniproject +jdbc.password=1234 \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml b/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml index bd85171..1a3ae9d 100644 --- a/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml +++ b/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml @@ -1,29 +1,26 @@ - + - - - - + + - - - + + - - - - - - - - - - - + + + + + + + diff --git a/src/main/webapp/join.jsp b/src/main/webapp/join.jsp index 4aa69fd..13eb06b 100644 --- a/src/main/webapp/join.jsp +++ b/src/main/webapp/join.jsp @@ -121,24 +121,28 @@ body { - + diff --git a/src/main/webapp/login.jsp b/src/main/webapp/login.jsp index f671080..4f42545 100644 --- a/src/main/webapp/login.jsp +++ b/src/main/webapp/login.jsp @@ -123,16 +123,23 @@ body { diff --git a/target/classes/com/miniproject/user/UserService.class b/target/classes/com/miniproject/user/UserService.class new file mode 100644 index 0000000..67e3c36 Binary files /dev/null and b/target/classes/com/miniproject/user/UserService.class differ diff --git a/target/classes/com/miniproject/user/UserSservice.class b/target/classes/com/miniproject/user/UserSservice.class deleted file mode 100644 index 11c8501..0000000 Binary files a/target/classes/com/miniproject/user/UserSservice.class and /dev/null differ diff --git a/target/classes/com/miniproject/user/UserVO.class b/target/classes/com/miniproject/user/UserVO.class index 8bcbf0a..28e5fa4 100644 Binary files a/target/classes/com/miniproject/user/UserVO.class and b/target/classes/com/miniproject/user/UserVO.class differ diff --git a/target/classes/com/miniproject/user/controller/LoginController.class b/target/classes/com/miniproject/user/controller/LoginController.class new file mode 100644 index 0000000..dc8d9a7 Binary files /dev/null and b/target/classes/com/miniproject/user/controller/LoginController.class differ diff --git a/target/classes/com/miniproject/userImpl/UserDAO$UserRowMapper.class b/target/classes/com/miniproject/userImpl/UserDAO$UserRowMapper.class new file mode 100644 index 0000000..d4c17bc Binary files /dev/null and b/target/classes/com/miniproject/userImpl/UserDAO$UserRowMapper.class differ diff --git a/target/classes/com/miniproject/userImpl/UserDAO.class b/target/classes/com/miniproject/userImpl/UserDAO.class index 44a893f..248ced5 100644 Binary files a/target/classes/com/miniproject/userImpl/UserDAO.class and b/target/classes/com/miniproject/userImpl/UserDAO.class differ diff --git a/target/classes/com/miniproject/userImpl/UserServiceImpl.class b/target/classes/com/miniproject/userImpl/UserServiceImpl.class index 953ac62..1c0be7d 100644 Binary files a/target/classes/com/miniproject/userImpl/UserServiceImpl.class and b/target/classes/com/miniproject/userImpl/UserServiceImpl.class differ diff --git a/target/classes/config/datasource.properties b/target/classes/config/datasource.properties new file mode 100644 index 0000000..8efb6a1 --- /dev/null +++ b/target/classes/config/datasource.properties @@ -0,0 +1,4 @@ +jdbc.driver=oracle.jdbc.driver.OracleDriver +jdbc.url=jdbc:oracle:thin:@localhost:1521:xe +jdbc.username=miniproject +jdbc.password=1234 \ No newline at end of file diff --git a/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF b/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF index a73033c..0ab71da 100644 --- a/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF +++ b/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF @@ -1,5 +1,5 @@ Manifest-Version: 1.0 -Built-By: lucy -Build-Jdk: 11.0.23 +Built-By: ITSC +Build-Jdk: 11.0.22 Created-By: Maven Integration for Eclipse diff --git a/target/m2e-wtp/web-resources/META-INF/maven/com.shoppingmall/biz/pom.properties b/target/m2e-wtp/web-resources/META-INF/maven/com.shoppingmall/biz/pom.properties index fa5c679..a93c166 100644 --- a/target/m2e-wtp/web-resources/META-INF/maven/com.shoppingmall/biz/pom.properties +++ b/target/m2e-wtp/web-resources/META-INF/maven/com.shoppingmall/biz/pom.properties @@ -1,6 +1,6 @@ #Generated by Maven Integration for Eclipse -#Thu Aug 01 18:21:48 KST 2024 -m2e.projectLocation=C\:\\Users\\\uC815\uC778\\git\\MiniProject +#Mon Aug 05 09:22:13 KST 2024 +m2e.projectLocation=C\:\\uiux_work\\springworkspace\\MiniProject m2e.projectName=MiniProject groupId=com.shoppingmall artifactId=biz diff --git a/target/m2e-wtp/web-resources/META-INF/maven/com.shoppingmall/biz/pom.xml b/target/m2e-wtp/web-resources/META-INF/maven/com.shoppingmall/biz/pom.xml index fecd7ef..674e4f8 100644 --- a/target/m2e-wtp/web-resources/META-INF/maven/com.shoppingmall/biz/pom.xml +++ b/target/m2e-wtp/web-resources/META-INF/maven/com.shoppingmall/biz/pom.xml @@ -1,145 +1,112 @@ - - 4.0.0 - com.shoppingmall - biz - ShoppingMall - war - 1.0.0-BUILD-SNAPSHOT - - 1.6 - 3.1.1.RELEASE - 1.6.10 - 1.6.6 - - - - - org.springframework - spring-context - ${org.springframework-version} - - - - commons-logging - commons-logging - - - - - org.springframework - spring-webmvc - ${org.springframework-version} - - - - - org.aspectj - aspectjrt - ${org.aspectj-version} - - - - - org.slf4j - slf4j-api - ${org.slf4j-version} - - - org.slf4j - jcl-over-slf4j - ${org.slf4j-version} - runtime - - - org.slf4j - slf4j-log4j12 - ${org.slf4j-version} - runtime - - - log4j - log4j - 1.2.15 - - - javax.mail - mail - - - javax.jms - jms - - - com.sun.jdmk - jmxtools - - - com.sun.jmx - jmxri - - - runtime - + + 4.0.0 + com.shoppingmall + biz + ShoppingMall + war + 1.0.0-BUILD-SNAPSHOT + + 1.8 + 5.3.23 + 1.9.9.1 + 1.7.36 + 4.13.2 + + + + + org.springframework + spring-jdbc + 5.3.24 + - - - javax.inject - javax.inject - 1 - - - - - javax.servlet - servlet-api - 2.5 - provided - - - javax.servlet.jsp - jsp-api - 2.1 - provided - - - javax.servlet - jstl - 1.2 - - - - - junit - junit - 4.7 - test - - + + + org.springframework + spring-context + ${spring.version} + + + org.springframework + spring-webmvc + ${spring.version} + + + + + org.aspectj + aspectjrt + ${aspectj.version} + + + + + org.slf4j + slf4j-api + ${slf4j.version} + + + org.slf4j + jcl-over-slf4j + ${slf4j.version} + + + org.slf4j + slf4j-log4j12 + ${slf4j.version} + + + log4j + log4j + 1.2.17 + + + + + javax.inject + javax.inject + 1 + + + + + javax.servlet + javax.servlet-api + 4.0.1 + provided + + + javax.servlet + javax.servlet.jsp-api + 2.3.1 + provided + + + javax.servlet + jstl + 1.2 + + + + + junit + junit + ${junit.version} + test + + - - maven-eclipse-plugin - 2.9 - - - org.springframework.ide.eclipse.core.springnature - - - org.springframework.ide.eclipse.core.springbuilder - - true - true - - org.apache.maven.plugins maven-compiler-plugin - 2.5.1 + 3.8.1 - 1.6 - 1.6 + ${java.version} + ${java.version} -Xlint:all true true @@ -148,7 +115,7 @@ org.codehaus.mojo exec-maven-plugin - 1.2.1 + 1.6.0 org.test.int1.Main