📌 idForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- /jsp3/src/main/webapp/view/member/idForm.jsp --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>아이디 찾기</title>
<%--
현재 url 정보를 기준으로 상대 경로를 설정해야한다.
<http://localhost:8088/jsp3/css/main.css>
<http://localhost:8088/jsp3/member/idForm>
--%>
<link rel="stylesheet" href="../css/main.css">
</head>
<body>
<h3>아이디 찾기</h3>
<form action="id" method="post">
<table>
<tr><th>이메일</th><td><input type="text" name="email"></td></tr>
<tr><th>전화번호</th><td><input type="text" name="tel"></td></tr>
<tr><td colspan="2"><input type="submit" value="아이디 찾기"></td></tr>
</table>
</form>
</body>
</html>
📌 SiteMeshFilter.java 추가
sitemesh : 프레임워크. 화면의 공통 부분을 코딩한 jsp 페이지를 설정.
1. sitemesh-3.0.1.jar 파일을 /WEB-INF/lib/ 폴더(톰켓에서 쓸 수 있도록 미리 약속되어 있는 폴더)에 복사.
2. SiteMeshFilter 클래스 파일 코딩
- ConfigurableSiteMeshFilter 상속 받음 : sitemesh 설정을 위한 클래스
- addDecoratorPath : 화면의 공통 부분을 코딩한 jsp 파일 설정
/* : 모든 url 요청. jsp2/model1/member/loginForm.jsp
- addExcludedPath("/member/memberimg*") : url이 /member/memberimg로 시작하는 경우 layout.jsp 페이지 적용 안함.
3. layoyt.jsp 코딩
package sitemesh;
import javax.servlet.annotation.WebFilter;
import org.sitemesh.builder.SiteMeshFilterBuilder;
import org.sitemesh.config.ConfigurableSiteMeshFilter;
@WebFilter("/*")
public class SiteMeshFilter extends ConfigurableSiteMeshFilter {
@Override
protected void applyCustomConfiguration(SiteMeshFilterBuilder builder) {
builder.addDecoratorPath("/*","/layout/layout.jsp")
.addExcludedPath("/member/memberimg*")
.addExcludedPath("/member/idForm*")
.addExcludedPath("/member/pwForm*");
}
}
📌 pwForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- /jsp3/src/main/webapp/view/member/pwForm.jsp
pw.jsp 구현 : 파라미터값에 해당하는 비밀번호를 db에서 읽기
화면에 비밀번호 출력.
현재 url 정보를 기준으로 상대 경로를 설정해야한다.
<http://localhost:8088/jsp3/css/main.css>
<http://localhost:8088/jsp3/member/idForm>
--%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>비밀번호 찾기</title>
<link rel="stylesheet" href="../css/main.css">
</head>
<body>
<h3>비밀번호 찾기</h3>
<form action="pw" method="post">
<table>
<tr><th>아이디</th><td><input type="text" name="id"></td></tr>
<tr><th>이메일</th><td><input type="text" name="email"></td></tr>
<tr><th>전화번호</th><td><input type="text" name="tel"></td></tr>
<tr><td colspan="2"><input type="submit" value="비밀번호 찾기"></td></tr>
</table>
</form>
</body>
</html>
📌 MemberController.java - 내용 추가
@RequestMapping("idForm")
public String idForm (HttpServletRequest request, HttpServletResponse response) {
return "/view/member/idForm.jsp";
}
@RequestMapping("pwForm")
public String pwForm (HttpServletRequest request, HttpServletResponse response) {
return "/view/member/pwForm.jsp";
}
📌 MemberController.java - 내용 추가
- id
1. 파라미터 저장. email, tel
2. db에서 email과 tel을 이용하여 id값을 리턴
id=MemberDao.idSearch(email,tel)
3. id 값이 존재
id 값을 화면에 출력
opener의 id에 값을 저장. 현재 화면 닫기
4. id 값이 없는 경우
정보에 맞는 id를 찾을 수 없습니다. 메세지 출력후
idForm로 페이지 이동
@RequestMapping("id")
public String id (HttpServletRequest request, HttpServletResponse response) {
String email = request.getParameter("email");
String tel = request.getParameter("tel");
String id = new MemberDao().idSearch(email, tel);
if(id == null) {
request.setAttribute("msg","정보에 맞는 id를 찾을 수 없습니다.");
request.setAttribute("url","idForm");
return "/view/alert.jsp";
}
request.setAttribute("id",id);
return "/view/member/id.jsp";
}
- pw
1.파라미터값(id, email, tel) 저장
2.파라미터값(id, email, tel) 에 해당하는 비밀번호를 db에서 읽기
3.화면에 비밀번호 출력.
@RequestMapping("pw")
public String pw (HttpServletRequest request, HttpServletResponse response) {
String id = request.getParameter("id");
String email = request.getParameter("email");
String tel = request.getParameter("tel");
String pass = new MemberDao().pwSearch(id, email, tel);
if(pass == null) { //맞는 pass가 없을때
request.setAttribute("msg","정보에 맞는 pass를 찾을 수 없습니다.");
request.setAttribute("url","pwForm");
return "/view/alert.jsp";
} //pass가 존재할 때
request.setAttribute("pass",pass);
return "/view/member/pw.jsp";
}
📌 SiteMeshFilter.java 추가
package sitemesh;
import javax.servlet.annotation.WebFilter;
import org.sitemesh.builder.SiteMeshFilterBuilder;
import org.sitemesh.config.ConfigurableSiteMeshFilter;
/*
sitemesh : 프레임워크. 화면의 공통 부분을 코딩한 jsp 페이지를 설정.
1. sitemesh-3.0.1.jar 파일을 /WEB-INF/lib/ 폴더(톰켓에서 쓸 수 있도록 미리 약속되어 있는 폴더)에 복사.
2. SiteMeshFilter 클래스 파일 코딩
- ConfigurableSiteMeshFilter 상속 받음 : sitemesh 설정을 위한 클래스
- addDecoratorPath : 화면의 공통 부분을 코딩한 jsp 파일 설정
/* : 모든 url 요청. jsp2/model1/member/loginForm.jsp
- addExcludedPath("/member/memberimg*") : url이 /member/memberimg로 시작하는 경우 layout.jsp 페이지 적용 안함.
3. layoyt.jsp 코딩
*/
@WebFilter("/*")
public class SiteMeshFilter extends ConfigurableSiteMeshFilter {
@Override
protected void applyCustomConfiguration(SiteMeshFilterBuilder builder) {
builder.addDecoratorPath("/*","/layout/layout.jsp")
.addExcludedPath("/member/memberimg*")
.addExcludedPath("/member/idForm*")
.addExcludedPath("/member/pwForm*")
.addExcludedPath("/member/id*")
.addExcludedPath("/member/pw*");
}
}
📌
- id.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- /jsp3/src/main/webapp/view/member/id.jsp --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>아이디 찾기</title>
<link rel="stylesheet" href="../css/main.css">
<script type="text/javascript">
function idsend(id) {
opener.document.f.id.value=id
self.close()
}
</script>
</head>
<body>
<table>
<tr><th>아이디</th>
<td>${id}</td></tr>
<tr><td colspan="2"><input type="button" value="아이디 전송" onclick="idsend('${id}')"></td></tr>
</table>
</body>
</html>
- pw.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- /jsp3/src/main/webapp/view/member/pw.jsp --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>비밀번호 찾기</title>
<link rel="stylesheet" href="../css/main.css">
</head>
<body>
<table>
<tr><th>비밀번호</th>
<td>${pass}</td></tr>
<tr><td colspan="2"><input type="button" value="닫기" onclick="self.close()"></td></tr>
</table>
</body>
</html>
'수업(국비지원) > JSP' 카테고리의 다른 글
| [JSP] MVC MODEL2 방식 - 아이디 중복체크(joinForm, idchk) (0) | 2023.04.20 |
|---|---|
| [JSP] MVC MODEL2 방식 - 비밀번호 변경(passwordForm) (0) | 2023.04.20 |
| [JSP] MVC MODEL2 방식 - 사진 등록(memberimg), 사진 수정(imgupload) (0) | 2023.04.19 |
| [JSP] MVC MODEL2 방식 - 회원 정보(list) (0) | 2023.04.19 |
| [JSP] MVC MODEL2 방식 - 회원정보 삭제(deletForm) (0) | 2023.04.19 |