이걸 열심히 배우면 쇼핑몰 하나쯤은 거뜬히 만들 수 있겠지?ㅋ
혹시나 나중에 친구가 쇼핑몰을 개업해서 나에게 홈페이지와 전산관리를 부탁할지도 모르니 열심히 공부해야 겠다. 그때 내가 도움이 될 수 있게..ㅋ 하지만 내 머리가 이리도 딸릴 줄이야...ㅠ_ㅠ;
아직 머리가 잘 돌아갈려면 내 공부 스타일이 한참 멀었다는 것을 오늘도 새삼 느낀다..
1. loginForm.jsp
<%
String id;
if(session.getAttribute("id")!=null){
id = "세션값 있음";
}else{
id = "세션값 없음";
}
%>
<h1>로그인</h1>
<form action="loginPro.jsp" method="post">
아이디: <input type="text" name="id"><br>
패스워드: <input type="password" name="passwd"><br>
<input type="submit" value="로그인">
<input type="button" value="로그아웃" onclick="location.href='logout.jsp'"><br>
<input type="button" value="회원가입" onclick="location.href='insertForm.jsp'"><br>
</form>
<%=id %>
2. loginPro.jsp
<%
//id passwd 가져오기
String id = request.getParameter("id");
String passwd = request.getParameter("passwd");
//디비작업 객체 생성 dbPro
//int check=메서드 userCheck(id,passwd) 1,0,-1인지
MemberDBBean dbpro = new MemberDBBean();
int check = dbpro.userCheck(id,passwd);
//check==1 세션생성"id" 이동 main.jsp
//check==0 비밀번호틀림 뒤로이동
//check==-1 아이디없음 뒤로이동
if(check==1){
session.setAttribute("id", id);
%>
<script type="text/javascript">
alert("세션값 생성");
location.href="main.jsp";
</script>
<%
}else if(check==0){
%><script type="text/javascript">
alert("비밀번호 틀림");
history.back();
</script>
<%
}else{
%><script type="text/javascript">
alert("아이디 없음");
history.back();
</script>
<%
}
%>
3. insertForm.jsp
<h1>회원가입</h1>
<form action="insertPro.jsp" method="post">
아이디: <input type="text" name="id"><br>
패스워드: <input type="password" name="passwd"><br>
이름: <input type="text" name="name"><br>
<input type="submit" value="전송"><br>
</form>
4. insertPro.jsp
<%
//한글처리
request.setCharacterEncoding("utf-8");
//패키지 member 파일이름 MemberDataBean
//멤버변수 id passwd name reg_date
//액션태그 useBean 이동 객체 생성 member
//액션태그 setProperty 폼=>자바빈저장
%>
<jsp:useBean id="member" class="member.MemberDataBean"/>
<jsp:setProperty property="*" name="member" />
아이디:<jsp:getProperty property="id" name="member"/><br>
패스워드:<jsp:getProperty property="passwd" name="member"/><br>
이름:<jsp:getProperty property="name" name="member"/><br>
<%
member.setReg_date(new Timestamp(System.currentTimeMillis()));
out.println("날짜: "+member.getReg_date());
//디비작업 패키지 member 파일이름 MemberDBBean
//객체생성 dbPro
MemberDBBean dbpro = new MemberDBBean();
//메서드 insertMember(member)
dbpro.insertMember(member);
//이동 회원가입성공 loginForm.jsp
%><script type="text/javascript">
alert("회원가입 성공!");
location.href="loginForm.jsp";
</script><%
%>
5. updateForm.jsp
<%
//세션 값 가져오기
String id=(String)session.getAttribute("id");
//세션값 없으면 loginForm.jsp이동
if(id==null){
response.sendRedirect("loginForm.jsp");
}
//디비객체생성 dbPro
MemberDBBean dbPro=new MemberDBBean();
//자바빈 member=getMember(id)메서드 호출
MemberDataBean member=dbPro.getMember(id);
%>
<h1>회원정보수정</h1>
<form action="updatePro.jsp" method="post">
아이디:<%=member.getId() %>
<input type="hidden" name="id" value="<%=member.getId()%>"><br>
패스워드:<input type="password" name="passwd"><br>
이름:<input type="text" name="name" value="<%=member.getName()%>"><br>
<input type="submit" value="회원수정">
</form>
6. updatePro.jsp
<%
//한글처리
request.setCharacterEncoding("utf-8");
//액션태그 자바빈 객체생성 member
//액션태그 폼 => 자바빈 저장
%>
<jsp:useBean id="member" class="member.MemberDataBean"/>
<jsp:setProperty property="*" name="member"/>
<%
//디비객체생성 dbPro
MemberDBBean dbPro=new MemberDBBean();
//int check =수정메서드호출 updateMember(member)
int check=dbPro.updateMember(member);
//check==1 수정완료 main.jsp 이동
//check==0 비밀번호 틀림 뒤로이동
if(check==1){
%>
<script type="text/javascript">
alert("수정완료");
location.href="main.jsp";
</script>
<%
}else{
%>
<script type="text/javascript">
alert("비밀번호틀림");
history.back();
</script>
<%
}
%>
7. deleteForm.jsp
<%
//세션값 가져오기
String id=(String)session.getAttribute("id");
//세션값 없으면 loginForm.jsp 이동
if(id==null){
response.sendRedirect("loginForm.jsp");
}
%>
<h1>회원정보삭제</h1>
<form action="deletePro.jsp" method="post">
아이디: <%=id %><br>
<input type="hidden" name="id" value="<%=id %>"><br>
패스워드: <input type="password" name="passwd"><br>
<input type="submit" value="회원삭제"><br>
</form>
8. deletePro.jsp
<%
//세션값 가져오기
String id=(String)session.getAttribute("id");
//세션값 없으면 loginForm.jsp 이동
if(id==null){
response.sendRedirect("loginForm.jsp");
}
//passwd값 가져오기
String passwd = request.getParameter("passwd");
//디비객체생성 dbPro
MemberDBBean dbPro = new MemberDBBean();
// int check = deleteMember(id,passwd)
int check = dbPro.deleteMember(id, passwd);
// check==1 세션값 삭제, 삭제성공메시지, loginForm.jsp 이동
// check==0 비밀번호틀림. 뒤로이동
if(check==1){
session.invalidate();
%>
<script type="text/javascript">
alert("삭제 성공!");
location.href="loginForm.jsp";
</script>
<%
}else if(check==0){
%><script type="text/javascript">
alert("비밀번호 틀림");
history.back();
</script>
<%
}
%>
9. main.jsp
<%
//세션값 가져오기
String id=(String)session.getAttribute("id");
//세션값이 없으면 loginForm.jsp이동
if(id==null){
response.sendRedirect("loginForm.jsp");
}
%>
<%=id %>님이 로그인하셨습니다.<br>
<a href="info.jsp">회원정보조회</a><br>
<a href="updateForm.jsp">회원정보수정</a><br>
<a href="deleteForm.jsp">회원정보삭제</a><br>
<%
if(id!=null){
if(id.equals("admin")){
%>
<a href="list.jsp">회원목록</a>
<%
}
}
%>
10. info.jsp
<%
//세션값 가져오기
String id=(String)session.getAttribute("id");
//세션값 없으면 loginForm.jsp이동
if(id==null){
response.sendRedirect("loginForm.jsp");
}
//디비객체 생성 dbPro
MemberDBBean dbPro=new MemberDBBean();
//자바빈 member=메서드호출 getMember(id)
MemberDataBean member=dbPro.getMember(id);
%>
<h1>회원정보조회</h1>
아이디:<%=member.getId() %><br>
비밀번호:<%=member.getPasswd() %><br>
이름:<%=member.getName() %><br>
가입일:<%=member.getReg_date() %><br>
<a href="main.jsp">메인화면으로</a>
11. list.jsp (다음 시간에 바뀔 예정임)
<%
//세션값 가져오기
String id = (String)session.getAttribute("id");
//세션값 없으면 loginForm.jsp이동
if(id==null){
response.sendRedirect("loginForm.jsp");
}
//디비객체 생성 dbPro
MemberDBBean dbPro = new MemberDBBean();
List memberList=null;
//memberList = getMemberList() 회원전체가져오기
memberList = dbPro.getMemberList();
%>
<h1>회원목록</h1>
<h3><a href="main.jsp">메인화면으로</a></h3>
<table border="1">
<tr><td>아이디</td><td>비밀번호</td><td>이름</td><td>가입일</td></tr>
<%
for(int i=0; i<memberList.size(); i++){
MemberDataBean member = (MemberDataBean) memberList.get(i);
%>
<tr><td><%=member.getId() %></td>
<td><%=member.getPasswd() %></td>
<td><%=member.getName() %></td>
<td><%=member.getReg_date() %></td></tr>
<%}
%>
</table>
* java파일 패키지 만드는 경로(member 패키지)
12. MemberDataBean.java
public class MemberDataBean {
private String id;
private String passwd;
private String name;
private Timestamp reg_date;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Timestamp getReg_date() {
return reg_date;
}
public void setReg_date(Timestamp reg_date) {
this.reg_date = reg_date;
}
}
13. MemberDBBean.java
public class MemberDBBean {
//디비연결 1,2단계
private Connection getConnection() throws Exception{
Connection con=null;
String url="jdbc:mysql://localhost:3306/jspbeginner";
String user="jspid";
String pwd="jsppass";
//1단계 드라이버로더
Class.forName("com.mysql.jdbc.Driver");
//2단계 디비연결
con=DriverManager.getConnection(url,user,pwd);
return con;
}
//회원가입
public void insertMember(MemberDataBean member){
Connection con=null;
PreparedStatement pstmt=null;
String sql="";
try {
//1,2단계 메서드 호출
con=getConnection();
//3단계 insert
sql="insert into member(id,passwd,name,reg_date) values(?,?,?,?)";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, member.getId());
pstmt.setString(2, member.getPasswd());
pstmt.setString(3, member.getName());
pstmt.setTimestamp(4, member.getReg_date());
//4단계 실행
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(pstmt!=null)try{pstmt.close();}catch(SQLException ex){}
if(con!=null)try{con.close();}catch(SQLException ex){}
}
}
//회원삭제
public int deleteMember(String id, String passwd){
int check=0;
Connection con=null;
PreparedStatement pstmt=null;
String sql="";
ResultSet rs=null;
try{
//1,2단계 메서드 호출
con=getConnection();
// 3단계 : id에 해당하는 passwd를 가져오는 sql(sql 생성)
sql = "select passwd from member where id=?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, id);
// 4단계 실행 => rs저장
rs = pstmt.executeQuery();
// 5단계 rs 데이터있으면 id있음
// 폼비밀번호 rs비밀번호 비교 맞으면 => 수정
// 틀리면 => 비밀번호틀림
// 없으면 id없음
if(rs.next()){
//id있음
String dbPass=rs.getString("passwd");
if(passwd.equals(dbPass)){
//비밀번호 맞음 수정
sql = "delete from member where id=?";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
// 4단계 실행
pstmt.executeUpdate(); //insert,update,delete
check=1;
}else{
check=0;
}
}
}catch (Exception e) {
e.printStackTrace();
}finally{
if(rs!=null)try{rs.close();}catch(SQLException ex){}
if(pstmt!=null)try{pstmt.close();}catch(SQLException ex){}
if(con!=null)try{con.close();}catch(SQLException ex){}
}
return check;
}
//유저체크
public int userCheck(String id,String passwd){
int check=-1;
Connection con=null;
PreparedStatement pstmt=null;
String sql="";
ResultSet rs=null;
try {
//1,2단계 메서드 호출
con=getConnection();
//3단계 id에 해당하는 passwd가져오기
sql="select passwd from member where id=?";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
//4단계 rs저장
rs=pstmt.executeQuery();
//5단계 데이터가 있으면
// 비밀번호 비교 맞으면 check=1
// 틀리면 check=0
// 없으면 아이디 없음 check=-1
if(rs.next()){
//아이디있음
String dbPass=rs.getString("passwd");
if(passwd.equals(dbPass)){
check=1;//비밀번호맞음
}else{
check=0;//비밀번호틀림
}
}else{
check=-1;//아이디없음
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if(rs!=null)try{rs.close();}catch(SQLException ex){}
if(pstmt!=null)try{pstmt.close();}catch(SQLException ex){}
if(con!=null)try{con.close();}catch(SQLException ex){}
}
return check;
}
//회원정보가져오기
public MemberDataBean getMember(String id){
Connection con=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
String sql="";
MemberDataBean member=null;
try {
//1,2단계 메서드호출
con=getConnection();
//3단계 id에 해당하는 모든정보 가져오기
sql="select * from member where id=?";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
//4단계 rs저장
rs=pstmt.executeQuery();
//5단계 데이터가 있으면
//자바빈 생성 rs=>자바빈저장
if(rs.next()){
member=new MemberDataBean();
member.setId(rs.getString("id"));
member.setPasswd(rs.getString("passwd"));
member.setName(rs.getString("name"));
member.setReg_date(rs.getTimestamp("reg_date"));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if(rs!=null)try{rs.close();}catch(SQLException ex){}
if(pstmt!=null)try{pstmt.close();}catch(SQLException ex){}
if(con!=null)try{con.close();}catch(SQLException ex){}
}
return member;
}
//회원수정하기
public int updateMember(MemberDataBean member){
Connection con=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
String sql="";
int check=-1;
try {
//1,2단계 연결메서드 호출
con=getConnection();
//3단계 id에 해당하는 passwd가져오기
sql="select passwd from member where id=?";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, member.getId());
//4단계 rs저장
rs=pstmt.executeQuery();
//5단계 rs데이터가 있으면
// 비밀번호비교 맞으면 check=1
// //3단계 update //4단계 실행
// 틀리면 check=0
if(rs.next()){
String dbPass=rs.getString("passwd");
if(member.getPasswd().equals(dbPass)){
check=1;
//3단계
sql="update member set name=? where id=?";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, member.getName());
pstmt.setString(2, member.getId());
//4단계
pstmt.executeUpdate();
}else{
check=0;
}
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if(rs!=null)try{rs.close();}catch(SQLException ex){}
if(pstmt!=null)try{pstmt.close();}catch(SQLException ex){}
if(con!=null)try{con.close();}catch(SQLException ex){}
}
return check;
}
//회원리스트
public List getMemberList(){
List memberList = new ArrayList<>();
Connection con = null;
String sql="";
PreparedStatement pstmt=null; //sql문장을 먼저 미리 쓰겠다
ResultSet rs = null;
try {
//1,2단계 디비연결 메서드 호출
con = getConnection();
//3단계 sql
sql="select * from member";
pstmt = con.prepareStatement(sql);
//4단계 rs저장
rs=pstmt.executeQuery();
//5단계 데이터 있는 경우
// 자바빈객체생성
// rs => 자바빈저장
while(rs.next()){ //첫번째행
MemberDataBean member = new MemberDataBean(); //한사람꺼에대한 기억장소를 생성
member.setId(rs.getString("id"));
member.setPasswd(rs.getString("passwd"));
member.setName(rs.getString("name"));
member.setReg_date(rs.getTimestamp("reg_date"));
// 자바빈 => memberList한칸 저장
memberList.add(member);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
}
return memberList;
}
}//클래스
(ㅇ_ㅇ)?
'N스크린하이브리드앱과정 > JSP:Model-1' 카테고리의 다른 글
[7주차] JSP: 게시판 만들기 총정리 (2) | 2013.09.03 |
---|---|
[8주][1일][3~6th] JSP: HTML홈피를 JSP홈피로 바꾸기 (0) | 2013.09.02 |
[6주][1일][5~8th] JSP: 회원가입폼 분리시키기 (0) | 2013.08.19 |
[5주][2일][5~8th] JSP: 회원수정, 회원삭제, 로그인 폼 구현하기 (0) | 2013.08.13 |
[5주][1일][5~8th] mysql 실습(이어서), mysql을 java(이클립스)와 연동하기 (0) | 2013.08.12 |