11월 24일 - 수업 24일차 (JSP)

수아레스·2022년 11월 25일
post-thumbnail

1. jsp/servlet에서 한글처리 방식은? (다국어 처리)

  • Tomcat서버의 기본 문자 처리 방식은 IOS 8859 1 방식이기 때문에 개발자가 별도의 한글 인코딩을 하지 않으면 디폴트로 IOS 8859 1 로 잡혀서 한글이 깨져 보이는 현상이 생긴다.
  • 2가지 방식의 처리 방법이 있다. Get방식(서버)과 Post 방식(servlet)
  • 하지만 서버는 건들지 않는게 좋다! sevlet 파일을 수정하자.
  • UTF-8 (유니코드) 을 쓰자.

2. 아래의 JSP 태그를 설명하시오.

지시자 : <%@ %> : 페이지 속성
주석 : <%-- --%> / html은
선언 : <%! %> : 변수, 메소드 선언
표현식 : <%= %> : 결과값 출력
스크립트릿 : <% %> : JAVA 코드 → 자바 문법 들어감!
액션태그 : <jsp:action> </jsp:action> : 자바빈 연결 등

스크립트릿

JSP 페이지에서 자바 코드를 실행할 때 사용되는 코드의 블록

 - 지시자(Directive) 태그

 - 표현식(Expression) 태그

 - 선언자(Declration) 태그

 - 스크립트릿(Scriptlet) 태그

 - 주석

액션태그

JSP에서 Java 코드를 대신하기 위한 tag

3. 구구단을 세로로 나타내도록 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>
	<table border="1">
		<tr>
			<%
            for(int i=2;i<10;i++){
               out.print("<th width=100>"+i+"단</th>");
            }
         %>
		</tr>
		<%
         for(int i=1;i<10;i++){
      %>
		<tr>
			<%
            for(int j=2;j<10;j++){
               out.print("<td align=center>"+ 
               j + "*" + i + "=" + (j*i)+"</td>");
            }
         %>
		</tr>
		<% 
         }
      %>

	</table>
</body>
</html>

4. 국영수 총점과 평균을 웹상에서 나오도록 하시오.

-grade.html 국어 영어 수학 점수 입력
-/grade에서 총점과 평균을 계산하여 전송

클래스

public class Grade  {
	private int kor,eng,math;

	public Grade(int kor, int eng, int math) {
		this.kor = kor;
		this.eng = eng;
		this.math = math;   
	}

	public int getTotal() {
		return kor + eng + math;
	}

	public double getAvg() {
		return getTotal() / 3.0;
	}
}

Servlet

package pro;

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;

/**
 * Servlet implementation class Gradeservlet
 */
@WebServlet("/grade")
public class Gradeservlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Gradeservlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	      System.out.println("doPOST() 호출");
	      request.setCharacterEncoding("UTF-8");
	      
	      response.setContentType("text/html;charset=UTF-8");
	      
	      int kor = Integer.valueOf(request.getParameter("kor"));
	      int eng = Integer.valueOf(request.getParameter("eng"));
	      int math = Integer.valueOf(request.getParameter("math"));
	      
	      Grade grade = new Grade(kor,eng,math);
	      
	      
	      PrintWriter out = response.getWriter();
	      
	      out.print("<html>");
	      out.print("<head>");
	      out.print("</head>");
	      out.print("<body>");
	      out.println("<h1>총점은:"+ grade.getTotal() +"</h1>");   
	      out.println("<h1>평균은:"+ grade.getAvg() +"</h1>");
	      out.print("</body>");
	      out.print("</html>");
	}

}

JSP

<%@ page import="pro.Grade" %>
<%@ 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="grade" method="post">
      국어 : <input type="text" name="kor" size="10"><br>
      영어 : <input type="text" name="eng" size="10"><br>
      수학 : <input type="text" name="math" size="10"><br>
      	<input type="submit" value="전송">
     	<input type="reset" value="초기화">   
   </form>
</body>
</html>
profile
띵호와

0개의 댓글