Servlet

Updated:

image-20210324153539393

web.xml을 만들어주는 기능

image-20210324154044637

servelt 생성

/** : Javadoc 만들기?

init(servelt config)

@Override public void destroy() { // TODO Auto-generated method stub super.destroy(); }만ㄷ르기

image-20210324154919216

servlet 이라는 애는 요청받으면 요청받은 처리를 해서 응답해준다. -> controller

server 는 다른 이름을 가지고 있다. = servlet Container

-> 즉, 서버는 Servlet이라는 애들을 담고 있는 애다.

요청이 들어오면 (request) 서버는 응답해준다. (요청이 들어왔을 때 이 요청을 어떤 servlet에다가 처리하도록 시킬 것인지 결정해주는 것이 (url-mapping)이다. )

[

​ servlet 내부

request가 get방식이면 -> doGet()

post방식이면 -> doPost()

]

web.xml (deployment descriptor : 배포 기술자)

서버에다가 이 프로젝트를 올렸을 때 이 프로젝트를 서버에 알려주는 역할을 한다.

home.html

우리가 프로그램을 시작했을 때 가장 먼저 보여줄 이름

http://localhost:8787/Jsp05_HelloServlet/hello.do?command=hello

http://localhost:8787/ : tomcat 서버

/ : 최상위 객체 (루트)

Jsp05_HelloServlet/ : context root -> WebContent 폴더(물리적인 디렉토리)

singer IU

context-param - > context 전체에서 사용할 수 있는 변수

(어떤 서블릿이든 전부 사용할 수 있는 게 context-param이다.)

actor 정우성

init-param은 servlet 내에 존재하는 것으로, 해당 servlet 내에서만 사용할 수 있는 변수

hello com.hello.controller.HelloServlet

HelloServlet 타입의 hello라는 이름의 객체를 만들 거다.

-> HelloServlet hello = new HelloServlet();

1

: 몇 번째로 시작할건지.

hello /hello.do

/hello.do라고 요청이 되면 , 아까 hello라는 이름으로 생성해 둔 servelt한테 연결해줘

Servlet Life Cycle

init() -> service() -> doGet() -> destroy()

​ doPost()

​ (반복)

init -> service -> get방식이나 post방식이냐에 따라 요청을 반복처리한 후 종료

HelloServlet 생성! HelloServlet init! initParam : null contextParam : IU post 방식으로 들어옴!! {servlet}

-> initParam : null -> post

HelloServlet 생성! HelloServlet init! initParam : 정우성 contextParam : IU get 방식으로 들어옴!! [hello]

-> get

hello com.hello.controller.HelloServlet actor 정우성 hello /hello.do

.

.

.

hello

@WebServlet(“/controller.do”)

.

.

.

HelloServlet

(HelloServlet helloServlet = new HelloSErvlet(); )

어노테이션 사용했을 때랑 xml 사용했을 때랑 다르다.

@WebServlet(“/controller.do”) 이것도 객체 하나 만드는 거다. -> A

서블릿 객체


hello com.hello.controller.HelloServlet actor 정우성 hello /hello.do

이것도 객체 하나 만드는 거다.

<*

제일 중요한 거

/hello.do

-> B

앞에 hello.do 앞에 / 없으면 에러

하지만 나중에 Spring 가면 /있으면 에러

A 와 B의 경로가 절대 같으면 안된다.


객체 2개가 만들어졌다.

web.xml 은 서버가 실행될 때 가장 먼저 읽혀진다.

load-on-startup -> 1

서버가 다 실행되기 전에 읽혀서 실행됌?

html 문자열을 응답…-> 응답되는 데이터가 도큐먼트……._


Requset Scope :

클라이언트로부터 하나의 요청이 들어와서 서버가 일을 수행한 후 응답을 보낼 때까지, 계속 사용할 수 있는 scope.

그럼 reulst 를 눌렀을 때 request가 null인 이유는 응답을 보낼 때까지기 때문에 응답을 보내고 나면 없기 때문에?

servlet을 눌렀을 때 console창에 출력되는 request가 왜 null?

requset 처음으로 가서 갈때는 값이 없었는데

왜 버튼으로 수정해서 가니까 가지냐

  1. result를 눌렀을 때 requset가 왜 null 이냐

    페이지 하나에 requset와 response가 같이 있다.

    [index page] —————————> requset [result] ———————–> requset

    <—————————-response <——————— response

    : index의 requset에 값을 저장하고, result의 requset에 값을 달라고 했기 때문에 값이 null이다.

setAttribute : 담았다

getAttribute: 꺼냈다.

get/post방식으로 보내자 -> request.getParameter();로 받자


REST(API)

RESTFUL(API)

.. CRUD

doGet get방식 Read

doPost post방식 Create

doPut put방식 Update

doDelete delete방식 Delete

——————————–명확하게 구분하자는 개념

URI = Uniforom Resource Identifier

​ = URL + URN

Updated:

Leave a comment