JAVA/JSP

[JSP] XML

로아다 2023. 6. 23. 00:27
728x90
반응형
XML

- 데이터를 효율적으로 저장하기 위한 문자열 구조

- 데이터를 XML 형태로 만들면 다른 언어에서도 다시 해석하여 사용할 수 있다.

-  ex: Java에서 XML형식 파일을 만든 후 파이썬에서 해당 데이터를 다시 읽어서 사용

 

 

XML 주석
 <!-- .xml에서도 html과 같은 주석을 사용한다. -->

 

web.xml에 servlet 등록하기

1. .java로 된 서블릿 등록하기

        <servlet>
                <servlet-name>myservlet</servlet-name>
                <servlet-class>chap05.servlet.HelloServlet</servlet-class>
        </servlet>

 

2. .jsp로 된 서블릿 등록하기

        <servlet>
                <servlet-name>myservlet2</servlet-name>
                <jsp-file>/encoding.jsp</jsp-file>
        </servlet>

 

등록한 서블릿 url 매핑하기

- * : 모든 것

- /path/* : 해당 경로 이후 의 모든 것

- *.hello : 확장자가 .hello인 모든 것

- / : 아무런 매핑에도 걸리지 않은 요청이 가게 되는 곳 (※ 매우 중요)

 

        <servlet-mapping>
                <servlet-name>myservlet</servlet-name>
                <url-pattern>/hello/*</url-pattern>
        </servlet-mapping>
        
        <servlet-mapping>
                <servlet-name>myservlet2</servlet-name>
                <url-pattern>/encoding_test</url-pattern>
        </servlet-mapping>
        
        <servlet-mapping>
                <servlet-name>elseservlet</servlet-name>
                <url-pattern>/</url-pattern>
        </servlet-mapping>

 

초기화 파라미터 (Init Parameter)

- 웹 서버를 처음 시작할 때 초기화 되는 변수들을 web.xml에서 설정할 수 있다.

- context-param : 모든 서블릿에서 사용할 수 있는 전역 파라미터

- init-param : 해당 서블릿에서만 사용할 수 있는 지역 파라미터 <servlet> 내부에 등록한다.

        <context-param>
                <param-name>account_id</param-name>
                <param-value>hr</param-value>
        </context-param>
        
        <context-param>
                <param-name>account_pw</param-name>
                <param-value>1234</param-value>
        </context-param>

 

package chap05.servlet;

import java.awt.Color;
import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class ElseServlet extends HttpServlet {
	
	// init() : 서블릿이 처음 실행되는 시점에 호출되는 메서드
	//          init()는 해당 서블릿으로 첫 요청이 발생했을 때 실행된다. (딱 한 번)
	@Override
	public void init(ServletConfig config) throws ServletException {
		
		System.out.println(config.getInitParameter("main_color"));
		System.out.println(config.getInitParameter("logo_path"));
	}
	
	@Override
	protected void service(HttpServletRequest request,
		HttpServletResponse response) throws ServletException, IOException {

	// JSP application scope의 서블릿 버전
	ServletContext application = request.getServletContext();
	
	// web.xml에서 등록한 context-param은 application scope에 들어있다.
	System.out.println(application.getInitParameter("account_id"));
	System.out.println(application.getInitParameter("account_pw"));
	
	// JSP session scope의 서블릿 버전
	HttpSession session = request.getSession();
	
	response.getWriter()
	.append("<html><head><title>ElseServlet</title></head>")
	.append("<body>404 Not Found</body></html>");
	}
	
}

 

728x90
반응형