JSP 3일차

MOZZI KIM·2022년 11월 24일
0

JSP

목록 보기
3/10
post-thumbnail

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

한글이 깨지지 않도록 하는 처리에서도 get방식과 post 방식으로 나뉘게된다.

📌 post방식

서블릿에 
request.setCharacterEncoding("UTF-8");

📌 get방식

server.xml에
<Connector URIEncoding="UTF-8" />
  • post방식의 경우 해당하는 서블릿 마다 코드를 작성해서 처리를 해주어야하지만
    get방식은 server.xml에 한번만 처리해주면 된다.

📌JSP에서 Servlet으로 한글 받을때.

request.setCharacterEncoding("UTF-8");
		
response.setContentType("text/html; charset=UTF-8");

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

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

📌 지시자 : <%@ %>

  • JSP 페이지가 컨테이너에게 필요한 메세지를 보내기 위한 태그
  • page : JSP 페이지의 전체적인 속성을 지정
  • include : 다른 페이지를 현재 페이지에 삽입
  • taglib : 태그라이브러리의 태그 사용
  • 범위 : JSP 파일 전체 (클래스를 import 할 경우 파일 내 어디서든 접근할 수 있음)

📌 선언 : <%! %>

  • 변수와 메소드를 선언함
  • 범위 : 페이지 내 어디서나 접근할 수 있는 전역 변수 및 메소드

📌 표현식 : <%= %>

  • 변수 또는 메소드의 결과값을 출력
  • 자바 코드를 삽입하는 것보다 더 간단하게 출력 가능
  • 변수나 메소드를 사용할 때 세미콜론(;)을 사용하지 않음

📌 스크립트릿 : <% %>

  • 자바 코드를 삽입하기 위한 태그
  • 기존 자바 언어를 동일하게 사용할 수 있음

📌 액션태그 : <jsp:action> </jsp:action>

  • <jsp:include> : 다른 페이지의 실행 결과를 현재 페이지에 포함시켜줌
    <jsp:forward> : 페이지 간의 제어를 이동시켜줌
    <jsp:useBean> : 자바빈(java bean)을 페이지에서 사용할 수 있게 해줌
    <jsp:setProperty> : Property 값을 세팅할 때 사용
    <jsp:getProperty> : Property 값을 가져올 때 사용
    <jsp:param> : include, forward 안에서 사용되며, 인자를 추가할 때 사용

3. 구구단을 세로로 나타내도록 jsp 로 짜시오.

	   <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>

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

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

html
<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/><br/>
		<input type="submit" value="전송"> <input type="reset" value="초기화">
</form>
package edu.global.ex;

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 double getGrade() {
	// return radius;
	// }
	public int getTotal() {
		return kor + eng + math;
	}

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

}
===============================================================================
package edu.global.ex;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;

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 timer_1124
 */
@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 {
		// TODO Auto-generated method stub
		System.out.println("doPost호출");
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html; charset=EUC-KR");
		
		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 writer = response.getWriter();
		
		writer.println("<html><head></head><body>");
		writer.println("<h1>국어: " + kor + "</h1>");
		writer.println("<h1>영어 : " + eng + "</h1>");
		writer.println("<h1>수학 : " + math + "</h1>");
		writer.println("<h1>총점 : " + grade.getTotal() + "</h1>");
		writer.println("<h1>평균 : " + grade.getAvg() + "</h1>");

	}

}
profile
코린이

0개의 댓글