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

웹 프로그래밍 02(Servlet)-라이프사이클, html(form,input)

Wooni0477 2020. 1. 2. 18:15
반응형

*라이프 사이클(servlet)

서블릿 생성 후 -> 자바 리소스->패키지명->자바소스

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
import java.io.IOException;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
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 LifeCycleEx
*/
@WebServlet("/LifeCycleEx")
public class LifeCycleEx extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LifeCycleEx() {
super();
// TODO Auto-generated constructor stub
}
@Override
public void init() throws ServletException {
// TODO Auto-generated method stub
super.init();
System.out.println("init");
}
@Override
public void destroy() {
// TODO Auto-generated method stub
super.destroy();
System.out.println("destroy");
}
/**
* @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());
System.out.println("doGet");
}
/**
* @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);
System.out.println("doPost");
}
@PostConstruct
private void initPostConstruct() {
// TODO Auto-generated method stub
System.out.println("initPostConstruct");
}
@PreDestroy
private void destroyPreDestroy() {
// TODO Auto-generated method stub
System.out.println("destroyPreDestroy");
}
}
cs

-해당 소스중 메소드 설명

init() 시작할때 딱 한번 실행

initPostConstruct() init 실행하기전에 딱 한번 실행 //선처리

destroy() 종료되기 전에 딱 한번 실행 || 서블릿이 수정되어 다시 메모리에 올라갈때

destroyPreDestroy() destroy 실행된후 딱 한번 실행 //후처리

doget() 클라이언트 요청시마다 실행

dopost() 클라이언트 요청시마다 실행

===================================================================

HTML설명

*form 태그

-클라이언트가 서버에 전달할때 필요

-input 설명

type: 종류 선택

name : 서버와 이름을 공유(파라미터)

value : 값

size:글자크기

ex) 텍스트

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

ex2) 패스워드

<input type="password" name="name" size="10">

ex3) 전송 버튼

<input type="submit" value="전송">

ex4) 입력된 값들 초기화

<input type="reset" value="초기화">

ex5) 체크박스 ※동일한 체크박스에 넣고 싶을때 타입과 이름은 동일해야함

<input type="checkbox" name="hobby" value="read">독서

<input type="checkbox" name="hobby" value="cook">요리

<input type="checkbox" name="hobby" value="run">조깅

<input type="checkbox" name="hobby" value="swim">수영

<input type="checkbox" name="hobby" value="sleep">취침

ex6) 라디오체크 ※동일한 라디오에 넣고 싶을때 타입과 이름은 동일해야함

<input type="radio" name="major" value="kor">국어

<input type="radio" name="major" value="eng" checked="checked">영어 //디폴트 체크

<input type="radio" name="major" value="mat" >수학

<input type="radio" name="major" value="des" >디자인

ex7) 리스트형태

<select name="protocol">

<option value="http">http</option>

<option value="ftp" selected="selected">ftp</option>

<option value="smtp">smtp</option>

<option value="pop">pop</option>

</select>

-form액션 submit(전송)을 눌렀을때 어떻게 전송할지 설정

<form action="FormEx" method="post">

action - 매핑된 이름(ex FormEx=> FormEx.java)

method - get방식, post방식

*직접해보기

*클라이언트 부분(FormEx.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="FormEx" method="post">

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

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

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

취미 : <input type="checkbox" name="hobby" value="read">독서

<input type="checkbox" name="hobby" value="cook">요리

<input type="checkbox" name="hobby" value="run">조깅

<input type="checkbox" name="hobby" value="swim">수영

<input type="checkbox" name="hobby" value="sleep">취침<br/>

<input type="radio" name="major" value="kor">국어

<input type="radio" name="major" value="eng" checked="checked">영어

<input type="radio" name="major" value="mat" >수학

<input type="radio" name="major" value="des" >디자인<br/>

<select name="protocol">

<option value="http">http</option>

<option value="ftp" selected="selected">ftp</option>

<option value="smtp">smtp</option>

<option value="pop">pop</option>

</select><br/>

<input type="submit" value="전송"><input type="reset" value="초기화">

</form>

</body>

</html>

-출력화면

*서버부분(FormEx.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

package com.javalec.ex;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.Arrays;

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 FormEx

*/

@WebServlet("/FormEx")

public class FormEx extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public FormEx() {

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

System.out.println("doGet");

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

System.out.println("doPost");

String id = request.getParameter("id");

String pw = request.getParameter("pw");

String[] hobbys = request.getParameterValues("hobby");

String major = request.getParameter("major");

String protocol = request.getParameter("protocol");

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

PrintWriter writer = response.getWriter();

writer.println("<html><head></head><body>");

writer.println("id : " + id + "<br />");

writer.println("password : " + pw + "<br />" );

writer.println("hobby : " + Arrays.toString(hobbys) + "<br />");

writer.println("major : " + major + "<br />");

writer.println("protocol : " + protocol);

writer.println("</body></html>");

}

}

-출력화면

※한글 출력방법(Get방식)

1. server.xml을 열기

2. 자신의 포트번호(ex8080) 부분에 가서 다음과 같이 입력

URIEncoding="EUC-KR"

1

<Connector URIEncoding="EUC-KR" connectionTimeout="20000" port="8181" protocol="HTTP/1.1" redirectPort="8443"/>

※한글 출력방법(Post방식)

1. java소스부분 열기

2. 다음 소스 입력

1

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

3. 출력된 화면


반응형