습관제작소
22-09-07 JavaSpringBoot 로그인 실습(HTML), 회원목록(JSP) 본문
SMHRD or ITSchool/JavaSpring and Boot
22-09-07 JavaSpringBoot 로그인 실습(HTML), 회원목록(JSP)
KUDO 2022. 9. 16. 10:141. 로그인 실습
- BoardController.java
package com.smhrd.controller;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.smhrd.domain.Member;
import com.smhrd.mapper.MemberMapper;
@Controller
public class MemberController {
@Autowired
private MemberMapper mapper;
@RequestMapping("/goJoin.do")
public String goJoin() {
return "view/join"; // Scan 만들자!!!
}
@RequestMapping("/logout.do")
public String logout() {
return "index";
}
@RequestMapping("/login.do")
public String login(Member member, HttpSession session) {
System.out.println(member);
Member info = mapper.login(member);
session.setAttribute("info", info);
System.out.println(info);
if(info!=null) {
return "view/main";
}else {
return "index";
}
}
@RequestMapping("/join.do")
public String join(Member mamber, Model model) {
// 1. 파라미터 수집
// 2. SQL쿼리 정의. mapper interface에 메서드 만들기
// 3. 메서드 사용
int cnt=mapper.join(mamber);
// 4. 다음 view 리턴
if(cnt > 0) {
// 성공
return "index";
}else {
// 실패
return "view/join";
}
}
}
- MemberMapper.java
package com.smhrd.mapper;
import org.apache.ibatis.annotations.Mapper;
import com.smhrd.domain.Member;
@Mapper
public interface MemberMapper {
public int join(Member member); // < 집어 넣어줄게 있기 때문에 member넣기
public Member login(Member member);
}
- Member.java
package com.smhrd.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Member {
private String id;
private String pw;
private String nick;
private String address;
}
- MemberMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.smhrd.mapper.MemberMapper"> <!-- << 찾아야할 클래스 경로를 제대로 확인 -->
<insert id="join" parameterType="com.smhrd.domain.Member" >
insert into member
values(#{id}, #{pw}, #{nick}, #{address})
</insert>
<select id="login" resultType="com.smhrd.domain.Member" parameterType="com.smhrd.domain.Member">
select * from member where #{id}=id and #{pw}=pw
</select>
</mapper>
- main.html
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>[[${session.info.id}]]님 환영합니다.</h1>
<a href="logout.do">로드아웃</a>
</body>
</html>
- index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1> 로그인 페이지 </h1>
<form action="login.do" method="post">
ID : <input type="text" name="id">
<br>
PW : <input type="text" name="pw">
<br>
<br>
<button>로그인</button></form>
<br>
<p>아이디가 없다면 <a href="goJoin.do">회원가입</a></p>
</body>
</html>
2. 회원목록(JSP)
HTML 과 JSP 사용 차이
- Thymeleaf를 제외하고 선택하여 프로젝트 생성
- 복사해서 pom.xml dependency 추가하기 < version >은 지우고 저장
- application.properties
server.port=8050
# DBCP 설정
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mysql
spring.datasource.username=root
spring.datasource.password=12345
#mapper.xml 위치 지정
mybatis.mapper-locations=/mapper/**/**.xml
#view resolver 설정
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
- SpringBoot03Application.java
package com.smhrd.application;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@MapperScan("com.smhrd.mapper")
@ComponentScan("com.smhrd.controller")
@SpringBootApplication
public class SpringBoot03Application {
public static void main(String[] args) {
SpringApplication.run(SpringBoot03Application.class, args);
}
}
- MemberController.java
package com.smhrd.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.smhrd.domain.Member;
import com.smhrd.mapper.MemberMapper;
@Controller
public class MemberController {
@Autowired
private MemberMapper mapper;
@RequestMapping("/")
public String memberList(Model model) {
List<Member> list = mapper.memberList();
model.addAttribute("list", list);
return "MemberList"; // WEB-INF/views/MemberList.jsp 로 자동 완성
}
}
- MemeberMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.smhrd.mapper.MemberMapper">
<select id="memberList" resultType="com.smhrd.domain.Member">
select * from member
</select>
</mapper>
- MemberList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>회원 목록</h1>
<table>
<tr>
<td>ID</td>
<td>NICK</td>
<td>ADDRESS</td>
</tr>
<c:forEach var="list" items="${list}">
<tr>
<td>${list.id}</td>
<td>${list.nick}</td>
<td>${list.address}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
'SMHRD or ITSchool > JavaSpring and Boot' 카테고리의 다른 글
22-09-06 JavaSpringBoot 회원가입 (0) | 2022.09.16 |
---|---|
22-09-06 JavaSpringBoot DB연결 (0) | 2022.09.06 |
22-09-05 JavaSpringBoot BoardList, Content 생성 (0) | 2022.09.06 |
22-09-05 JavaSpringBoot 환경설정(JSP, HTML 환경구축) (0) | 2022.09.05 |
22-09-02 JavaSpring Ajax 활용(게시글 삭제, 게시글 검색)/@Controller, @Restcontroller (0) | 2022.09.03 |
Comments