HTML 코드에 자바 코드를 넣어 프로그램이 수행할 기능을 구현할 수 있다.
선언문(declaration)
자바 변수나 메서드를 정의하는데 사용하는 태크
<%! ... %>
스크립틀릿(scriptlet)
자바 변수선언 및 자바 로직코드를 작성하는데 사용되는 태크
여기에서도 변수선언을 할 수 있기때문에 선언문을 따로 사용하기보다는 이걸로 한번에 사용한다.
<% ... %>
표현문(expression)
변수, 계산식, 메서드 호출 결과를 나타내는 태크
<%= ... %>
지시자
페이지 속성 지정
<%@ ... %>
주석
<%-- ... --%>
스크립트 태그 예시_시간 출력하기 : ScriptTag1.jsp
<%@page import="java.util.Date"%>
<%@ 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>
<%-- <p> Today's Date : <%= new java.util.Date() %> </p> --%>
<p> Today's Date : <%= new Date() %> </p>
</body>
</html>
<%@ 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">
<%
for(int i=1;i<=3;i++){
%>
<tr>
<%
for(int j=1;j<=5;j++){
%>
<td><%=i %>행 <%=j %>열</td>
<%
}
%>
</tr>
<%
}
%>
</table>
</body>
</html>
.odd {
color: blue;
}
<%=i%>행 <%=j%>열 |
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String cntStr = request.getParameter("cnt");
int cnt = 100;
if(cntStr !=null && !cntStr.equals("")){
cnt = Integer.parseInt(cntStr);
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%for(int i=0;i<cnt;i++){ %>
안녕 Servlet!<br>
<%} %>
</body>
</html>
<%@ 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>
<div><h1>Q. 100+200?</h1></div>
<div>
<a href="to.jsp?ans=100">100</a>
<a href="to.jsp?ans=200">200</a>
<a href="to.jsp?ans=300">300</a>
<a href="to.jsp?ans=400">400</a>
<a href="to.jsp?ans=500">500</a>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String ans = request.getParameter("ans");
//결과 값을 출력할 결과 문자열
//이렇게 자바는 자바끼리 모아놓아야 유지보수하기 좋다. 자바 코드영역은 상단에 미리 해두고 HTML태그부분에는 결과값만 출력하기
String result = null;
if( ans ==null){
result = "응답 내용이 없습니다.";
} else{
int user_select = Integer.parseInt(ans);
if(user_select==300){
result = "정답입니다.";
} else {
result = "정답이 아닙니다.";
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div><h1>응답결과</h1></div>
<div><p><%= result %></p></div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String user_name = request.getParameter("user_name");
String result = null;
user_name = user_name.trim();
if(user_name==null){
result = "이름이 없습니다.";
} else if(user_name==""){
result = "이름을 입력하세요";
} else { result = user_name;}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div><h1>이름 : <%= result %></h1></div>
</body>
</html>
한 개의 JSP파일과 servlet파일을 만들 것임.
doGet이던 doPost던 doProcess메서드를 따로만들고 호출하는 것으로 처리하는 방식
먼저 정수 2개받아와서 더하는 계산기 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>
<form action="calc5" method="get">
첫번째 정수 <input type="text" name=num1><br>
두번째 정수 <input type="text" name=num2><br>
<input type="submit">
</form>
</body>
</html>
package com.codingbox.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/calc5")
public class CalcServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("GET 방식");
doProcess(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.print("POST 방식");
doProcess(req, resp);
}
protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws IOException {
int num1 = Integer.parseInt(request.getParameter("num1"));
int num2 = Integer.parseInt(request.getParameter("num2"));
PrintWriter out = response.getWriter();
out.println("<html><body>"+(num1+num2)+"</body></html>");
}
}
<%@ include file="파일명" %>
<%@ 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>
<%@ include file = "header.jsp" %>
<h4>--------------------페이지 영억--------------------</h4>
<p>페이지 내용</p>
<h4>------------------------------------------------</h4>
<%@ include file = "footer.jsp" %>
</body>
</html>
<%@ 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>
<p>여기는 헤더영역</p>
</body>
</html>
<%@ 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>
<p>Copyright 여기는 푸터영역</p>
</body>
</html>