쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는https://github.com/2jaehoon/sangyoungjsp에 올려두었습니다.
https://github.com/2jaehoon/ServletTest
jQuery XML 파싱( JavaScript Parsing )
- jQueryObject의 find 함수로 노드를 찾아서 파싱한다.
$.ajax({
url: "JSP 또는 xml을 요청",
dataType:"xml",
success: function( xml ){
// 하나의 노드(파싱된 값)
var 변수= $( xml ).find("접근할노드").text();
// 반복되는 노드
// 1. 노드를 찾아서 반복시킨다.
$( xml ).find("반복될노드").each(function(idx, 하나의노드 ){
// 2. 반복중인 하나의 노드를 parsing
var 변수=$(하나의노드).find("찾을노드").text();
});
}
})
* 하나의 node parsing
*여러 개의 node parsing
Servlet
- CGI의 일종
CGI( Common Gateway Interface ) : 일반언어가 웹 서비스를 하기 위해 정해놓은 규약
장점 : 일반 언어로 웹 서비스가 가능
단점 : 디자이너와 개발자간의 업무 구분이 되지 않는다.
Server Side Script보다 개발시간이 오래 걸린다.
예) C 언어로 웹 서비스를 하기 정해놓은 규약을 구현 : C-CGI
(속도가 느리다, Thread로 처리되지 않는다.)
Java 언어로 웹 서비스를 하기 정해놓은 규약을 구현 : Servlet
- Java 언어로 웹 서비스하기 위해 CGI를 준수하여 제작한 Java EE(Enterprise Edition) 기술
- Java SE에서 제공하는 기능(class, interface)을 모두 사용할 수 있다.
- Thread로 처리된다.(동시 접속자가 많았을 때 안정적인 서비스가 가능)
- javax.servlet 패키지에서 관련 클래스와 인터페이스를 제공
- 디자이너와 개발자간의 업무 구분이 어렵다.
class Test extends HttpServlet{ // 1.개발자 코드 생성
public void service(HttpServletRequest req, HttpServletResponse) throws...{
// 2. 응답 방식 설정
response.setContentType("text/html;charset=UTF-8");
// 3. 응답할 내용을 내보낼 출력 스트림 얻기
PrintWriter out=response.getWriter();
// 4. 디자이너가 디자인 생성
out.println("디자인 코드");
// 개발자의 코드 작성
out.println("디자인 코드");
}
}
- DD( Deployment Descriptor )에 작성된 Servlet이 웹 브라우저에 호출이 가능하도록
설정 해야 한다. ( web.xml설정)
- Java가 웹 서비스를 하기 위한 폴더 구성
- HDD 존재하는 폴더를 웹 브라우저에서 인식하기 위해 Tomcat의 server.xml을 수정
<Host name="domain">
<Context path="/웹브라우저에서 사용할 이름" docBase="HDD경로"
workDir="JSP가 Java로 변경될 때 저장될 폴더경로" reloadable="true">
<Resource> : DBCP의 사용
</Context>
* 서블릿 작성법
// 1.javax.servlet.http.HttpServlet을 상속받는 클래스를 작성 //CGI를 준수하여 작성한 클래스
public class Test extends HttpServlet{
// 2.웹의 요청을 처리할 수 있는 method Override
// get 방식 요청 처리할 때
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
}
// post 방식 요청 처리할 때
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException,ServletException{
}
// get/post 방식 모두 처리
protected void service(HttpServletRequest request, HttpServletResponse response)
throws IOException,ServletException{
}
// 3. 응답 방식 설정
response.setContentType("text/html;charset=UTF-8");
// 4. 접속자에 출력하기 위해 출력 스트림 얻기(웹 브라우저로 출력하기 위해서)
PrintWriter out=response.getWriter();
//5. 출력
out.println("<html>... ");
* DD ( web.xml )에 서블릿 설정
- web browser는 class를 실행할 수 없기 때문에
class를 웹 브라우저에서 호출할 수 있도록 설정
( class는 WEB-INF/classes 폴더 안에 배치 )
- 클래스를 사용할 수 있도록 이름을 등록
<servlet>
<!-- 객체명이 web.xml에서 중복되면 에러 -->
<servlet-name>객체명</servlet-name>
<servlet-class>패키지명.클래스명</servlet-class>
</servlet>
- 클래스를 웹 브라우저에서 사용할 수 있도록 등록
<servlet-mapping>
<servlet-name>객체명</servlet-name>
<url-pattern>/웹브라우저에서 사용할 이름</url-pattern>
</servlet-mapping>
* Servlet 의 Life Cycle
- Servlet에서는 생명 주기의 method를 제공한다.
- 서버의 실행과는 별도로 최초 요청될 때 객체가 생성된다.
- life cycle method
일반 class는 생성자 -> method -> finalize 가 생명주기 method가 된다.
init -> doGet,doPost,service -> destory 가 생명주기 method 가 된다.
init() : 최초요청에 대해 한 번만 호출
doGet(), doPost(), service() : 모든 접속자에 대해 여러 번 호출된다.
destory() : Web Server(WAS)가 정상 종료될때 호출된다.
'성장 일기 > 쌍용교육센터' 카테고리의 다른 글
0428/Cookie, Servlet DD 설정 (0) | 2023.05.02 |
---|---|
0427/페이지 이동, 관계 유지 (0) | 2023.05.02 |
0425/JDOM Parser (0) | 2023.04.25 |
0421/XML (0) | 2023.04.25 |
0420/복합 Parsing (0) | 2023.04.20 |