config 내장 객체
<servlet></servlet>에 묶여 하나의 객체에서만 쓸 수 있는 객체.
현재 web.xml에서 읽어온 초기화 정보를 저장하고 있는 JSP 페이지에 대한 Servlet 설정 정보 등을 저장하고 사용할 수 있는 내장 객체이다.
web.xml 파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0"> <display-name>demo6</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.jsp</welcome-file> <welcome-file>default.htm</welcome-file> </welcome-file-list> <servlet> <servlet-name>myServlet</servlet-name> <servlet-class>com.tenco.MyServlet</servlet-class> <!-- 초기 파라미터 설정하기 --> <init-param> <param-name>adminId</param-name> <param-value>tenco</param-value> </init-param> <init-param> <param-name>adminPw</param-name> <param-value>asdf123</param-value> </init-param> </servlet> </web-app> | cs |
Servlet 파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | package com.tenco; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; // @WebServlet("/MyServlet") public class MyServlet extends HttpServlet { private static final long serialVersionUID = 1L; public MyServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 내장객체 config 활용해서 초기 파라미터 값 확인하기 String adminId = getServletConfig().getInitParameter("adminId"); String adminPw = getServletConfig().getInitParameter("adminPw"); System.out.println("adminId : " + adminId); System.out.println("adminPw : " + adminPw); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } 결과 화면 adminId : tenco adminPw : asdf123 | cs |
application 내장 객체
전체 서블릿 객체에서 공유할 필요가 있는 값들을 설정하여 web.xml 파일의 경로를 이용해 더 유연하게 내용을 처리할 수 있다.
web.xml 파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0"> <display-name>demo6</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.jsp</welcome-file> <welcome-file>default.htm</welcome-file> </welcome-file-list> <!-- 서블릿 전체에서 공유할 수 있는 데이터 선언 --> <context-param> <param-name>imgDir</param-name> <param-value>/upload/img1</param-value> </context-param> <context-param> <param-name>testServerIp</param-name> <param-value>127.0.0.1</param-value> </context-param> <context-param> <param-name>realServerIp</param-name> <param-value>88.0.13.1</param-value> </context-param> </web-app> | cs |
index.jsp 파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% String imgDir; String testServerIp; String realServerIp; imgDir = application.getInitParameter("imgDir"); testServerIp = application.getInitParameter("testServerIp"); realServerIp = application.getInitParameter("realServerIp"); %> <p>imgDir <%=imgDir %></p> <p>testServerIp <%=testServerIp %></p> <p>realServerIp <%=realServerIp %></p> <div> <img alt="배너이미지" src="/demo6<%=imgDir %>/a.png"> </div> </body> </html> | cs |
exception 내장 객체
에러 발생시 에러 페이지를 만들어주지 않으면 코드 내부가 노출이 될 수 있기 때문에 에러 페이지를 만들어주어 코드 노출을 방지할 수 있다.
에러가 날 것 같은 페이지에 선언
<!-- 만약 이 페이지에서 오류가 발생한다면 다른 곳으로 이동 시켜 -->
<%@ page errorPage="errorPage.jsp" %>
에러 페이지에 정의
<!--
여기 jsp 파일을 error 전용 페이지로 사용할려면
반드시 isErrorPage = true 를 선언 해주어야 한다.
-->
<%@ page isErrorPage="true" %>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page errorPage="errorPage.jsp" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% String str = null; out.print(str.split("/")); %> </body> </html> | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page isErrorPage="true" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h2>잘못된 요청입니다</h2> </body> </html> | cs |
'프로그래밍 > JSP 프로그래밍' 카테고리의 다른 글
JSP 프로그래밍_필터(Filter) (0) | 2023.04.06 |
---|---|
JSP 프로그래밍_RequestDispatcher (0) | 2023.03.27 |
JSP 프로그래밍_쿠키(Cookie) (0) | 2023.03.27 |
JSP 프로그래밍_세션(session) (0) | 2023.03.23 |
JSP프로그래밍_JSP 스크립트와 JSP 내장 객체 (0) | 2023.03.23 |