JSP란? JavaServerPage로,
HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구이다.
JSP 가 실행되면 자바 서블릿(Servlet) 으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고
그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.
서블릿은 성능좋은 웹프로그램을 효과적으로 개발할 수 있지만, 프로그램 작성이 불편하다는 단점이있다.
JSP는 서블릿기술을 바탕으로 ASP처럼 쉽고, 빠르게 원하는 웹응용프로그램을 작성할 수 있다.
장점
- JSP는 Servlet보다 쉽고 빠르게 프로그램 작성
- JSP화면구성을 위한 HTML부분과 프로그램로직(Logic)을 분리할 수 있다
- (프로그래머와 웹디자이너가 협력작업할 수 있다.)
- 뛰어난 웹컨테이너는 효율적인 코드를 생성하기 때문에 서블릿보다 성능면에서 뛰어나다.
- 서블릿은 자바 프로그램이기 때문에 HTML의 페이지 디자인을 하기 위한 디자인도구가 부족한데, JSP는 HTML페이지 디자인도구들을 이용해서 작성할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% int value = 2; String result = " "; if(value %2 == 0) { result = "짝수"; } else { result ="홀수"; } %> value의 값은 <%=result %>입니다. <br> <%int value1 = 3; %> <%if(value1 % 2== 0){%> 짝수 <%}else {%> 홀수 <%} %> </body> </html> | cs |
JSP같은 경우에는 HTML과 같이 <body> 태그 안에 문법을 맞추어 작성할 수 있다.
<% ~~~ %> 를 이용해 JSP 시작과 끝을 알리며 이 안에 자바 언어를 사용해주면 된다.
다만 아주 주의할 점은 보여줄 데이터를 넣는 공간은 시작문장에 " = " 이 추가가 되어 표현식 <%= %> 와 같이 표현한다.
아주 오래전, 27줄부터 32줄과 같이 아주 이상하게 썼던 코드가 있었다.
이렇게 사용해도 되지만 최근엔 좀 더 편하게 개선되었지 않았을까?
Java Resources 파일에 패키지를 새로 만들어, Student.java 클래스를 만들어 주었다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | public class Student { private int year; private String name; private int score; public Student(int year, String name, int score) { super(); this.year = year; this.name = name; this.score = score; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } } | cs |
이후 다시 webapp에서 jsp파일을 만들어 아래와 같이 코드를 작성하였다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <%@page import="stu.Student"%> <%@page import="java.util.ArrayList"%> <%@page import="java.util.List"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% List<Student> list = new ArrayList<>(); Student s1 = new Student(3,"김길동",80); Student s2 = new Student(2,"이길동",60); Student s3 = new Student(1,"박길동",20); list.add(s1); list.add(s2); list.add(s3); %> <table> <tr> <td>학년</td> <td>이름</td> <td>점수</td> </tr> <%for(int i=0; i<list.size(); i++){ %> <tr> <td><%=list.get(i).getYear() %></td> <td><%=list.get(i).getName() %></td> <td><%=list.get(i).getScore() %></td> </tr> <%} %> </table> </body> </html> | cs |
패키지 안에 있는 클래스를 불러와 주기 위해 1번째 문장과 같이 import를 해주었고, 내용출력을 해주었다.
13번째 줄부터 22번째 줄까지, java의 List를 사용하여 배열을 정의해주었다.
저장된 리스트 배열들을 24번 째 줄에 HTML로 table을 만들어 표현해주었다.
반드시 JSP를 적용할 곳에만 <% %>를 사용하여 나타내주고, <tr>과 같이 HTML 문법이 있으면 시작 전에 닫아준다.
구구단 만들어보기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body topmargin="100"> <h1 align="center">구구단을 외자! 구구단을 외자!</h1> <table border="1" width="80%" align="center"> <thead> <tr> <% for(int i=2; i<10; i++){ %> <th><%=i %>단</th> <% } %> </tr> </thead> <tbody align="center"> <% for(int i=1; i<10; i++){ %> <tr> <% for(int j=2; j<10; j++){ %> <td><%=j %> * <%=i %> = <%=i*j %></td> <% } %> </tr> <% } %> </tbody> </table> </body> </html> | cs |
'✨ Back-end > JSP' 카테고리의 다른 글
[JSP] 스크립트 기반 태그 5가지 (스크립트릿, 표현식, 선언문, 지시자, 주석문) (0) | 2023.08.13 |
---|---|
[JSP] 기본객체(Page, Request, Session, Application), 서블릿 스코프(Scope) (0) | 2023.08.09 |
[JSP] 한글 깨짐 현상 에러 해결하기 (0) | 2023.02.18 |
[JSP] form태그 이용해서 페이지 이동 (2) (0) | 2023.02.10 |
[JSP] form태그 이용해서 페이지 이동 (1) (0) | 2023.02.10 |
댓글