본문 바로가기
웹 프로그래밍(풀스택-->java)/웹프로그래밍(백엔드-->java)

24. Jsp와 데이터베이스 연동 9

by 백엔드개발자0107 2021. 12. 1.

지난시간에 memberUpdateForm.jsp까지 만들었다. 요번시간에는 MemberUpdate처리 하는 시간까지 가져볼것이다.

 

 

여기서 회원 수정하기 버튼을 눌렀을떄 , 회원정보수정하기 로 넘어가고,

 

 

회원아이디를 기준으로 ,패스워드 값을 읽어와서 기존패스워드값과 같을떄만, 수정이 되게끔 했다.

 

그런데 , 아이디는 박스가 없기 떄문에  데이터가 넘어갈수가 없다 . 이런거를 대비해서 만든 데이터가

 

input type:"hidden"이라는 데이터가 있다. 여기 이 데이터를 쓰면 우리가 눈에 보이지 않게 데이터가 넘어가 준다.

 

그래서 편리하다. 대신 안보이게 아이디값을 처리해주는 것으로 가자

 

<input type = "hidden" name="id" value="<%=mbean.getId()%>">

이런 꼴이다. 하지만 조금 헷갈렸다... Input Type="hidden"의 개념이 조금 헷달렸고 아래 링크를 보니 조금 이해가 되었다..

 

http://tcpschool.com/html-input-types/hidden

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

 


팁:

 

jsp를 작성하다보면, java를 작성하다가 script를 작성하는게 여간 불편한게 아니다.

 

고로 , PrintWriter out = response.getWriter()메소드를 자주 이용한다.

 

아래 링크를 잘 보자..!

 

https://kimcomdong.tistory.com/entry/jsp-servlet-PrintWriter-out-responsegetWriter

 

[jsp / servlet] PrintWriter out = response.getWriter();

liketh.tistory.com/entry/PrintWriter-out-responsegetWriter-넌-왜-선언된거니 PrintWriter out = response.getWriter(); 넌 왜 선언된거니? response.setContentType("text/html;charset=euc-kr"); PrintWriter..

kimcomdong.tistory.com


MemberUpdateForm.jsp

 

<%@page import="db.MemberBean"%>
<%@page import="db.MemberDAO"%>
<%@page import="db.MemberBean"%>
<%@page import="db.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--
		0. memberList에서 넘긴 id를 받아줌. 
	    1. 데이터베이스에서 한 회원의 정보를 가져온다. 
  -->
  
  <%
  String id = request.getParameter("id");
  //MemberList에서 넘긴 , id값을받아오는것이다. 
  MemberDAO mdao = new MemberDAO();
  
  //자, 여러개의 MemberBean이 모인 가변길이의 클래스집합은 Vector로 받지만,
  //자 ,한개의 클래스는 MemberBean으로 만 받는다.
  
  //두사람부터는 무조건 벡터쓴다. 
  
  MemberBean mbean = mdao.oneSelectMember(id);
  
  
  %>
<!-- 		2. 테이블 태그를 이용하여 화면에 회원의 정보를 출력 
 -->

<center>

<h2>회원정보수정하기 </h2>


<table width="400" border ="1">
<form action="MemberUpdateProc.jsp" method="post">

<tr height="50">
<td align="center" width="150">아이디 </td>
<td align="center" width="250"><%=mbean.getId()%> </td>
</tr>
<tr height="50">
<td align="center" width="150">이메일  </td>
<td align="center" width="250"> <input type="email" name="email" value="<%=mbean.getEmail()%>">  </td>
</tr>
<tr height="50">
<td align="center" width="150">전화번호  </td>
<td align="center" width="250"><input type="tel" name="tel" value="<%=mbean.getTel()%>"> </td>
</tr>
<tr height="50">
<td align="center" width="150">패스워드   </td>
<td align="center" width="250"><input type="password" name="pass1" > </td>
</tr>

<tr height="50">
<td align="center" colspan="2">  
<input type = "hidden" name="id" value="<%=mbean.getId()%>">
<input type="submit" value="회원 수정하기"> &nbsp;&nbsp;</form>
<button onclick="location.href='MemberList.jsp' ">회원전체보기 </button>
</td>
</tr>

</table>

</center>

</body>
</html>

 

MemberUpdateProc.jsp

 

<%@page import="java.io.PrintWriter"%>
<%@page import="db.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%
request.setCharacterEncoding("UTF-8");
%>

<jsp:useBean id="mbean" class="db.MemberBean">
<jsp:setProperty name="mbean" property = "*"/>
</jsp:useBean><!-- 
기존에 있는 데이터만 데이터가들어가고 mbean에 없는 데이터는 null만 들어간다. -->

<%
String id = request.getParameter("id");
MemberDAO mdao = new MemberDAO();
//스트링 타입으로 저장되어있는 패스워드를 가져옴 (데이터베이스에서 가져온 pass 값이 저장 )
String pass = mdao.getPass(id);

//수정하기 위해서 작성한 패스워드값과 기존데이터베이스에서 가져온패스워드 값을 비교 
if(mbean.getPass1().equals(pass)){//기존 패스와 데이터베이스패스가 같다면 member테이블을 수정 

	
	
	
}else{
	
		PrintWriter script  = response.getWriter();
		script.println("<script>");
		script.println("alert('패스워드가 맞지 않습니다 다시 확인해주세요')");
		script.println("history.go(-1)");
		script.println("</script>");
		
}

%>



</body>
</html>