관리 메뉴

nkdk의 세상

11장 jsp의 시작 기본 원리 life cycle 및 전체 사용을 해봅시다 본문

My Programing/JSP and Servlet

11장 jsp의 시작 기본 원리 life cycle 및 전체 사용을 해봅시다

nkdk 2008. 3. 9. 01:01
jsp 문서는 0.jsp 형식
html * jsp 요소 + 기타
html 의 요소는 css vbscript 페이지 지시어 js ajax 등이 있음
jsp요소는 페이지
지시어 <%a page %>
전역변수 선언<%! int i = 0; %>
표현expression <%="홍길동">< %> <- 하나의 값만 넣어줄 수 있고 주석만 넣으면 에러다.
scriptlet <% 자바 int b=5; out.println("????"); %>
<jsp: /> <- 여기서 빈즈(자바의 클래스)를 사용할 수 있다.

돌아가는 원리
클라이언트 -> hello.jsp -> 클래스 유무 확인 -> 메모리 로딩 -> jspInit(); _> thread생성
-> jspInit(); 오버라이딩 o -> jspservice() 오버라이딩 x -> jspDestroy() 오버라이딩(o)


다음으로-----------------------------
tomcat 에 webapp 에 화일을 만든다.
그리고 jar 만드는 법을 알려드리겠습니다.
jar cf abc.war * 로 압축을 한다
압축한 화일을 잘라내어 webapp 에 넣어 놓는다
war 파일은 서버 실행시 압축을 자동으로 풀어 주어 바로 돌아 갈 수 있게끔 해 준다.

이클립스의 경우는 export 시켜서 war로 묶을 수 있습니다.

C:\javasou\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\sun\org\apache\jsp
에서 서블릿을 생성하기 때문에 속도가 처음에는 컴파일 하기 때문에 약간 느리다.

에러가 생겼을 때 이곳에 가서 확인을 해 보면 도니다.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><body>
<%="jsp 실습" %>
<br>
<%
String irum = "강감이" ;
out.println(irum); %>
</body>
</html>

<!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=EUC-KR">
<title>Insert title here</title>
</head>
<body><h1>홈피다!!</h1>
<a href="test.jsp">jsp</a>
<br>
<a href="/sun/Hi.korea">Hi.korea</a>
</body>
</html>

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class Hi extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Servelt Document");
}
}


<%@ page contentType="text/html; charset=EUC-KR" %>
<%--
이건 주석입니다.^^
* Element 의 종류
-<%@ page %>
-<%! %> 선언식
-<%= %> 표현식
-<% %> 자바
-<jsp: />
--%>
<html><body>
안녕하세요?<br>
<%
String ir = "홍길동";
out.println(ir+ "의 홈페이지 입니다.");
for (int i =1;i<7;i++) {
out.print("<h"+i+">");
out.println("글자의 크기 조정");
out.println("</h"+i+">");
}
%>
<hr>
<%=new java.util.Date() %>
<br>
<%
int a = 0, sum=0;
do {
a++;
sum += a;
}while(a<10);
%>
<%="10까지의 합은 "+sum %>
<br>
<%! String tel="123-4567"; %>
<%= ir + "님의 전화는 " + tel %>
<%!
public int Add(int m, int n) {
return m+n;}
%>
<%
out.println(Add(10,20));
%>
</body></html>


<%@ page contentType="text/html; charset=EUC-KR" import="java.util.*" import="java.sql.*"
session="true"
buffer="8kb"
autoFlush="true"
info="jsp 문서 정보"
errorPage="error.jsp"
%>
<%-- import="java.util.*" import="java.sql.*" 이렇게 써도 가능하다. --%>
<html><body>
페이지 지시어는 JSP문서의 맨 앞에 기술하며,
문서의 선언 및 속성 정보를 초기화 한다.<p>
<%
Calendar date = Calendar.getInstance();
int y = date.get(Calendar.YEAR);
int m = date.get(Calendar.MONTH)+1;
int d = date.get(Calendar.DATE);
out.println("오늘은 " +y + "년 " +m+"월 "+d+"일");
%><p>
<%= this.getServletInfo() %>
<hr>
<%= 10 /0 %>
</body></html>

<%@ page contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"
isErrorPage="true"
%>
<html><body bgcolor=red>
<font color=yellow>
이런 ...에러가 발생 했습니다>!!!!!<br>
관리자에게 문의해 주세요.<p>
<%=exception.getMessage() %>
</font>
</body></html>