라고 한다.
jsp는 서버 Web-INF에 저장되며, 다른 HTML 파일들과 같이 쓴다고 한다. 솔직히 아직 어떻게 쓰는지 잘 모르겠다.
WAS는 웹 브라우저로부터 jsp에 대한 요청을 받으면 이를 java 서블릿 소스코드로 변환시킨다. init(), Service() 등이 실행되는걸 확인할 수 있다.
JSP의 실행순서
- 브라우저가 웹서버에 JSP에 대한 요청 정보를 전달한다.
- 브라우저가 요청한 JSP가 최초로 요청했을 경우만 JSP로 작성된 코드가 서블릿으로 코드로 변환한다. (java 파일 생성)
- 서블릿 코드를 컴파일해서 실행가능한 bytecode로 변환한다. (class 파일 생성)
- 서블릿 클래스를 로딩하고 인스턴스를 생성한다.
- 서블릿이 실행되어 요청을 처리하고 응답 정보를 생성한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
hello
<%
System.out.println("_jspService()");
%>
<%!
public void jspInit() {
System.out.println("jspInit()!");
}
public void jspDestroy() {
System.out.println("jspDestroy()");
}
%>
</body>
</html>
이게
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 {
.....
try {
.....
out.write("\n");
out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n");
out.write("<html>\n");
out.write("<head>\n");
out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n");
out.write("<title>sum10</title>\n");
out.write("</head>\n");
out.write("<body>\n");
out.write("\n");
int total = 0;
for(int i = 1; i <= 10; i++){
total = total + i;
}
out.write("\n");
out.write("\n");
out.write("1부터 10까지의 합 : ");
out.print(total );
out.write("\n");
out.write("\n");
out.write("</body>\n");
out.write("</html>");
} catch (java.lang.Throwable t) {
.....
}
} finally {
_jspxFactory.releasePageContext(_jspx_page_context);
}
}
이렇게 바뀐다.
jsp에서 java 코드를 따로 쓰려면 <% %>(service method/ 프로그래밍 코드 기술에 사용) 또는 <%! %> (전역 변수 및 메소드 선언) <%= %>(화면에 출력할 내용(HTML)) 이다.
그리고 내장 객체또한 존재해서 따로 선언을 안하고도 쓸 수 있다.
이런거다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
StringBuffer url = request.getRequestURL();
out.println("url : " + url.toString());
out.println("<br>");
%>
</body>
</html>
이런 식으로 사용하게 된다.
www.javatpoint.com/jsp-implicit-objects
어렵다... 책이 빨리 와야할텐데.
'vidigummy KAU > 혼자하는 Web 공부(Front)' 카테고리의 다른 글
Node.js 와 TypeScript 그리고 Nest.js 두번째 (1/18 ~ 2/9) (0) | 2021.02.09 |
---|---|
Node.js 와 TypeScript 그리고 Nest.js 첫번째 (1/18 ~ 2/9) (0) | 2021.02.09 |
백엔드 공부(java로 mysql 쿼리 쓰기)1 (0) | 2021.01.19 |
노마드 코더 JavaScript Application 만들기(1) (0) | 2021.01.17 |