min's devlog
[servlet] 구구단 웹페이지 (web.xml) 본문
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>
성공적인 결과
'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 |