프로그래밍 정리/JSP, Servlet, DB(oracle)

웹 프로그래밍 14-1(JSP,DB,servlet)-가입, 로그인, 수정 페이지

Wooni0477 2020. 1. 3. 14:13
반응형

*가입, 로그인, 로그아웃 페이지를 만들어보자.

위와같이 루틴을 돌려고 한다.

html에서 form을 이용하여 값을 입력한다.

servlet에서 입력한 값을 처리하고 저장

jsp에서 처리한 값들을 출력

※직접 해보기 위해 소스는 마지막 줄에 올려두었다.

출력화면만 보고 자기가 직접 만들어보자

*가입

위와같은 루틴을 이용하여 만들어 보자.

join.html

가입을 하기위해 form과 input을 이용하여 값을 받아

JoinOk에 넘겨준다.

JoinOk.java(servlet)

보내져온 값들을 DB에 저장한다.

단, 중복된 아이디가 있을경우 다시 join.html로 이동한다.

JoinResult.jsp

보내져온 값들이 정상적으로 저장되었다고 출력한다.

로그인 페이지 링크를 만든다.

DB에 저장된것을 확인한다.

=============================소스===============================

join.html

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

<!DOCTYPE html>

<html>

<head>

<meta charset="EUC-KR">

<title>Insert title here</title>

</head>

<body>

<form action="joinOk" method="POST">

이름 <input type="text" name="name" size = "10"> <br />

아이디 <input type="text" name="id" size = "10"> <br />

비밀번호 <input type="password" name="pw" size = "20"> <br />

전화번호 <select name="num1">

<option value="">----선택----</option>

<option value="010">010</option>

<option value="011">011</option>

<option value="017">017</option>

<option value="019">019</option>

</select>

<input type="text" name="num2" size="10">

<input type="text" name="num3" size="10"><br />

성별 <br />

남 <input type="radio" name="se" value="man"> 여 <input type="radio" name="se" value="여"> <br />

<input type="submit" value="회원가입"><br />

<input type="reset" value="취소"><br />

</form>

</body>

</html>

JoinOk.java

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

package com.java.homepage;

import java.io.IOException;

import java.io.PrintWriter;

import java.sql.*;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

* Servlet implementation class joinOk

*/

@WebServlet("/joinOk")

public class joinOk extends HttpServlet {

//db connect

Connection conn = null;

Statement statement;

ResultSet resultSet;

String post_name;

String post_id;

String post_pw;

String post_num1;

String post_num2;

String post_num3;

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public joinOk() {

super();

// TODO Auto-generated constructor stub

}

/**

* @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);

request.setCharacterEncoding("EUC-KR");

//response.setContentType("text/html;charset='EUC-KR'");

System.out.println("doPost");

//request info

post_name = request.getParameter("name");

post_id = request.getParameter("id");

post_pw = request.getParameter("pw");

post_num1 = request.getParameter("num1");

post_num2 = request.getParameter("num2");

post_num3 = request.getParameter("num3");

//db

String driver = "oracle.jdbc.driver.OracleDriver";

String url = "jdbc:oracle:thin:@localhost:1521:clouddb";

String uid = "testid";

String upw = "password";

String query_select = "select * from member";

String query_insert = "insert into MEMBER(id,pw,name,phone) values('"+post_id+"','"+post_pw+"','"+post_name+"','"+post_num1+"-"+post_num2+"-"+post_num3+"')";

try{

System.out.println("try 시작");

Class.forName(driver);

conn = DriverManager.getConnection(url,uid,upw);

statement = conn.createStatement();

resultSet = statement.executeQuery(query_select);

boolean id_exist = true;

//db비교

while(resultSet.next())

{

String orgin_id = resultSet.getString("id");

String orgin_pw = resultSet.getString("pw");

//아이디 비교

if(orgin_id.equals(post_id))

{

//비밀번호 비교

id_exist = false;

}

}

//만약 아이디가 없다면

if(id_exist)

{

//아이디추가

resultSet = statement.executeQuery(query_insert);

System.out.println("가입완료!");

//가입완료후 페이지

response.sendRedirect("joinResult.jsp");

}

else

{

System.out.println("가입 실패!");

response.sendRedirect("join.html");

}

}

catch(SQLException e)

{

e.printStackTrace();

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally

{

try {

if(conn != null) conn.close();

if(statement != null) statement.close();

if(resultSet != null) resultSet.close();

}

catch(Exception e){

e.getStackTrace();

}

}

}

}

joinResult.jsp

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<%@ page language="java" contentType="text/html; charset=EUC-KR"

pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<h1>회원가입이 되었습니다!</h1><br />

<a href="login.html">로그인</a>

</body>

</html>


반응형