3D Graphic Technical Artist

20130116 교육내용 본문

업무(~2014)/JAVA

20130116 교육내용

er1ca 2013. 1. 16. 20:23

#1 Servlet &JSP

 

two tier 구조 - server side,client side
변경이 있는 경우 수정 배포가 어려움

크기에 따른 네트워크 분류 : LAN, MAN, WAN

IP 주소 : 인터넷 상에서의 컴퓨터 주소, 논리적임, 실제로 IP 주소는 렌카드에 부여됨 
렌카드는 물리적인 주소(Mac 어드레스)를 가지고 있음

DNS : IP 주소에 매칭이 되는 문자열 형태의 주소 
- server(domain name 을 IP주소로 문자->숫자로 바꿔주는 서버 )
- system(domain name을 사용하는 전체 시스템)

Port : 각각의 프로그램 마다 부여하는 번호 
(포트번호와 하나의 프로그램은 같은 것을 의미함)
IP와 Port를 이용해서 해당 컴퓨터의 프로그램에 접근 할 수 있다. 
몇개의 자주 쓰는 포트번호 외에는 임의로 설정 할 수 있음 

Web Browser : 웹서버로 받은 HTML 문서나 파일과 연동하고 출력하는 응용 소프트웨어 (ex. IE, 크롬)
Web Server : 웹 브라우저의 요청을 받아 해당하는 웹페이지를 찾아서 보내주는 일을 하는 소프트웨어 (Request/Response, 아파치서버)
Protocol : 데이터 통신을 위한 규약
WWW(World Wide Web, WEB) : 인터넷 상에서 동작하는 하나의 서비스
HTTP(Hyper Text Transfer Protocol) : WWW 서비스 상에서 정보를 주고 받을 수 있도록 고안된 프로토콜 
client가 server로 부터 request/response가 이루어지면 server는 client와 연결을 끊는다. -> client가 많기때문에 server의 부하를 줄이기 위해 
다시 request했을때 이전에 요청한 client인지 구별 할 수 없음 http가 무상태 프로토콜 이기 때문
 - Stateless Protocol(무상태 프로토콜) : Client의 상태를 저장해 놓지 않음 

톰캣 : Web server + Was
로그를 보면 
["http-bio-8080"] : Webserver port
["ajp-bio-8009"] :  WAS port

server.xml 
서버설정

 

<
Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />

 

 

   
환경설정 (컴퓨터 내부에서 문자 Set)
문자를 0과1로 되어있는 특정한 코드를 지정
다국어 코드 (아스키코드) : UTF-8

▲ 이클립스에서 문자 인코딩 바꾸는 방법 



context root : 클라이언트가 서버쪽의 웹프로젝트를 찾아가는 이름

 

#2 HTML

 

CGI(common gateway interface) : 클라이언트가 서버쪽으로 데이타를 보내는 규약
프로세스단위로 수행됨

* FORM
1. 입력할 수 있는 HTML 폼을 보내달라고 요청
2. 입력 가능한 HTML 폼을 보여줌
3. 값을 입력하고 서버쪽으로 전달

<form action="" method= "">
//action : 사용자가 입력한 데이터를 넘겨줄 파일
//method : 데이터를 전달하는 방식 (get, post)
//method를 설정해주지 않으면 디폴트 get방식으로 설정됨

Query String (?변수=값&변수=값&변수=값)
post방식 : http 헤더를 통해서 값을 전달 
get방식 : url을 통해서 값을 전달

 

 

#3 서블릿 호출 실습

 

1. 새프로젝트 생성

 


2. 빌드 파일 경로 수정 


3. html 폼 작성 

<form action="/addProject/add" method="post">
첫번째 숫자 : <input type="text" name="first" /><br/>
두번째 숫자 : <input type="text" name="second" /><br/>
//두개의 텍스트 필드의 이름을 다르게 지정 - > 서블릿이 구분할 수 있도록
<input type="submit" value="서버로 전송!!" />
</form>

4. 서블릿 파일 생성 


Post방식이므로 doPost 선택 doGet 해제 


5. 서블릿 doPost 부분 작성 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
             // TODO Auto-generated method stub
             //1. Client의 입력받기
            
            request.setCharacterEncoding( "UTF-8");
             //문자열을 입력받는 경우에  인코딩 설정을 해줘야함
             String num1 = request.getParameter( "first");
             String num2 = request.getParameter( "second");
             //입력 받은 값은 무조건 String 형식으로 받는다.
             //입력 하는 html의 태그 중 name에 해당하는 값을 각각 받아서 변수에 저장.
            
             //2. 로직처리
             int result = Integer.parseInt(num1)+Integer. parseInt(num2);
            
             //3. 출력처리
            response.setContentType( "text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            out.println( "<html><head><title>결과합</title></head>" );
            out.println( "<body>두 숫자의 합은 : " +result);
            out.println( "</body></html>" );
            out.close();            
      }

6. 결과 

 

 

 

 

#4 Daily 과제- 로또시스템

 

 

입력 6개의수

출력 (1~46)
로또 번호 : 2,5,11,23,24,41 보너스 : 9
(6개의 숫자가 다 맞으면 1등)
(5개 + 보너스 맞으면 2등)
(5개의 숫자가 맞으면 3등)
(4개의 숫자가 맞으면 4등)
(3개의 숫자가 맞으면 5등)

담청내역
xxx 등에 당첨 되었습니다



 

 

 

'업무(~2014) > JAVA ' 카테고리의 다른 글

20130115 교육내용  (1) 2013.01.15