본문 바로가기
JSP/JSP & Servlet

서블릿 코드로 변환된 파일(.java)

by avvin 2019. 4. 26.

서블릿 코드 변환된 파일(.java)



클라이언트의 웹브라우저가 .jsp페이지를 요청하면 

웹서버의 JSP&서블릿 컨테이너가 JSP파일을 파싱하고 서블릿코드로 변환하여 .java로 저장한다.


톰캣으로 실행할 때와 이클립스로 실행 할 때의 자바파일 저장 경로가 다르다. (p.125 참고)


jsp페이지를 톰캣으로 실행시 서블릿코드로 변환되어 자바파일이 저장되는 경로 :


C:\Users\user\Desktop\JSP_STUDY\apache-tomcat-8.5.40\work\Catalina\localhost\myapp\org\apache\jsp\ch05


jsp페이지를 이클립스로 실행시 서블릿코드로 변환되어 자바파일이 저장되는 경로 :


C:\Users\user\Desktop\JSP_STUDY\.metadata\.plugins\org.eclipse.wst.server.core

\tmp0\work\Catalina\localhost\test_jsp_eclipse\org\apache\jsp  

//확장자만 바뀐게 아니라 파일명이 조금 변경되었다. 변경이 되면 정확한 파일명을 알 수 없기때문에 서블릿코드파일이 저장되는 경로를 잘 알아두자



이클립스에서 설정한 workspace 경로의 .metadata에서 파일 이름을 검색해보면 찾기 쉽다.


이클립스에서 jsp파일 경로 확인 하기 :  .jsp파일 > 우클릭 > Properties > Location 위치에서


jsp 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<h1>Scriptlet Example</h1>
<%!
int one;
String msgOne;
%>
<%
int two =31;
String msgTwo = "Scriptlet_Example!";
%>
<%= two + " : " + msgTwo%> <br/>
<%=application.getRealPath("/")%>
cs



변환된 서블릿 코드


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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/*
 * Generated by the Jasper component of Apache Tomcat
 * Version: Apache Tomcat/8.5.40
 * Generated at: 2019-04-26 07:07:21 UTC
 * Note: The last modified time of this file was set to
 *       the last modified time of the source file after
 *       generation to assist with modification tracking.
 */
package org.apache.jsp;
 
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
 
public final class test_005fjsp_005feclipse_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent,
                 org.apache.jasper.runtime.JspSourceImports {
 
 
int one;
String msgOne;
 
  private static final javax.servlet.jsp.JspFactory _jspxFactory =
          javax.servlet.jsp.JspFactory.getDefaultFactory();
 
  private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;
 
  private static final java.util.Set<java.lang.String> _jspx_imports_packages;
 
  private static final java.util.Set<java.lang.String> _jspx_imports_classes;
 
  static {
    _jspx_imports_packages = new java.util.HashSet<>();
    _jspx_imports_packages.add("javax.servlet");
    _jspx_imports_packages.add("javax.servlet.http");
    _jspx_imports_packages.add("javax.servlet.jsp");
    _jspx_imports_classes = null;
  }
 
  private volatile javax.el.ExpressionFactory _el_expressionfactory;
  private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;
 
  public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
    return _jspx_dependants;
  }
 
  public java.util.Set<java.lang.String> getPackageImports() {
    return _jspx_imports_packages;
  }
 
  public java.util.Set<java.lang.String> getClassImports() {
    return _jspx_imports_classes;
  }
 
  public javax.el.ExpressionFactory _jsp_getExpressionFactory() {
    if (_el_expressionfactory == null) {
      synchronized (this) {
        if (_el_expressionfactory == null) {
          _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
        }
      }
    }
    return _el_expressionfactory;
  }
 
  public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() {
    if (_jsp_instancemanager == null) {
      synchronized (this) {
        if (_jsp_instancemanager == null) {
          _jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
        }
      }
    }
    return _jsp_instancemanager;
  }
 
  public void _jspInit() {
  }
 
  public void _jspDestroy() {
  }
 
  public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
      throws java.io.IOException, javax.servlet.ServletException {
 
    final java.lang.String _jspx_method = request.getMethod();
    if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method) && !javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {
      response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSPs only permit GET POST or HEAD");
      return;
    }
 
    final javax.servlet.jsp.PageContext pageContext;
    javax.servlet.http.HttpSession session = null;
    final javax.servlet.ServletContext application;
    final javax.servlet.ServletConfig config;
    javax.servlet.jsp.JspWriter out = null;
    final java.lang.Object page = this;
    javax.servlet.jsp.JspWriter _jspx_out = null;
    javax.servlet.jsp.PageContext _jspx_page_context = null;
 
 
    try {
      response.setContentType("text/html; charset=EUC-KR");
      pageContext = _jspxFactory.getPageContext(this, request, response,
                  nulltrue8192true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;
 
      out.write("\r\n");
      out.write("<h1>Scriptlet Example</h1>\r\n");
      out.write('\r');
      out.write('\n');
 
int two =31;
String msgTwo = "Scriptlet_Example!";
 
      out.write('\r');
      out.write('\n');
      out.print( two + " : " + msgTwo);
      out.write(" <br/>\r\n");
      out.print(application.getRealPath("/")); // 표현식으로 출력된 JSP 코드들
    } catch (java.lang.Throwable t) {
      if (!(t instanceof javax.servlet.jsp.SkipPageException)){
        out = _jspx_out;
        if (out != null && out.getBufferSize() != 0)
          try {
            if (response.isCommitted()) {
              out.flush();
            } else {
              out.clearBuffer();
            }
          } catch (java.io.IOException e) {}
        if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
        else throw new ServletException(t);
      }
    } finally {
      _jspxFactory.releasePageContext(_jspx_page_context);
    }
  }
}
 


'JSP > JSP & Servlet ' 카테고리의 다른 글

내장 객체(implict object)  (0) 2019.04.29
JSP 기초문법  (0) 2019.04.28
(이클립스 없이) 톰캣 서버 구동  (0) 2019.04.26
JSP 동작원리(톰켓)와 서블릿  (0) 2019.04.26
JSP 웹프로그래밍 시작하기  (0) 2019.04.25