본문 바로가기
코딩/JSP

JSP의 정의부터 설정, 기본적인 문법으로 간단한 퀴즈 프로그램 만들기

by YDDE- 2021. 11. 2.

1. JSP 정의

 

JSP는 쉽게 말해서 자바와 HTML을 이어주는 역할을 하는것.

 

자바 코딩을 짜고 출력하는 그대로 사용자에게 내보낼수도있지만,

 

디자인적인 감각을 살려 내보낼수도있다.

 

디자인적인 감각을 살리기 위해 HTML,CSS를 써서 결과를 예.쁘.게 내보냄.

 

그리고 자바에서 나온 결과를 HTML을 적용해서 출력하기 위해서 JSP를 쓴다.

 

한페이지 안에 자바의 코드와 HTML을 쓸수도 있고, 넓게는 자바스크립도 쓸수있기때문에

 

개발자는 간단하게 코드를 짤수있고, 이용자는 좀더 빠르게 이용할수있다.

 

 

 

 

 

 

 

 

2. 설정

 

자바언어와 HTML을 쓰기때문에 어느 프로그램을 써도 JSP를 지원한다.

대부분 이클립스를 쓰는 만큼 (라기보단 내가 씀ㅋㅋㅋ)

이클립스에서 톰캣이라는 서버툴을 설치해야한다.

JSP는 웹에서 움직이기때문에 가상 서버가 있어야 내가 짠 결과를 실행해서 결과를 볼수있고, 

따라서 톰캣의 설정은 필수적이다.

 

 

* 이클립스에서 톰캣 설정법

파일 -> 신규 -> 프로젝트 -> web -> 동적 web프로젝트를 선택하고, 이름을 설정해준다.

타켓/랜덤이라는 란이 있는데 거기에 톰캣을 선택하고 완료버튼 누르기.

 

톰캣은 지금 이클립스 버전, 설치된 자바 버전에 따라서 버전이 다를수 있는데,

내 경우는 Tomcat9이고, 자바 11기준임.

 

 

 

서버는 정해진 디렉토리안에서만 작동하므로 반드시 정해진 디렉토리에

jsp, html파일을 만들어야 하는데,

대부분 동적 웹 프로젝트로 프로젝트 파일을 만들었다면,

webcontent파일이 들어 있을거임.

 

아래 사진과 같이 webcontent 파일 안에 jsp, html을 만들자.

 

 

 

요렇게 webcontent에 파일을 만들자.

 

 

 

 

 

 

 

 

 

 

3. 기본적인 문법

 

JSP는 HTML과 함께 사용할수도있고, 따로 사용할수도 있다,

이를테면 html파일로 예쁘게 꾸며서 사용자에게 보여준다.

html화면에서 사용자가 뭔가 동작을 명령하거나 실행하면,

그 명령이 html파일 -> jsp파일로 날라가서 결과를 출력한다.

 

따라서 JSP에 자바문법을 넣고, HTML화면은 디자인적 요소만 넣어서 꾸밀수있고,

따로 각자의 JSP/HTML  파일을 만들어서 주거니 받거니 할 수 있다.

 

JSP는 대부분 연산법은 자바와 같다.

그렇지만 HTML도 함께 쓰이다보니 자바와 다른 태그도 있는데 , 간단히 소개하자면 아래와 같다.

 

 

 

 

 

<% ............... %> : 한단락을 나타내는 JSP의 태그

 

HTML스러운 태그라고 생각한다. html이 시작과 끝에 태그를 주렁주렁 달고있는것과 같이, JSP도 달고있다.

JSP는 <HEAD><body>같은 html 태그들도 JSP에서 사용하고 있다.

그리고 독자적으로도 태그를 만들어 사용하는데,  그게 <% %> 문법이다.

HTML과 자바를 섞어쓰면 뭐가 자바문법이고 뭐가 HTML인지 모르기때문에, 자바 문법에 붙여준다.

 

또한 여러개의 자바문법을 사용할경우, 단락을 나타나기때문에 당연히 하나의 JSP에 여러개의 <% %>태그를 쓸수있다.

 

어디서 끊고 어디서 시작할지는 개발자 마음임.(혹은 프로젝트 팀의 룰에 따름)

변수선언을 한번해주고 반복문으로 간다 했을때 태그 하나로 합쳐서 쓸수도 있고,

변수선언에서 태그 한번쓰고 닫고, 다시 반복문에서 열고 닫고 할수도 있다.

(주로 성격이 달라질때 태그를 닫고, 새태그를 씀)

 

 

 

 

 

<% out.println :"........"; %> : 출력을 나타내는 문법

 

자바에서는 system.out.println였다면 JSP는 시스템이 아니라 웹상에서 움직이므로 시스템을 빼고 아웃 프린트로 적는다.

 

 

 

 

 

<%! ...............%> : JSP의 변수선언

 

주로 jsp는 변수를 받아와서 처리를 하는 역할이기때문에 변수선언을 잘 하진 않지만,

선언해야 할 경우에는  <%! %>안에서 변수선언을 한다.

 

예) <%! public string K = "Power Plant"; %>

 

 

 

 

 

<%= ...............%> : JSP의 출력선언

 

<% out.print("..........."); %> 와 같은 의미다

HTML에 표시(출력)하고싶을때 이 문법으로 간단하게 표현할수있다.

 

예) <%= obj.getId() %> 

자바의 오브젝트로 설정된 id에 해당되는 값이 out.print메소드 없이도 바로 뜬다.

 

 

 

 

<%@...............%> : JSP의 지시자선언

 

페이지 전체에 영향을 미치는 지시자를 선언할때 사용.

자바의 import같은 클래스나 패키지 삽입, 인코딩언어 지시 등에 사용됨. 

주로 코드의 선두에 위치하는 경우가 많음.

 

예) <%@ page import="java.util.*" %> 

자바에 내포된 패키지(arraylist등)를 삽입함. 

 

 

 

 

 

<%--................--%> : JSP의 주석

 

<%--주석내용--%>의 형태로 쓴다.

/*  */ 또한 JSP에서 주석으로 쓸수있다.

 

키보드로 쓰는건 번잡스럽기때문에 이클립스를 쓴다면 단축키를 쓰자.

이클립스 단축키 : SHIFT + CTRL + /

 

 

 

 

 

 

 

 

 

 

 

4. HTML화면에서 버튼을 누르면 결과가 나오는 JSP/HTML 만들기

 

HTML에서 퀴즈화면을 간단히 만들고 -> 정답을 선택하면 맞는지 틀렸는지를 출력하는 JSP를 자바를 사용해서 만들기

 

 

-----------------HTML화면 --------------------

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Quiz</title>
</head>
<body>
<h1>다음중 태그를 써서 웹페이지를 만드는 것은 무엇일까?</h1>  
<a href="Quiz.jsp?answer=1">1.HTTP</a><br>   
<a href="Quiz.jsp?answer=2">2.FTP</a><br>
<a href="Quiz.jsp?answer=3">3.HTML</a><br>
<a href="Quiz.jsp?answer=4">4.EXCEL</a><br>
</body>
</html>

 

링크 설정할때 쓰는 HTML문법 ; a href="링크"

-> 링크안에서 ?(물음표) 기호를 사용하면 해당 링크로 넘어갈 때 조건같은 것을 설정할수 있음.

 

따라서 

 

<a href="Quiz.jsp?answer=1">1.HTTP</a><br> 

-> jsp파일을 링크로 설정해놓고, 해당버튼을 누르면 변수 answer가 1로 넘어감

 

변수 여러개를 넘기고 싶을때는 &로 이어줌 

예)<a href="Quiz.jsp?answer=1&answer = 2">1.HTTP</a><br>

 

 

 

 

 

 

 

-------------------------------- JSP화면----------------------------

 

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Answer</title>
</head>
<body>
<% String answer = request.getParameter("answer");

if(answer.equals("3")){
out.println("정답!");
} else {
out.println("틀렸음");
} %>
</body>
</html>

 

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>

-> 인코딩이 안되서 한글이 깨질수 있기때문에 반드시 위와같이 utf-8로 인코딩과 글자코드를 바꿔준다.

만약에 이렇게 해도 깨지면 구글 검색고고.. 여러가지 경우의 수정하는 법이 나옴

 

<meta charset="utf-8"> 

->마찬가지로 utf-8로 설정 (아마 jsp파일 생성하면 기본적으로 이렇게 나올것임. )

 

<% String answer = request.getParameter("answer"); 

-> answer라는 변수를 string answer로 받는다는 명령어

여기서, 주의해야할 것은, HTML에 나온 answer가 숫자 였기때문에 int로 설정해선 안된다.

이미 HTML에서 JSP로 날라오는 순간 이미 문자열로서 날라오기때문에 무조건 string으로 적어줘야 함.

그렇기에 당연히 조건문에서도 ==가 아닌, equals를 써줘야 함.

 

 

 

 

 

-------------------------------------------------------------

 

 


 

 

 

 

 

댓글