[스마트인재개발원] JSP & Servlet 같이 쓰기

Lenny·2022년 2월 3일
0

스마트인재개발원

목록 보기
4/9

긴듯 짧은듯 연휴가 끝났다. 다들 올해도 새해복 많이 받으시고 많은것들을 이룰 수 있는 한 해가 됬으면 좋겠다!

오늘은 JSP & Servlet을 같이 다루는 법에 대한 내용정리를 소프트하게 해보려구한다!

그럼 바로 시작~!

Let's Start

우선 시작하기전에 간단하게나마 JSP가 뭔지 알아야한다. (서블릿은 이전 포스팅에 있다 😘 )

JSP

JSP는 자바 서버 페이지의 약자이다.

자바 서버 + 페이지 인것이다.

서블릿이 그냥커피면 JSP는 TOP야... 😘

JSP가 왜 티오피인지 알아보자.

우선 서블릿은 요청(request)을 받고 받은 데이터를 핸들링하거나 PrintWriter로 응답페이지를 그려줄 수 있었다.

근데, 응답페이지를 PrintWriter로 그리는데는 한계가있다. Why?

👇👇👇👇👇👇👇👇👇 LOOK AT THIS 👇👇👇👇👇👇👇👇👇

오우쉣,,,....

이런식으로 응답페이지를 그려주고싶은 사람이 있을까~? 위 사진은 정말 정말 심플한 예제의 경우라서 그려줄만했었다. 근데 더 복잡한 페이지를 그려야한다면? WTF 소리가 절로 나올 것이다. ( 스타일도 넣어줘야지..? )

이제 러블리한 JSP 코드를 한번 보도록 하자.

(내가 수업을 들으면서 가져온 코드... 깔끔하지않다 ㅠ ㅠ.. 주석도 많음..)

여기서 주목해야 할 점은! html 태그랑 자바코드를 같이 쓴다는거!!!

위 사진을 잠깐만 봐도 감이 오지 않나요? 자바코드와 html태그가 자연스럽게 어우러지고있다.

이게 JSP를 쓰는 이유다. 그리고 JSP는 서블릿이 할 수 있는걸 할 수 있다. 아마 다는 아니지만 어느정도? 할수있는걸로? 예측이 된다. 한번 볼까?

이거 JSP다. 서블릿아니다.

근데 지금 코드에서 혹시 "request" 가 보이나?

JSP 내장객체중에서 request, response를 핸들링할 수 있게 해주는 썸띵스페샬이 있다!

이게 바로 J. S. P. 다.

이름값하는 모습을 아주 잘 보여주고있다. 괜히 자바 "서버" 페이지가 아니다.

JSP에 대해선 진짜 이정도로 간략하게 알아보는 정도로만 기록을하고~!

JSP + Servlet 에 대한 내용을 포스팅해보도록 하겠다!

(스크립틀릿, 표현식, 선언문 등등 자바코드를 쓸 수 있는 공간을 지칭하는 용어들이 있긴한데 적을 타이밍 놓침 ㅠㅠ)

JSP + Servlet

이제 JSP와 Servlet을 같이 쓰는 예를 한번 볼껀데 이런 의문이 생길 수 있다.

JSP가 써블릿 역할 할 수 있땀서요! 근데 왜 같이써요? 걍 JSP만 쓰면안됌?

안되는 이유를 한번 가볍게 차근 차근알아보도록하자.

왜 안될까? JSP의 생김새를 보거라. 어떻게 생겼나?

바로 이렇게 생겼다.

근데 여기에 스크립틀릿을 열고 그 안에 백엔드 코드만 들어간다고 상상을 해보자...

눈코딩해보셈

어떤 모습이 그려지나요....?

저 html 태그들이 아주 거추장스럽게 보이지않나요....? 어차피 서버 관련된 코드밖에 없는데...

이게 첫번째 이유다..

두번째 이유는 우리가 웹 개발할때 자주 쓰는 디자인 패턴이 있다.

MVC 패턴이다.

근데 JSP파일은 Model View Controller 중에서 어디에 해당될 것 같아요?

View가 착 하고 떠오르지 않는가? 우리한테 보여주는 페이지잖아!

그리고 JSP 파일은 우리가 우리 프로젝트의 어디에 생성할까?

저기 webapp 폴더에 귀여운 햄스터들처럼 옹기종기 모여있다. html 파일도 보인다.

View가 들어가는 폴더라고 유추 할 수 있다.

근데 여기에 서버 관련 코드만 댕그러니 있는 JSP 파일이 있다고 생각을 해보자.

View만 있는곳인데 막 서버코드만 있는 얘가 껴있다고! 번짓수 잘못 찾았다고!

아마 저 파일들이 살아있는 생물이었다면 서버 코드만 가지고 있는 JSP 파일한테 한 마디 했을 것이다.

"너 나가."

.
.
.

우리가 MVC 패턴 할 때 분리를 어떻게 시켰었쥬?

Model 패키지에는 Model만, Controller 패키지에는 Controller만, View 패키지에는 View만.. 이런식으로 나눴다!!! 그러면 서버관련코드만 가지고 있는 서버파일은 어디로 가야할까?

당연히 Controller 쪽으로 가야하지않을까? 그리고 가는김에 JSP -> Servlet 으로 신분세탁도 해야한다.

서버코드만 가지고 있는 주제에 JSP라는 옷은 너무 과분하다.

아무튼 이게 JSP + Servlet 을 같이 써야하는 이유임! JSP 올인이 아니라!!! 분리해서 쓰려구!!!!!
(아마 내가 모르는 다른 이유도 많을것임!!!)

아무튼 이제 진짜루.. 오늘 배운거 정리해보도록 하겠삼

회원가입 페이지

오늘은 회원가입 정도만 간단하게 구현을 했다. with DB

우선 디렉토리를 먼저 소개시켜드릴께욤.. 이거 틀고 구경하셈요 👇

자~ 우선 JDBD_WEB 이라는 프로젝트명이구요~

src/main/java 아래 JoinCon, loginCheck 가 있구!

밑으로 내려와서 webapp 쪽에 보면 로그인 조인 메인 등등 식구들이 많은 모습을! 찾아볼 수 있습니다!

한 파일 한 파일 소개를 시켜드릴께요~

JoinCon.java : 회원가입 관련 로직을 담당하고 있는 친구입니다! DB랑 소통할 수 있는 능력자죠. 서블릿입니다!

loginCheck.java : 뭐야 이 녀석은 (로그인 관련 연습용 파일이었습니다 ㅎ)

join.html : 회원가입 페이지를 담당하는 친구입니다~

login.html : 로그인 페이지를 담당하는 친구!

loginF.jsp : 이 친구는 우리가 로그인을 실패했을때 실패를 안내하기 위한 페이지입니다.

loginS.jsp : loginF 와 쌍둥이입니다. 이 친구는 로그인이 성공하면 성공을 안내해줍니다 ㅎㅎ

main.html: 이 친구는 메인페이지입니다! 각종 페이지로 안내하는 역할을 합니다! 회원가입 페이지, 로그인 페이지 뭐 이런데로~ 드갈수 있게 해줍니다!

이제 본격적으로 회원가입 관련된 부분을 살펴보아요~

join.html

JoinCon에 post 방식으로 사용자가 입력한 id, pw, nick 을 보낸다!

JoinCon.java

잠깐! JoinCon.java를 보기전에 DB + Servlet 한번 알아보자

우리가 전에 DB를 썼을땐 그냥 자바프로젝트에서 라이브러리를 불러와서 사용했었는데, 지금 만든 프로젝트는 동적 웹 프로젝트이고, 라이브러리를 불러오는 방법이 살짝 다르다. 근데 더 간단하다.

이거보셈

그냥 ojdbc6.jar 파일을 webapp - WEB-INF - lib 아래에 넣어주면 끝남 AWESOME


이제 진짜 코드를 살펴봐용

이 부분은 그냥 이따가 DB랑 연결하려면 DB URL, ID, PW 필요한데, 위 쪽에 상수로 초기화 해 준 것이다!

살짝 내려오면 이 부분이 보일텐데, 이 부분도 아주 아주 아주 설명할게 별로 없다.
request.setCharacterEncoding("euc-kr") ; 이 부분은 인코딩 관련 코드이다.
내가 join.html 에서 post 방식으로 서버에 데이터를 request 할건데, 저걸 안써주면 한글이 세상에서 제일 못생긴 문자로 나온다. 그래서 써준거임!

그리고 그 아래는 join.html에서 보내준 id, pw, nick 값을 저장하는 부분!!

노래도 한곡 듣고가세요~ 😘

제가 요즘 꽃힌 노래임 ㅎㅎ

#내일배움카드, #국비지원, #취업연계, #취업성공패키지

스마트 인재 개발원

profile
🧑‍💻

0개의 댓글