웹 프로그래밍 02(Servlet)-라이프사이클, html(form,input)
*라이프 사이클(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. 출력된 화면