본문 바로가기

JSP,Servlet

JSP-선언문(Declaration )/지시자(Directive) 개념,실습문제

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* 해준다.

위 코드를 실행시켜보면!