Servlet

Servlet

package com.practice;

/**

* Servlet implementation class practice

*/

@WebServlet( "/practice" ) //맵핑주소 반드시 앞에 /를 붙여야 함

public class practice extends HttpServlet {

private static final long serialVersionUID = 1L;

//인스턴스 변수, Static변수 -> 여러 클라이언트가 공유가능

//(thread-unsafe) - 사용자의 공유변수

int num;

ArrayList < String > list = new ArrayList < String > ();

/**

* @see HttpServlet#HttpServlet()

*/

public practice() {

super ();

System . out . println ( "기본생성자 호출" );

}

@Override

public void init() throws ServletException { //init메서드

System . out . println ( "init메서드" );

}

@Override

public void destroy() { //destroy메서드

System . out . println ( "destroy메서드" );

}

/**

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

*/

//처리 메서드를 어떤 방식으로 하냐에 따라 doGet 또는 doPost가 호출이 됨

//post 메서드로 처리해도 결국에는 doGet으로 처리해서 데이터처리함

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

System . out . println ( "doget호출됨==================================" );

int size = 10 ; //로컬변수 -> 공유불가 -> thread-safe(사용자 마다 따로 사용, 함수 호출시 마다 초기화)

//여러명의 클라이언트가 접속해도 size는 10고정 but멤버변수로 선언된 녀석들은 모두 통용됨

//클라이언트간에 공유된 변수이기때문에 모든 사용자가 볼때 똑같이 증가함

//웹페이지에서 방문자수같은거 계산할 때 사용

num + + ;

list. add ( "홍길동" + num);

System . out . println ( "doGet : " + num);

System . out . println ( "doGet : " + list);

System . out . println ( "doGetSize : " + size);

}

/**

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

*/

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

doGet(request, response); //doGet으로 보냄

}

//sysout은 자바 console에서 출력됨

from http://cocoshin.tistory.com/39 by ccl(A) rewrite - 2021-12-14 00:27:13