Developer/Spring eGov4.0 (Java11, Tomcat9)

Servlet - jsp, Dynamic web project 시작 !, servlet 시작 !

단님 2024. 10. 30. 23:09
728x90
Dynamic web project

 

  •  Project Explorer 에서 우클릭 - Dynamic web project 

  • next - next - webModule 확인

context root :http://localhost:8080/web01/  ….. 첫번째 경로 명.
content directory : 웹브라우저의 출력되는 최종적인 결과물들이 있는 곳. (html 이 들어가는 위치를 말함.)
generate web.xml deployment descriptor :
web.xml : 설정 내용 기술 문서
모든 웹 프로젝트들은 가지고 있는다 , 없어도 실행 가능하나 있는게 편함. 체크 후 finish

 

src/main/java :  우리가 현재 작업하던 java /여기서 java 작업을 할 것.

  • src 폴더는 출력을 위해서 사용. webapp를 기준으로 사용
  • src/main/java 내용이 똑같이 나오지만 작업에 혼란을 주기 떄문에 작업공간을 분명히 하자.

 

  • 전체적으로 구조는 이렇게 잡는다.
전체적 구조
src/main/java → 작업 공간 (실제 작업 공간)
src → 작업 파일을 보여주는 공간 (실수 할 수 있는 작업공간. 즉 , 여기서 작업하지 말자)
src - main - webapp → content 영역
webapp -WEB-INF-lib → 외부 라이브러리 공간

  • web.xml 을 누르면 오류가 연쇄적으로 발생한다.

web.xml : 기본적인 설정이나 데이터값을 전달하는 용도로 제공되는 문서.

xml : 어플리케이션에서 테이블형태로 문서화 하여 정리하거나 전달하는 용도로 연관된 작업을 할수있도록 하는 문서형태

 

home.html을 제일 먼저 찾을것이기 때문에 webapp하위에 html을 만들어보자.

webapp폴더위에서 우클릭 - New - File 또는 HTML File

 

 

서버 실행하는 방법

home.html 을 뚝딱뚝딱 만들어봤다면 ,

이제 서버를 실행해보자

프로젝트 위에서 우클릭
run on Server → save →tomCat 클릭후
always use this server when running this project 체크

이미지는 webapp 폴더에 이미지 넣고 쓰됨


Servlet 만들기
  • 서블릿을 모을 패키지를 만들고 , 패키지 위에서 우클릭 - New - Servlet

아래와 같은 화면에서 Source folder 확인 , Java package 확인 후 ,ClassName을 쓰고 Finish

 

 

@WebServlet("/Ex01_helloServlet") // 요청명
public class Ex01_helloServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public Ex01_helloServlet() {
        super();
    } // 생성자

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.getWriter().append("Served at: ").append(request.getContextPath());
	} //doGet  
    
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	} //doPost

}

이런 구조로 나온다.

❤️키워드 뿌시기 !

@WebServlet("/Ex01_helloServlet")

이 어노테이션은 서블릿의 URL 매핑을 지정한다.
클라이언트가 /Ex01_helloServlet  경로로 요청을 보내면 이 서블릿이 호출된다.
url 매핑은 서블릿의 주소역할을 하고 , 다양한 경로로 여러 서블릿을 연결할 수 있다.
extends HttpServlet
HttpServlet은 서블릿의 기본적인 HTTP 요청 처리 방식을 제공하는데,
특히 doGet 과 doPost 메서드를 오버라이드하여 GET과 POST 요청을 처리한다.
serialVersionUID = 1L;
서블릿 클래스는 직렬화 가능(serializable)해야 하므로,
serialVersionUID 라는 고유 식별자를 설정해 클래스 버전을 관리한다.
doGet 메서드
클라이언트가 GET 요청을 보낼 때 실행되는 메서드.
doPost 메서드
클라이언트가 POST 요청을 보낼 때 실행되는 메서드.
이 예제에서는 doGet 메서드를 호출하여, GET과 POST 요청을 동일하게 처리되는 것을 볼 수 있다.
request
객체는 클라이언트가 보낸 요청 정보를 담고 있다.
response
객체는 서버가 클라이언트로 보낼 응답 정보를 담고 있다.

response.getWriter().append("Served at: ").append(request.getContextPath());
PrintWriter 객체를 통해 클라이언트에게 문자열을 응답하고 있는 것이다.
결과적으로 "Served at: [컨텍스트 경로]"라는 응답이 전송될 것 이다.