Backend/JSP

JSP(1)/톰캣 환경설정/ scriptlet

creativeDeveloper! 2022. 10. 1. 00:10
728x90

우리는 http 프로토콜을 통해서 통신을 JAVA 로 구현 해 보았다.


 JAVA 로 이를 구현하기엔 코드가 복잡하다.


 그래서 우리는 간단하게 Web 을 처리 할 수 있는 Script 언어인 JSP 를 사용 한다.

그리고 JSP 를 JAVA 코드로 자동 변환 해 주는 것이 WAS 인 TOMCAT 이다.

톰캣을 키고 있으면 포트번호를 사용해 옆사람 ip로 들어갈수 있다.

마리아 db의 경우 포트번호는 3301

그래서 톰캣의 역할을 정리해보면...

* 톰캣의 역할

1. 웹서버의 역할

2. JSP를 통해서 자바로 번역되는 역할을 톰캣이 해준다.

이제 JSP 프로젝트를 만들어보자

순서는 다음과 같다..!

Dynamic Web Project → New Runtime → Apache Tomcat v9.0 → (create new local server 체크 X) → Tomcat Installation directory: C:\apache-tomcat-9.0.65 → JRE: jre(밑에꺼)

 

톰캣은 자바로 만들어져서 자바실행환경 jre를 선택해주면 된다.

404- 요청페이지가 없다는 뜻

페이지를 요청한 적도 없는데 왜 없을까..?

요청한 파일이 없기 때문에

Connector 요청이 오면 톰캣에서 스레드를 만들어서 준다.

우리가 주로 만지는건 timeout이나 port번호

그래서 포트번호나 서버를 바꾸고 싶으면 server.xml에서 바꾸면 된다

그리고 JSP는 스크립트 언어이기 때문에 컴파일 없이 인터프리터로 즉시 실행될 수 있는 언어이다. 자바스크립트처럼 따로 만들지 않아도 바로바로 바뀌는것이다. 단, 톰캣이 있어야 한다. 단점은 속도가 컴파일언어보다 느리다

그에 반해 컴파일 언어는 파일을 하나 만들고 그 파일로 실행하는것이다.

index.jsp를 먼저 만들어줘야하는데 그 이유는 web.xml에서 index로 먼저 읽기 때문이다.

 

JSP는 아래와 같은 식으로 표현해 주어야 한다.

가운데 <li> 태그만 html 태그이기 때문에 제외하고 나머지에는 꺾쇠를 넣어준다..!

다른페이지에 있는 것을 불러와 내것처럼 쓴는것 inclod이다

 

scriptlet/ 뒤에 파일명을 넣어서 원하는 페이지로 이동해줄수 있다.

header 영역을 만들고

footer 영역을 만들고

html과 jsp를 혼합해서 사용할때,

변수나 메서드를 선언할때는 <%! 를사용

자바로직을 표현할때  <%

출력할때는 <%=을 사용한다

다른 파일에서 가져오면 웹에서는 하나의 파일을 가져온 것으로 인식한다 

그래서 불러온 파일에서 style 설정이 가능하다.

톰캣에 JSP 파일에 자바와 HTML 파일이 잘  만들어졌는지 확인할때!

 

* 내장객체

너무 잘쓰는 객체!

뒤에 붙은 기다란 설명들이 -> parameter

parameter는 request에 담겨서 온다.

form으로 던지고 request로 받아줘야한다.

보내는 이름과 받는 이름이 항상 같아야 한다..!!

하나씩 가져올때는

 

hobby의 값들이 여러개이기 때문에 배열로 가져와야한다

그래서

getparametervalue(s)로 가져오기!

 

요청하는 흐름과 요청받는 데이터의 양 , 데이터를 주는 쿼리를 잘 짜면

어렵지 않다고..!!

 

URL과 URI 의 차이점!!

URL은 LOCATOR는 위치가 다 나오는것으로

 클릭하면 정확하게 가는것. 링크를 제공해주는것

URI가 조금 더 큰개념으로 앞에 있는 상세주소가 빠져있고대략적인 위치를 알려준다.저장 객체에는 종류가

request 객체와 response 객체가 있는데

이 둘은 내장객체이기때문에 객체생성을 해주지 않아도

바로 사용 할 수 있다..!

client가 server에 요청할때 쓰이는 객체가 request객체

쉽게 설명하면

네이버에서 우리가 오늘의 뉴스를 읽고 싶을때 클릭하는 

행위 자체가 서버에 요청하는 request가 되고

서버에서는 우리의 클릭에의해서 요청된것을 보여주게 되는데

이것이 response이다.

 

 

* response 객체

한가지만 쓰는 것이 가장 좋다

두번째  방식은 사용하기 위해서는 순서를 알아야 한다.

특정한 페이지로 보내는게 -> redirect

사용자 입장에서는 바로 최종페이지로 가는것 같은 착각을 갖게 하는....

그렇다면 이 불필요한 일을 왜할까..?

sendredirect

그렇다면 이렇게 웹에서 만들어진 특정 데이터를 저장하려면 어떻게 해야할까?

이 경우 쿠키와 세션이라는 저장 객체를 이용하는데 이 둘은

저장 위치가 서로 다르므로 사용법과 보안 수준이 다르다.

 쿠키의 경우

client 에 저장하고 Java script 로도 제어 가능, 보안에 취약한 특징이 있고

세션의 경우

server 에 저장하고, Server side program 으로만 제어 가능하며 보안성이 우수하다 는 특징이 있다.

 

 

setMaxAge()라는 메서드를 통해

얼마나 데이터가 유지될지 10분으로 지정하였다(초단위)

그리고 해당 쿠키를 response를 통해

addCookie()로 저장했다.

 

여기까지 해보고

페이지를 실행해서 f12를 눌러

개발자 실행도구를 연다.

name의 값은 강소라라는 

cookie가 생성된 것을 볼 수 있다.

 

 

 

728x90