본문 바로가기

bitcamp/면접족보

면접족보 20/12/30_JSP 한글처리방식

1. Jsp/Servlet에서 한글 처리 방식은?

· 클라이언트 요청 시, 입력된 정보가 한글인 경우 Servlet에서 올바르게 출력되지 않기 때문에 한글 처리를 해주어야 한다. 

· get 방식으로 요청이 들어온 경우에는 Server.xml 파일에 UPIEncodin="EUC-KR" 코드를 추가하여 처리한다.

· post 방식으로 요청이 들어온 경우에는 Servlet에서 request.setCharacterEncoding("EUC-KR") 코드를 추가하여 처리한다.

 

2. 아래의 선택자에 대하여 설명하시오.

· >: 자손 선택자를 뜻하며, 어떠한 태그 바로 아래에 위치한 태그를 선택할 때 사용한다. ex) div > p

· +: 동위 선택자를 뜻하며, ex) div + p, div 태그 바로 뒤에 위치하는 p 태그 하나만을 선택할 때 사용한다.

· ~: 동위 선택자를 뜻하며, ex) div ~ p, div 태그 뒤에 위치하는 모든 p 태그를 선택할 때 사용한다.

· a[href="경로"]: 속성 선택자를 뜻하며, 태그의 속성을 설정할 때 사용한다.

 

3. 웹어플리케이션 감시를 위한 프로그래밍 방법은?

· ServletContextListener 객체를 통해 웹어플리케이션의 생명주기를 감시한다.
· 리스너는 해당 메소드가 웹어플리케이션의 시작(contextInitialized())과 종료(contextDestroyed()) 시에 해당 메소드가

  호출되어 실행 내용을 저장한다.

4. ServletContext와 ServletConfig에 대하여 설명하시오.

※ServletContext

· 특정 데이터를 공유해야 할 때, web.xml 파일에서 context parameter를 이용하여 servlet에서 공유하면서 사용이 가능하고, 

  Tomcat 실행 시 컨텍스트마다 한 개의 ServletContext 객체를 생성하여 공유한다.

※ServletConfig

· servlet 초기화에 필요한 정보를 전달하기 위한 객체로 하나의 servlet에 단 한 개만 생성된다.

· 동일 패키지 내에서 ServletContext는 다른 Servlet과의 공유가 가능하고, ServletConfig는 단 하나의 servlet에서만 사용 가능하다. 

                   
5. 후손 선택자와 자식 선택자에 대하여 설명하시오.

· 후손 선택자는 자식과 후손 태그 모두를 선택할 때 사용한다. ex) div p{ }, div에서 모든 p 태그를 선택

· 자식 선택자는 작성 시 > 기호를 사용하며, 어떠한 태그 바로 아래에 위치한 태그를 선택할 때 사용한다. ex) div > p{ }

 

 

※연습문제

HTML과 Servlet으로 3단을 출력하시오♣

 

<구현 화면>

 

<dan.html>

1
2
3
4
5
6
7
 <body>
    <form action="danResult" method="post">
        출력한 구구단 단수 입력 : <input type="text" name="dan" size="10">
        <input type="submit" value="실행"> 
    </form>
 </body>
 
cs

 

<danResult.java>

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
 @WebServlet("/danResult")
 public class danResult extends HttpServlet {
    private static final long serialVersionUID = 1L;
  
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html; charset=EUC-KR");
        PrintWriter writer = response.getWriter();
        int num = Integer.parseInt(request.getParameter("dan"));
        
        writer.println("<html><head></head><body>");
        writer.println("<table border=1 width=200px>");
        writer.println("<tr>");
        writer.println("<td align=center>");
        writer.println(num + "단");
        writer.println("</tr></td>");
        
        for(int i = 1; i <= 9; i++) {
            writer.println("<tr height>");
            writer.println("<td align=center>");
            writer.println(num + " * " + i + " = " + (num * i));
            writer.println("</tr></td>");
        }
        writer.println("</table>");
        writer.println("<input type=button value=돌아가기 onclick=history.back()>");
        writer.println("</body></html>");
    }
 }
cs

 

 

 

♣HTML과 Servlet으로 사각형의 넓이를 출력하시오♣

 

<구현 화면>

<Rectangle.html>

1
2
3
4
5
6
7
 <body>
     <form action="Area" method="post" >
        가로 : <input type="text" name="width" size="10"><br/>
        세로 : <input type="text" name="height" size="10"><br/>
        <input type="submit" value="전송">
     </form>
 </body>
cs

 

<Area.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 @WebServlet("/Area")
 public class Area extends HttpServlet {
     private static final long serialVersionUID = 1L;
   
     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          int num1 = Integer.parseInt(request.getParameter("width"));
          int num2 = Integer.parseInt(request.getParameter("height"));
          int area = num1 * num2;
                
          response.setContentType("text/html; charset=EUC-KR");
          response.setCharacterEncoding("EUC-KR");
          PrintWriter writer = response.getWriter();
        
          writer.println("<html><head></head><body>");
          writer.println("사각형의 넓이 = " + area);
          writer.println("</body></html>");
     }
 }
cs

 

 

 

♣HTML 문서에서 CSS를 이용하여 작성하시오♣

 

<구현 화면>

 

<html>

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
 <head>
 <meta charset="EUC-KR">
 <title>Insert title here</title>
 <style>
    #nav {
        width: 800px;
        border: 1px solid #cccccc;
        margin: 0 auto;
        overflow: hidden;
        text-align: center;
    }
 
     #nav div {
        width: 150px;
        height: 100px;
        float: left;
        line-height: 100px;
        font-size: 1.5em; 
        border-top : 1px solid #cccccc;
        border-bottom: 1px solid #cccccc;
        text-align: center;
        margin: 5px;
    }
 
    a {
        text-decoration: none;
        color: #282828;
    }
 </style>
 </head>
 <body>
   <div id="nav">
        <div><a href="#">menu1</a></div>
        <div><a href="#">menu2</a></div>
        <div><a href="#">menu3</a></div>
        <div><a href="#">menu4</a></div>
        <div><a href="#">menu5</a></div>
    </div>
 </body>
cs

 

 

 

HTML과 Servlet으로 별을 출력하시오♣

 

<구현 화면>

<Star.html>

1
2
3
4
5
6
 <body>
    <form action="Star" method="post">
        숫자를 입력해주세요 : <input type="text" name="star" size=10>
        <input type="submit" value="전송">
    </form>
 </body>
cs

 

<Star.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 @WebServlet("/Star")
 public class Star extends HttpServlet {
    private static final long serialVersionUID = 1L;
  
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        int num = Integer.parseInt(request.getParameter("star"));
        
        response.setContentType("text/html; charset=EUC-KR");
        response.setCharacterEncoding("EUC-KR");
        PrintWriter writer = response.getWriter();
        
        writer.println("<html><head></head><body>");
        for(int i = 1; i <= num; i++) {
            writer.println("<p>");
                for(int j = 1; j <= i; j++) {
                    writer.println("*");
            }
        }
    }
 }
cs