min's devlog

[servlet] 구구단 웹페이지 (web.xml) 본문

til/Server

[servlet] 구구단 웹페이지 (web.xml)

값진 2022. 6. 21. 01:50

Java 코드 내에 HTML 코드를 삽입해 동적 웹페이지를 생성해본다.

(클라이언트가) 요청을 보내면, 그에 대한 만들어둔 구구단 결과를 다시 전송해줄 것이다.

 

서버와 연결하기

- 서블릿의 클래스는 HttpServlet 클래스를 상속하고, doGet 과 doPost 메소드를 오버라이딩한다. (get방식, post방식)

- 작성한 html 코드와 서블릿 코드를 연결하기 위해서는 web.xml 파일에 servlet 등록을 해두어야한다.

- web.xml 파일은 WEB-INF 폴더에 web.xml 을 만들고 Apache.Tomcat 파일에서 <web-app> 부분을 가져다 쓸 수도 있다.

(get 방식은 URL에 붙여서 전송하고, post방식은 패킷 본문에서 전송한다)

 

구구단 출력 코드

package com.test.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet;
//매개변수 작성
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//서블릿 클래스를 선언하기 위한 상속
public class Ex03 extends HttpServlet {

    //예외미루기(IOException)
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
								throws ServletException, IOException {
		
        //한글 깨짐 방지> UTF-8
		resp.setCharacterEncoding("UTF-8");
		
        //동적 HTML 페이지 작성 구현
		PrintWriter writer = resp.getWriter();
		
		//구구단 페이지 = HTML + CSS + JavaScript
		writer.println("<!DOCTYPE html>\r\n"
				+ "<html lang=\"en\">\r\n"
                
				... 중략 ...

				+ "    <script>\r\n"
				+ "\r\n"
				+ "        document.querySelectorAll('#list div').forEach(function(item, index) {\r\n"
				+ "\r\n"
				+ "            item.addEventListener('click', function(event) {\r\n"
				+ "                event.target.firstElementChild.style.display = 'inline-block';\r\n"
				+ "            });\r\n"
				+ "\r\n"
				+ "        });\r\n"
				+ "\r\n"
				+ "\r\n"
				+ "    </script>\r\n"
				+ "</body>\r\n"
				+ "</html>");		
		
		writer.close();
		
	}
	
}

 

클래스를 실행하듯, 서블릿에서 Ctrl+F11을 누르면 이클립스가 해당 서블릿에 매핑되어 있는 가상 주소를 대신 브라우저를 통해서 호출해준다.

 

 

web.xml

web.xml 은 web application 의 설정을 위한 deployment descriptor이다.

(서버 작동이 가능하도록 servlet 정보를 설정)

- 브라우저가 Java Servlet 에 접근하기 위해서는 WAS(Tomcat)에 필요한 정보를 알려줘야 해당하는 Servlet을 호출할 수 있다.

- 새로운 servlet을 연결해줄 때마다 <servlet>, <servlet-mapping> 코드는 추가해 주어야한다.

 

1. 배포할 Servlet

 -  <servlet> - <servlet-name>, <servlet-class>

2. 해당 Servlet이 매핑될 URL

 - <servlet-mapping> - <url-pattern>

 

작성한 web.xml

 

 

성공적인 결과

 

'til > Server' 카테고리의 다른 글

[JSP] JSP 내장 객체  (0) 2022.06.23
[Servlet] 서블릿 처리 동작 순서  (0) 2022.06.21
[JSP] JSP의 요소  (0) 2022.06.20
[Servlet] 서블릿 기초  (0) 2022.06.20
[Servlet] 환경설정  (0) 2022.06.20
Comments