[JSP]埋め込みオブジェクト


configオブジェクト


共有データのオブジェクト
Webタグを使用します.データはxmlに格納され、getInitParameter()方法でjsp나 servlet에서 데이터를 공유하는 방식が格納される.
まずはWebxml用のjspファイルとservletを登録し、init-paramタグにketとvalue値を格納します.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!-- config 객체 -->
    <servlet>
        <servlet-name>servletEx</servlet-name>
        <jsp-file>/jspEx.jsp</jsp-file>
        <init-param>
            <param-name>adminId</param-name>
            <param-value>admin</param-value>
        </init-param>
        <init-param>
            <param-name>adminPw</param-name>
            <param-value>1234</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>servletEx</servlet-name>
        <url-pattern>/jspEx.jsp</url-pattern>
    </servlet-mapping>
</web-app>
servlet-nameでservletの任意の名前を作成します.jsp-fileは、使用するjspファイル名(パス)を提供します.servletラベルとservlet-mappingの内容は同じであるべきです.
key値param-nameはjspファイルからデータをロードするために使用され、value値param-valueは値を格納するために使用される.
使用するjspファイルのコードを表示します.
<!-- jspEx.jsp -->
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%!
    String adminId;
    String adminPw;
%>

<%
    adminId = config.getInitParameter("adminId");
    adminPw = config.getInitParameter("adminPw");
%>

<p>adminId : <%= adminId %></p>
<p>adminPw : <%= adminPw %></p>

</body>
</html>
config 객체(or getServletConfig() 사용도 가능)でgetInitParameter()メソッドでweb.xmlに格納されているデータをロードします.

アプリケーション・オブジェクト


アプリケーション間でデータを共有するオブジェクト
web.データはxmlに格納され、特定のservletではなく모든 servlet에서 사용할 수 있게 하는 방법である.
同じように、コードを見て理解しましょう.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!-- application 객체 -->
    <context-param>
        <param-name>imgDir</param-name>
        <param-value>/upload/img</param-value>
    </context-param>
    <context-param>
        <param-name>testServerIP</param-name>
        <param-value>127.0.0.1</param-value>
    </context-param>
    <context-param>
        <!-- 실제로 사용자한테 서비스 되는 IP-->
        <param-name>realServerIP</param-name>
        <param-value>68.0.30.1</param-value>
    </context-param>
</web-app>
configオブジェクトと同様に、context-paramparam-nameおよびparam-valueを使用して、キーと値の役割を果たします.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</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>

</body>
</html>
param-nameの値は、アプリケーションオブジェクトのgetInitParameter()メソッドから取得されます.

アプリケーションのgetter、setter


setAttribute()


属性を格納するロール(jspファイルに属性を入れることができます).
<!-- jspEx.jsp -->
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page errorPage="errorPage.jsp" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<%
    application.setAttribute("connectedIP", "165.62.58.23");
    application.setAttribute("connectedUser", "hong");
%>

</body>
</html>

getAttrubute()


属性をインポートする役割(setAttribute()で使用される属性値を取得するために使用されます).
<!-- jspExGet.jsp -->
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%!
    String connectedIP;
    String connectedUser;
%>

<!-- application 객체 getAttribute() -->
<%
    connectedIP = (String) application.getAttribute("connectedIP");
    connectedUser = (String) application.getAttribute("connectedUser");
%>

<p>connectedIP : <%= connectedIP %></p>
<p>connectedUser : <%= connectedUser %></p>
</body>
</html>
他のjspファイルから値を取得できます.

Outオブジェクト


HTMLコードのようにコンテンツを出力するオブジェクト.
IntelliJを使用するにはlibをインストールする必要がある場合があります.
インストール方法



入力ボックスにjavax.servlet.jspと入力し、Enterを押して対応するバージョンを選択し、OKを押します.

インストールを確認してOKをクリック
あとでjspにprint()メソッドを入力します.入力が正常であれば、out.print()を使用してHTMLコードを使用するように使用できます.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<!-- out 객체 -->
<%
    out.print("<h1>Hello Java World!!</h1>");
    out.print("<h2>Hello JSP World!!</h2>");
    out.print("<h3>Hello Servlet World!!</h3>");
%>
</body>
</html>

例外オブジェクト


例外処理に使用されるjspファイル.
エラーが発生した場合は、対応するjspファイルに移動します.
<!-- jspEx.jsp -->
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page errorPage="errorPage.jsp" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<!-- exception 객체 -->
<%
    // 선언만 하고 초기화 하지 않았음
    out.print(str.toString());
%>
</body>
</html>
コードの上部に、ページコマンドでerrorを介してページファイルに書き込みます.
<!-- errorPage.jsp -->
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isErrorPage="true" %>
<html>
<head>
    <title>Error Page</title>
</head>
<body>
<%
    response.setStatus(200);
    String msg = exception.getMessage();
%>
<h1>error message : <%= msg %></h1>
</body>
</html>
errorPage.jspファイルの上部にもpageコマンドでisErrorPage="true"タグを付け、エラー処理ページが正しいことを示します.
まず、ページの表示が良好であることを確認するために、通常コード値200でページ内容を確認することができる.