Servlet과 동일하게 html 에서 값을 받아오는 게 가능
※단 form 태그의 action 은 확장자 까지 전부 적어야 함(파일명.jsp)
※WEB-INF : 보안 폴더이기에 일반적인 요청 방법으로는 호출 불가
실습1) 값을 입력 받아 JSP로 응답 하기(내장 객체 사용)
-html 파일
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="ex07request.jsp"> <input type="text" name = "data"> <input type="submit" value ="전송"> </form> </body> </html> | cs |
-JSP 파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <%@ 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, response, out 등의 생성의 필요가 없다. //parameter 수집 String data = request.getParameter("data"); %> <h1><%= data %></h1> </body> </html> | cs |
※내장 객체이기 때문에 별도의 request, response, out 등의 생성의 필요가 없다.
->servlet 변환 과정에 별도의 작성 과정이 있기 때문에 문제 없음
실습2) 점수를 입력 받아 평균, 학점을 계산하는 웹 제작(JSP 사용)
-html form 양식
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>성적확인 프로그램</h1> <form action="ex08score.jsp"> 이름 : <input type="text" name = "name"> <br> JAVA : <input type="number" name = "java"> <br> WEB : <input type="number" name = "web"> <br> IOT : <input type="number" name = "iot"> <br> ANDROID : <input type="number" name = "and"> <br> <input type = "submit" value = "전송"> </form> </body> </html> | cs |
-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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | <%@ 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> <style type="text/css"> </style> </head> <body> <%-- form 태그 필수 3요소 채우기 --%> <%-- 파라미터 수집 --%> <% String name = request.getParameter("name"); int java = Integer.parseInt(request.getParameter("java")); int web = Integer.parseInt(request.getParameter("web")); int iot = Integer.parseInt(request.getParameter("iot")); int and = Integer.parseInt(request.getParameter("and")); double avg = (java+web+iot+and)/4.0; String score; if(avg>=95) score = "+A"; else if(avg>=90) score = "A"; else if(avg>=85) score = "+B"; else if(avg>=80) score = "B"; else score = "F"; %> <%-- 이름/각 과목 점수 출력 --%> <p>이름 : <%=name %> </p><br> <p>JAVA점수 : <%=java %> </p><br> <p>WEB점수 : <%=web %></p> <br> <p>IOT점수 : <%=iot %></p> <br> <p>ANDROID점수 : <%=and %></p> <br> <%-- 평균 점수 구해서 출력 --%> <p>평균 : <%=avg %></p> <br> <%-- 평균 점수에 따라 학점 출력 100~95 : A+ 94~90 : A 89~85 : B+ 84~80 : B 79~ : F --%> <p>학점 : <%=score %><p> <br> </body> </html> | cs |
+) post 방식 사용의 경우
html form 태그에는 method = "post" 사용
jsp 파일에는 request.setCharacterEncoding("utf-8"); 구문 추가
댓글
댓글 쓰기