์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋ฐ์ํ
- ๊ฐ๋ฐ
- ์ค๋ผํด
- ์นํ์ด์ง๋ง๋ค๊ธฐ
- ๋ผํ๋ผ์ค์๋ง๋
- ์ปดํจํฐ๊ณผํ
- ํ๋ก๊ทธ๋๋ฐ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ๋ ์
- JavaScript
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- ๋ฆฌ์กํธ
- ์นํผ๋ธ๋ฆฌ์ฑ
- Python
- ํ์ด์ฌ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์๋ฐ์คํฌ๋ฆฝํธ
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- database
- ์ฝ๋ฉ
- Java
- K๋ฐฐํฐ๋ฆฌ
- ์ค๋ธ์
- ๋ง์ผ๋ด๊ฐ์ธ์์๋ค์์ฐ๋ค๋ฉด
- html
- ์ฑ
- css
- ์๋ฐ
- ์ํ
- ComputerScience
- Today
- Total
JiYoung Dev ๐ฅ
[JSP/Servlet] JSP ํ์์ฑ๊ณผ ํน์ง, ๊ตฌ์ฑ์์ (2023.05.15) ๋ณธ๋ฌธ
[JSP/Servlet] JSP ํ์์ฑ๊ณผ ํน์ง, ๊ตฌ์ฑ์์ (2023.05.15)
Shinjio 2023. 5. 15. 17:15๐ JSP(JavaServer Pages) ๊ฐ์
๐ JSP๋?
HTML ์ฝ๋์ JAVA ์ฝ๋๋ฅผ ๋ฃ์ด ๋์ ์นํ์ด์ง๋ฅผ ์์ฑํ๋ ์น์ดํ๋ฆฌ์ผ์ด์ ๋๊ตฌ
Java ์ธ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ Server Side ์คํฌ๋ฆฝํธ ์ธ์ด
์ธ์ด์ ์ข ๋ฅ
์ปดํ์ผ ์ธ์ด
- ex. Java
- ๋ฒ์ญ์ ๋๋
- ์ฝ๋๋ฅผ ํ๋ฒ์ ํด์ํด์ ๋์ค์๋ ์คํ๋ง
- ํด์์ ์ค๋๊ฑธ๋ฆฌ์ง๋ง ์คํ์ ๋น ๋ฅด๋ค
์ธํฐํ๋ฆฌํฐ ์ธ์ด(Python)ํต์ญ - ํ ์ค์ฉ ํด์ํ๊ณ ์คํํ๋์ ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๋ฐ ์ฌ์ฉ์คํฌ๋ฆฝํธ ์ธ์ด(JavaScript, JSP)์ธํฐํ๋ฆฌํฐ ์ธ์ด์ ์ํจํ ์ค์ฉ ํด์ํ๊ณ ์คํ๋ง๋ค์ด์ง ํ๋ก๊ทธ๋จ์ ์ ์ดํ ๋ ์ฌ์ฉ
๐ JSP๊ฐ ํ์ํ ์ด์
โ Servlet์ ํน์ง
ํ ํด๋์ค ๋ด์ Business Logic๊ณผ Presentation Logic์ด ๊ฐ์ด ์์ฑ๋จ
(Business Logic : ๋ฐ์ดํฐ ๋ฐ์์ ๊ฐ๊ณต ๋ฐ ์ฒ๋ฆฌ ์ํ)
๐ JSP vs Servlet
์นํ๋ก๊ทธ๋จ์ ๋ง๋ค๋์๋ Servlet๊ณผ JSP๋ฅผ ์์ด์ ์ฌ์ฉ
๋ก์ง ๊ตฌํ > Servlet
ํ๋ฉด ๊ตฌ์ฑ > JSP
๋๋ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ ๋ง๋ค.
๐ JSP์ ํน์ง
- .jsp์ ํ์ฅ์๋ฅผ ๊ฐ์ง
- ๋์ ์ผ๋ก ์๋ํ์ฌ ์๋ต์ HTML์ ์ด์ฉํจ
- jsp >> ์๋ธ๋ฆฟ(.java) >> ํด๋์ค(.class) >> html๋ก ๋ณํ๋์ด ์คํ๋จ
HTML์ ์๋ฐ ์ฝ๋๊ฐ ์์ผ๋ฏ๋ก ๋ฌด์กฐ๊ฑด ์ปดํ์ผ ๋์ด์ผ ํจ
jsp ํ์ผ ์์ฒด๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต๋๋๊ฒ ์๋. ์ปดํ์ผ ๋ ํ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต
jsp ์ปดํ์ผ๋ ์ ์๋๋ก ์๋ฐ๋ก ๋ณํ์ด ๋์ด์ผ ํ๋๋ฐ ์ด ์ญํ ์ WAS ๋ด Web Container (ํ๋ก๊ทธ๋จ์ ์คํ์์ผ์ฃผ๋ ์ญํ ) ๊ฐ ์์์ ์งํํด์ค
์ฐ๋ฆฌ๋ jsp๋ฅผ ์ฐ์ง๋ง web container ์์์ ์๋์ผ๋ก ์๋ฐ ํ์ผ๋ก ๋ณํ (.java) > ์ปดํ์ผํด์ .class ํ์ผ๋ก ๋ณํ > ์คํํ๋ฉด ์ ์ ๋ฆฌ์์ค์ธ html๋ก ๋ณํ > ์ด ์ ์ html์ ์๋ตํด์ฃผ๋ ๊ตฌ์กฐ
๐ JSP ์์ฑํ๊ธฐ
jsp ํ์ผ์ webapp ํด๋ ๋ด์ ์์ฑ
๐ JSP ๊ตฌ์ฑ์์
<%@ : ์ง์์
JSP์ ๋ํ ์ค์ ์ ๋ณด ๋๋ JSP ํ์ด์ง์ ๋ค๋ฅธ ๋ฌธ์๋ฅผ ํฌํจ์ํฌ ๋ ์ฌ์ฉ
footer ๋ฑ ๋ง๋ค์ด์ง ํ๋์ ๋ฌธ์๋ฅผ ๊ฐ์ ธ๋ค๊ฐ ์ฐ๊ณ ์ถ์ ๋ (๋ฉ์๋์ ์ ์ฌํ๊ฒ)
<%! : ์ ์ธ๋ฌธ
JSP ํ์ด์ง ๋ด๋ถ์ ์๋ฐ ๋ฉ์๋, ๋ณ์๋ฅผ ์ ์ธํ๊ธฐ ์ํด ์ฌ์ฉ
๋ณ์ ์ ์ธ, ๋ฉ์๋ ์ ์ธ
<% : ์คํฌ๋ฆฝํธ๋ฆฟ
JSP ํ์ด์ง ๋ด๋ถ์ ์๋ฐ(Java) ์์ค์ฝ๋๋ฅผ ์ฝ์ ํ๊ธฐ ์ํด ์ฌ์ฉ
java Class ๋ด์ ์์ฑ๋๋ ์ฝ๋ ๊ทธ๋๋ก ์์ฑ
(๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ)
๋ณ์ ์ฌ์ฉ. ๊ฐ ์์ฒญ. ์๋ต ๋ฑ
์ฐ๋ ์์น๋ ์ค์ํ์ง ์์
<%= : ํํ์
์ถ๋ ฅ๊ฒฐ๊ณผ(HTML ์์ ๋ด)์ ๊ฐ์ ๋ฃ๊ธฐ ์ํด ์ฌ์ฉ
HTML ์์ ๋ด์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ฃ๊ธฐ ์ํด ์ฌ์ฉ.
ํํ์ ์์ ์๋ ๊ฐ๋ค์ ์ฌ์ฉ์ ๋์ ๋ณด์. HTML ๋ฌธ์ ๋ด์์ ์ถ๋ ฅ์ด ๋๋ค๋ ๋ง
โ JSP ํ๊ทธ ์ฌ์ฉ ์ค์ต
<!-- ์ง์์(Directive) : JSP ์ค์ ์ ๋ณด ๋ฐ ๋ค๋ฅธ ๋ฌธ์์(๋ฅผ) ํฌํจ ๋ฑ -->
<!-- ์ง์์์ ์ข
๋ฅ : page, include, taglib(tag library >> ex. JSTL) -->
<!-- contentType : ์๋ต๋ฐ์ดํฐ์ ํ์๊ณผ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ)์๊ฒ ์๋ ค์ฃผ๊ธฐ ์ํจ -->
<!-- pageEncoding : JSP ํ์ด์ง์ ๋ํ ์ธ์ฝ๋ฉ ์ง์ -->
<%@page import="java.util.Random"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<!-- charset : html ๋ฌธ์์ ๋ํ ์ธ์ฝ๋ฉ ์ง์ -->
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- ์คํฌ๋ฆฝํ๋ฆฟ(Scriptlet : JSP ํ์ด์ง ๋ด๋ถ์ ์๋ฐ ์์ค ์ฝ๋ ์ฝ์
) -->
<!-- ์คํฌ๋ฆฝํ๋ฆฟ ๋ด์ ์์ฑํ ์ฝ๋๋ ๋ชจ๋ service() ๋ฉ์๋ ์์ ์์ฑ๋จ -->
<%
// JSP ๊ตฌ์ฑ ์์ ๋ด์์๋ ์๋ฐ ์ฃผ์ ์์ฑ
// ์คํฌ๋ฆฝํ๋ฆฟ ์์์๋ ๋ฌด์กฐ๊ฑด ; ์์ฑํด์ผ ํจ
System.out.print("Hello"); //์ดํด๋ฆฝ์ค ์ฝ์์ฐฝ์ ์ถ๋ ฅ
int num = 10;
int num2 = 20;
Random rd = new Random();
int ran = rd.nextInt(10);
// out ๊ฐ์ฒด๋ฅผ ์ ์ธํ ์ ์์ง๋ง jsp์ฝ๋๊ฐ ์๋ฐ ์ฝ๋๋ก ๋ณํ๋๋ฉด์ WebContainer๊ฐ ์๋์ผ๋ก out ๊ฐ์ฒด(๋ด์ฅ๊ฐ์ฒด)๋ฅผ ์์ฑํจ
out.print(ran + "<br>");
// out.println - ์ฝ๋๋ง ๊ฐํ(ํ๋ฉด์ ๊ฐํX) >> ํ๋ฉด์ ๊ฐํํ๋ ค๋ฉด <br>
%>
<!-- ํํ์(Expression : ํ๋ฉด(์น๋ธ๋ผ์ฐ์ ์)์ ์ถ๋ ฅํ๊ธฐ ์ํด ์ฌ์ฉ, ; ์์ฑ X -->
<%=ran %><br>
<%="String" %><br>
<%="ํ"+"์คํ" %><br>
<!-- ์ ์ธ๋ฌธ(Declaration) : ์๋ฐ ๋ฉ์๋, ๋ณ์๋ฅผ ์ ์ธํ๊ธฐ ์ํด ์ฌ์ฉ -->
<!-- ์ ์ธ๋ฌธ ์์ ์์ฑํ ์ฝ๋์ ์์น๋ ํด๋์ค ์ด๋ฆ ๋ฐ๋ก ๋ฐ, ์ ์ญ -->
<%! int num3 = 100; %>
<%!
public void print(){
System.out.println("print!");
}
%>
</body>
</html>
์ค์ต 2.
<%@ 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>
<table border=1>
<tr>
<%
for(int i = 1; i <= 10; i++){
out.print("<td>" + i + "</td>");
}
%>
</tr>
</table>
<table border=1>
<tr>
<%for(int i = 1; i <= 10; i++){%>
<td><%=i %></td>
<%}%>
</tr>
</table>
</body>
</html>
์ค์ต 3.
<HTML ์ฝ๋>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Ex02Output.jsp" method="post">
<input type="text" name="data">
<input type="submit">
</form>
</body>
</html>
<JSP ์ฝ๋>
<%@ 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>
<%
request.setCharacterEncoding("UTF-8");
String data = request.getParameter("data");
out.print(data);
%>
<%=data %>
</body>
</html>
์ค์ต 4.
<html ์ฝ๋>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Ex03Output.jsp" method="post">
<input type="number" name="num1">
<br>
<input type="number" name="num2">
<br>
<select name="ope">
<option>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select>
<input type="submit" value="๊ณ์ฐ">
</form>
</body>
</html>
<JSP ์ฝ๋>
<%@ 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>
<%
request.setCharacterEncoding("UTF-8");
int num1 = Integer.parseInt(request.getParameter("num1"));
int num2 = Integer.parseInt(request.getParameter("num2"));
String ope = request.getParameter("ope");
int result;
if(ope.equals("+")){
result = num1 + num2;
}else if(ope.equals("-")){
result = num1 - num2;
}else if(ope.equals("*")){
result = num1 * num2;
}else{
result = num1 / num2;
}
//์ถ๋ ฅ๋ฐฉ๋ฒ 1)
out.print(num1 + ope + num2 + "=" + result);
%>
<!-- ์ถ๋ ฅ๋ฐฉ๋ฒ 2) -->
<%= num1 %>
<%= ope %>
<%= num2 %>
=
<%= result %>
<!-- ์ถ๋ ฅ๋ฐฉ๋ฒ 3) -->
<%= num1+ope+num2+"="+result %>
</body>
</html>
JSP๋ url mapping ๊ฐ๋ฅ
'full stack > Back-End' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JSP/Servlet] Scope (2023.05.18~19) (0) | 2023.05.19 |
---|---|
[JSP/Servlet] ์ ์ธ๋ฌธ, ์ง์์, ๋ด์ฅ๊ฐ์ฒด (2023.05.16) (0) | 2023.05.16 |
[JSP/Servlet] ๋ฐ์ดํฐ ์ ์ก GET/POST(2023.05.12) (0) | 2023.05.12 |
[JSP/Servlet] Servlet ๊ฐ์, ๋ฐ์ดํฐ ์ ์ก (2023.05.10) (0) | 2023.05.12 |
[JSP/Servlet] Server์ Servlet ๊ฐ์ (2023.05.09) (0) | 2023.05.09 |