[Servlet 기초] 기초 셋팅 및 기초이론

2009. 6. 25. 13:44 - 에릭투스

서블릿(servlet) : 웹어플리케이션의 구조(파일구조),경로
중요..중요

Root<최상위> -WEB-INF - Web.xml
* WEB-INF : 무조건 필요한 파일.(반드시 이파일이 필요)
* Web.xml : web-inf안에 "Web.xml" 이 필요

이클립스와 톰캣과 연동시켜야한다.
1. Eclipse - window - preperences - server - server runtimenviroment
2. perspective를 javaEE 선택.
3. 밑에 show view에 servers

[server location]
default : Eclipse Metadata안에 ..
D:\Eclipse workspace\.metadata\.plugins\org.eclipse.wst.server.core

[Dynamic web project]
 <기본구조>
  webcontent<root> - WEB-INF - Web.xml

 <context root>

web.xml : 먼저 만들어야한다. 안에 구조에 대한 정보가 담겨져있음.

web.xml source
 welcome-file-list
  welcome-file : 초기파일

* HTTP Status 404 - 요청한자료를  찾을수 없을때 error
* xml file은 반드시 수정후 서버를 재시작해야 적용됨.
* 서블릿 : 서비를 제공하는 자바 클래스

<반드시 지켜줘야하는 옵션>
 super class : javax.servlet.http.HttpServlet
<servlet>
<servlet-name>Hello_servlet</servlet-name>
 : servlet name은 class를 부르는 이름.

<servlet-class>Hello.Hello_servlet</servlet-class>
 : servlet class
</servlet>

<servlet-mapping>
    <servlet-name>Hello_servlet</servlet-name>
    <url-pattern>/Hello</url-pattern>
</servlet-mapping>


생성자 , init은 서버가 시작시부터 중단시까지 계속 실행.
서블릿 jsp의 장점 : 한번메모리에 생성시 계속...실행.
 그래서 한번 시작시에는 느리지만, 그이후에는 빠름.

1. init(); : 처음 시작시 호출
2. service;
3. doget;
 .....
4. destroy() : 종료시에 호출
.

* 서비스(service)
 : 기본적으로 호출되는 메소드, http 전송방식(method)에 따라 doGet, doPost, 등을 호출
   원래 doDelete 등등이 있는데 우린 doGet,doPost만 사용.
ex)
protected void service(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
  response.
 }
사용자가 보낸 Data, 사용자가 요청한 data   : request
사용자에게 보여주게 될 정보를 처리하는 것이 : response

response.getWriter(); : return PrintWriter

ex)
 PrintWriter pw = response.getWriter();
 pw.write("<h1> Hellow </h1>");

web.xml 기본구조
 : 서비스가 핵심이다.

 <servlet>
     <servlet-name></servlet-name>
     <servlet-class></servlet-class>
 </servlet>
   
   <servlet-mapping>
    <servlet-name></servlet-name>
  <url-pattern></url-pattern>
   </servlet-mapping>

Servlet Class생성시.
javax.servlet.http.HttpServlet : 반드시 상속받아야함.

doGet
 response.getWriter(); //return PrintWriter
 PrintWriter : 클라이언트의 직접연결되어있는 IO객체

이번주내로 전체적인 그림을 잡을것.

처음 클라이언트의 요청을 하면 응답을 한다.
서버가 요청을 받아들여서 응답을 한다.
과정:

1. http://localhost:8080/pp/ok 를 호출(client에서 브라우져로)

2. Tomcat이 받아들인다.(요청주소를 파악)
 //pp : pliotProject의 ok를 받아들임.
 /ok - web.xml에서 찾는다.
  ok -> web.xml ->okay<class name> -> OkayServlet을 실행.
3. OkayServlet.service()를 호출(Tomcat이 )

4. doGet(); 호출.

5. doGet(); 안에 있는 문장을 뿌려줌.

6. Client 브라우져에서 화면이 보인다.

7.<a href='Hello'>Go! Go! Go!!</a>
: 누르면 주소가 Hello를 바꿈.

8. 톰캣이 받아들임. (위에 2~4번을 실행) 대신에 Hello를 실행.


* service method는 자기가 다루지 말것.
* 웹은 보안이 중요하다.
* doGet,doPost외에는 해킹위험이 높기때문에
* doGet , doPost 방식만 처리하는 것이 권고사항.
* so, service를 건드리지 않을것!!!

앞으로 할것!! <Servlet 으로 방명록 기능 만들기>

방명록!!!
1.ip가져오게하기...
1. 글number , 작성자 , 글내용, 글쓴날짜, 비밀번호
글number = no primary key, writer =varchar2(50)


CREATE TABLE guestbook
(no NUMBER primary key,
writer VARCHAR2(50),
content VARCHAR2(4000),
wdate DATE DEFAULT SYSDATE,
pass VARCHAR2(50));

SELECT * FROM guestbook;

OK서블릿 , 헬로서블릿 반복해서 해볼것.

다른 카테고리의 글 목록

웹 개발/Servlet 기초 카테고리의 포스트를 톺아봅니다