JSP 선언문 기본 개념


JSP 구성요소 !!! 꼭 기억할 것
<%@ %> -------->지시자
<%! %> --------->선언문
<% %> ---------->스트립트릿
<%= %> -------->표현식
지시자의 기본 개념



지시자의 역할

실습문제 (계산기)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="ex04cal.jsp">
Number1 : <input type ="text" name="num1">
<br>
Number2 : <input type = "text" name="num2">
<br>
<input type= "submit" value="제출">
</form>
</body>
</html>
html 파일 코드
- <form action="jsp파일명.jsp"> 404오류가 뜨면 거즘 오타!!!
<%@ 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> <%!// 선언문 // 더하기 public String sum(int n1, int n2) { int result = n1 + n2; return n1 + "+" + n2 + "=" + result; } public String minus(int n1, int n2) { int result = n1 - n2; return n1 + "-" + n2 + "=" + result; } public String multi(int n1, int n2) { int result = n1 * n2; return n1 + "*" + n2 + "=" + result; } public String div(int n1, int n2) { double result = (double)n1 / n2; return n1 + "/" + n2 + "=" + result; }%> <% // .jsp--> .java(Servlet) // Servlet 안에 있는 service 메서드로 코드가 이동한다. // service(request, response) // ---> jsp페이지에서 request, response를 사용 할 수 있다. int num1 = Integer.parseInt(request.getParameter("num1")); int num2 = Integer.parseInt(request.getParameter("num2")); %> <h2><%=sum(num1, num2)%></h2> <h2><%=minus(num1, num2)%></h2> <h2><%=multi(num1, num2)%></h2> <h2><%=div(num1, num2)%></h2> </body> </html>
실습 코드 실행하면 아래와 같이 출력




실습문제!! request 학점확인프로그램
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<fieldset>
<legend>학점 확인 프로그램</legend>
<form action="request.jsp">
<table align="center">
<tr>
<td>이름</td>
<td><input type ="text" name="name"></td>
</tr>
<tr>
<td>Java 점수:</td>
<td><input type ="text" name="java"></td>
</tr>
<tr>
<td>Python 점수:</td>
<td><input type ="text" name="python"></td>
</tr>
<tr>
<td>Web 점수:</td>
<td><input type ="text" name="web"></td>
</tr>
<tr>
<td>Machine Learning 점수:</td>
<td><input type ="text" name="ml"></td>
</tr>
<tr>
<td>
<input type= "submit" value="확인하기">
</td>
</tr>
</table>
</form>
</fieldset>
</body>
</html>
HTML 파일 코드
- 항상 주의해야할 점 <form action="jsp파일명.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>
<%
int Java =Integer.parseInt(request.getParameter("java"));
int Python =Integer.parseInt(request.getParameter("python"));
int Web =Integer.parseInt(request.getParameter("web"));
int ML =Integer.parseInt(request.getParameter("ml"));
int avg = (Java+Python+Web+ML)/4;
%>
<fieldset>
<legend>학점 확인 프로그램</legend>
<table align="center">
<tr>
<td>이름 :</td>
<td>
<%out.print(request.getParameter("name")); %>
</td>
</tr>
<tr>
<td>Java 점수 :</td>
<td>
<%out.print(request.getParameter("java")); %>
</td>
</tr>
<tr>
<td>Python 점수 :</td>
<td>
<%out.print(request.getParameter("python")); %>
</td>
</tr>
<tr>
<td>Web 점수 :</td>
<td>
<%out.print(request.getParameter("web")); %>
</td>
</tr>
<tr>
<td>Machine Learning 점수 :</td>
<td>
<%out.print(request.getParameter("ml")); %>
</td>
</tr>
<tr>
<td>평균 :</td>
<td>
<!-- Integer.parseInt 로는 연산이 안되는거같은데 지금 -->
<%out.print((Java+Python+Web+ML)/4); %>
</td>
</tr>
<tr>
<td>학점</td>
<td><%if(95<=avg){
out.print("A+");
}else if(avg>85){
out.print("A");
}else if(avg>80){
out.print("B");
}else if(avg>70){
out.print("C");
}else{
out.print("F");
} %></td>
</tr>
</table>
</fieldset>
</body>
</html>
JSP 파일 소스코드
연산이 잘 되지 않고 오류가 나서 아래와 같이 변수 선언 후 계산하니깐 잘 됨!!
int Java =Integer.parseInt(request.getParameter("java"));
int Python =Integer.parseInt(request.getParameter("python"));
int Web =Integer.parseInt(request.getParameter("web"));
int ML =Integer.parseInt(request.getParameter("ml"));
int avg = (Java+Python+Web+ML)/4;
학점 구하기 부분은 if문 else if문을 쓰면 쉽게 할 수 있다.




<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>아파트를 만들어보자!</h1>
<form action="makeApart.jsp">
<table>
<tr>
<td>층</td>
<td><input type ="text" placeholder="층의 개수를 입력해주세요" name="floor"></td>
<td>방</td>
<td><input type ="text" placeholder="방의 개수를 입력해주세요" name="room"></td>
<td><input type= "submit" value="제출"></td>
</tr>
</table>
</form>
</body>
</html>
HTML 파일 코드
placeholder="" --> 미리보기

<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
int floor =Integer.parseInt(request.getParameter("floor"));
int room =Integer.parseInt(request.getParameter("room"));
%>
<table border = 1px>
<%for(int i =1; i<=floor; i++){
out.print("<tr>");
for(int j =1; j<=room; j++){
out.print("<td>"+(j+i*100)+"호"+"</td>");
}
out.print("</tr>");
}
%>
</table>
</body>
</html>
JSP 파일 코드
2중 for문을 쓰면 풀 수 있는 문제!
문제에서 보면 101호부터 시작하기 때문에 100* 해준다.
위 코드를 실행시켜보면!


'JSP,Servlet' 카테고리의 다른 글
JSP - 회원가입/로그인 만들기 실습 (0) | 2022.01.05 |
---|---|
JSP - sendRedirect 개념/실습문제 네이버로 이동 (0) | 2022.01.05 |
JSP 기초개념 / JSP 구성요소 (0) | 2022.01.04 |
Servlet - post방식 응용 실습문제 (0) | 2022.01.04 |
Servlet-Table 생성 실습 Get/Post (0) | 2022.01.03 |