티스토리 뷰

학습정리-11-17.txt
0.00MB

1. 아래를 프로그래밍 하시오.
1번-JSP 프로젝트 생성
2번-/hello 로 치고 들어오면 Hello 를 출력하는 HelloWorld.java 서블릿 파일 작성
3번-/lotto 로 치고 들어오면 로또번호 6개를  출력하는 LottoNum.java 서블릿 파일 작성
4번-/gugu3 으로 치고 들어오면 구구단 3단을 출력하는 GuGu3Dan.java 서블릿 파일 작성
5번-/gugudan 으로 치고 들어오면 구구단(1단~9단)을 출력하는 GuGuDan.java 서블릿 파일 작성

 

오늘도.......ㅋ...이렇게 보고서 그대로.... 친다.....ㅠㅠ.....수업 따라가는게 너무 힘들다....ㅎ....갈수록 발전하는게 아니라 갈수록 퇴보하는거 같은데....

 

1번. 마우스 우클릭 → New → Other → dyn검색해서 Dynamic Web Project 선택 → 프로젝트 name 입력 → Finish

 

servlet 생성과 URL 맴핑 방법

scr/main/java 파일에서 마우스 우클릭 → New → Servlet → package명 입력 →  class name 입력, Next → URL mappings에서 우측에 edit를 눌러 수정하면 된다.

 

2번. /hello 로 치고 들어오면 Hello 를 출력하는 HelloWorld.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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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 HelloWorld
 */
@WebServlet("/hello")
public class HelloWorld extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloWorld() {
        super();
        // TODO Auto-generated constructor stub
    }
 
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter writer = response.getWriter();
        
        writer.println("<html>");
        writer.println("<head>");
        writer.println("</head>");
        writer.println("<body>");
        writer.println("<h1>Hello<h1>");
        writer.println("</body>");
        writer.println("</html>");
        
        writer.close();
    }
 
    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }
 
}
cs

 

3번-/lotto 로 치고 들어오면 로또번호 6개를  출력하는 LottoNum.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
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
60
61
62
63
64
65
66
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashSet;
import java.util.Iterator;
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 LottoNum
 */
@WebServlet("/lotto")
public class LottoNum extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LottoNum() {
        super();
        // TODO Auto-generated constructor stub
    }
 
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        response.setContentType("text/html");
        PrintWriter writer = response.getWriter();
        
        writer.println("<html>");
        writer.println("<head>");
        writer.println("</head>");
        writer.println("<body>");
        
        HashSet<Integer> hSet = new HashSet<>();
        int[] num = new int[6];
        
        for(int i = 0; i < num.length; i++) {
            num[i] = (int)(Math.random() * 45 + 1);
            hSet.add(num[i]);
        }
        
        writer.println("<h1>Lotto Number</h1>");
        
        for (Iterator itr = hSet.iterator(); itr.hasNext();) {
            writer.println(itr.next() + "<br>");            
        }
        writer.println("</body>");
        writer.println("</html>");
        
        writer.close();
    }
 
    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }
 
}
cs

 

4번. gugu3 으로 치고 들어오면 구구단 3단을 출력하는 GuGu3Dan.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
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
60
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashSet;
import java.util.Iterator;
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 GuGu3Dan
 */
@WebServlet("/gugu3")
public class GuGu3Dan extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public GuGu3Dan() {
        super();
        // TODO Auto-generated constructor stub
    }
 
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        response.setContentType("text/html");
        PrintWriter writer = response.getWriter();
        
        writer.println("<html>");
        writer.println("<head>");
        writer.println("</head>");
        writer.println("<body>");
        
        writer.println("<h3>GuGu Dan 3</h3>");
        
        int dan = 3;
        for(int i = 1; i <= 9; i++) {
            writer.println(dan + " * " + i + " = " + (dan * i)  + "<br>");
        }
            
        writer.println("</body>");
        writer.println("</html>");
        
        writer.close();
    }
 
    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }
 
}
cs


5번. gugudan 으로 치고 들어오면 구구단(1단~9단)을 출력하는 GuGuDan.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
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
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 GuGuDan
 */
@WebServlet("/gugudan")
public class GuGuDan extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public GuGuDan() {
        super();
        // TODO Auto-generated constructor stub
    }
 
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter writer = response.getWriter();
        
        writer.println("<html>");
        writer.println("<head>");
        writer.println("</head>");
        writer.println("<body>");
        
        writer.println("<h3>GuGu Dan</h3>");
        
        for(int i = 1; i <= 9; i++) {
            for(int j = 1; j <= 9; j++) {
                writer.println(i + " * " + j + " = " + (i * j) + "<br>");
            }
            writer.println("<br>");
        }
            
        writer.println("</body>");
        writer.println("</html>");
        
        writer.close();
    }
 
    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }
 
}
cs

출력 결과가 너무 길어서 아랫부분은 생략...

 

 

 


2.프로토콜이란 무엇이며, 프로토콜의 종류는?

프로토콜(protocol)은 '약속', '규약', '협약' 등을 의미하는 단어로, 네트워크 분야 외에도 여러 분야에서도 사용되는 단어이다. 네트워크 분야에서의 의미는 상호간 원활한 통신을 위해 서로 동일하게 어떠한 설정/규칙을 정한다는 뜻이다. 

→ 컴퓨터 네트워크 환경 내 모든 기기가 서로 통신하며 데이터를 주고 받으려면, 각 기기에는 사전 협의된 통신 협약/규약이 필요하다. 이 규약을 '네트워크 프로토콜'이라 한다.

 

▶ TCP/IP   -  인터넷 접속을 위한 기본 프로토콜

IP주소 체계를 통해, 신뢰성 높은 데이터 송수신을 보장한다. 'IP주소', '서브넷마스크', '게이트웨이 주소', 'DNS 서버 주소' 등을 통해 인터넷 웹사이트에 접근하려면, 해당 웹사이트 서버와 사용자 PC는 모두 TCP/IP 프로토콜을 사용한다는 규약이 적용돼 있어야 한다.

 

▶ HTTP   -   홈페이지를 제대로 띄우기 위한 프로토콜 

웹브라우저로 특정 홈페이지를 여는 건 '인터넷 접속'의 한 방식일 뿐이다. 웹페이지는 기본적으로 'HTML로 제작되는데, 이 하이퍼 텍스트 웹페이지를 제공, 제어하는 프로토콜이 HTTP(Hyper Text Transfer Protocol)다.

http가 아닌 'https' 프로토콜도 많이 사용되는데, 이는 http와 동일하지만 보안(Secure) 기능을 추가한 것이다.

 

▶ FTP   -  빠른 파일 송수신을 위한 프로토콜

파일 송수신 만을 위한 최소한의 환경만 제공해 다른 프로토콜보다 파일 송수신 속도가 빠르다. 위 HTTP 프로토콜로도 파일 송수신(업로드/다운로드)은 가능하지만, 많은 파일을 처리하기에는 적합하지 않다. 이에 FTP(File Transfer Protocol)는 대량의 파일을 빠르게 송수신할 수 있는 프로토콜이다.

 

▶ SMTP와 POP   -  이메일을 보내고 받을 수 있는 프로토콜

인터넷으로 이메일을 보내고 받을 때도, 서버와 사용자간 상호 규약이 필요하다. 메일 보낼 때는 SMTP 프로토콜을, 받을 때는 POP 프로토콜을 사용한다. (SMTP = Simple Mail Transfer Protocol, POP = Post Office Protocol)

 

▶ DHCP   -  인터넷 주소를 자동 할당, 설정하는 프로토콜

IP주소+서브넷마스크+게이트웨이 주소+DNS 서버 주소 등의 인터넷 주소 세트를 자동으로 할당 받아 설정하는 프로토콜이다. 즉 DHCP 서버의 자동 할당 설정에 따라, 사용자 PC도 DHCP 서비스를 실행해 인터넷 주소를 자동 할당 받는다. 윈도를 비롯해 PC용 운영체제는 기본적으로 DHCP 서비스가 자동 실행된다.

 

 

 


3.*.jsp 가 컴파일 되는 과정을 설명하시오.

.jsp를 실행시키면 먼저 .java 파일로 변환한다! 그 후에 컴파일을 해서 .class 생성한다.

 

 

 


4. 아래를 프로그래밍 하시오.
아래의 주소를 접속시 아래가 웹브라우져에 나타나도록 하시오.
http://localhost:8282/프로젝트명/programmer.jsp

I am a programmer (웹브라우져 출력)

 

우선 programmer(파일명).jsp 파일을 생성(반드시 src > main > webapp 폴더에 생성해야한다.)하고 body 태그 안에 내용 입력!

1
2
3
4
5
6
7
8
9
10
11
12
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title></title>
</head>
<body>
<p>I am a programmer</p>
</body>
</html>
cs

 


5. HttpServlet에 대하여 설명하시오.

 HttpServlet = http 프로토콜을 최종사용자가 잘 몰라도 사용할 수 있도록 캡슐화한 클래스(객체)

해당 클래스만 상속시키면 자동으로 편리하게 사용할 수 있다.

 

 

 


6.web.xml 에 대하여 설명하시오.

Web Application의 Deployment Descriptor(환경파일 : 배포서술자, DD파일)로서 XML 형식의 파일이다.

모든 Web application은 반드시 하나의 web.xm l파일을 가져야 한다. 

해당 파일은 WEB-INF 폴더 아래에 위치한다.

web.xml에는 서블릿 맴핑을 할 수 있다. (url 주소를 수정하는 것이 가능하다.)

기존 경로 : http://localhost:8181/helloworld/servlet/com.javalec.ex.HelloWorld

URL맵핑 경로 : http://localhost:8181/helloworld/HWorld

servlet 파일을 실행시키면 가장 먼저 실행시키는 것이 .xml이다.

 


내일 진척도

26번

Rectangle 클래스 작성

int 값 두개 입력

출력

가로 세로 입력 하세요.

100

200

넓이는 20000 입니다.

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
import java.util.Scanner;
 
class Rectangle{
    private int width, height;
    
    public Rectangle(int width, int height) {
        this.width = width;
        this.height = height;
    }
    
    public int getRecArea() {
        return (width * height);
    }
}
 
public class Test {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        System.out.println("가로 세로 입력 하세요.");
        int width = sc.nextInt();
        int height = sc.nextInt();
        
        Rectangle rec = new Rectangle(width, height);
        
        System.out.println("넓이는 " + rec.getRecArea() + " 입니다.");
        
    }
}
cs

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함