W기술과 생활

닫기 검색결과 전체 보기

    Servlet - 기초예제

    Temp 2010. 9. 13. 17:36

    방문자의 요청객체로부터 ip를 알아내기


    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
     
    
    public class ServletEx02 extends javax.servlet.http.HttpServlet {
    
      @Override
      protected void service(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException {
       //첫 방문자든, 또는 두번째 방문자든 무조건 수행하는 부분이다.
       //우선 방문자의 요청객체로부터 ip를 알아낸다.
       String s_ip = req.getRemoteAddr();
      
       //응답시 한글처리
       res.setContentType("text/html;charset=euc-kr"); 
       //응답을 하기위해 스트림 준비
       PrintWriter out = res.getWriter();
       out.println("");
       out.println("<font color="red"><b>"+s_ip+"</b></font>님 환영합니다.");
       out.println("");
       out.close();
      }
     }
    



    방문자들 접속횟수 구하기

    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    
     public class ServletEx03 extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
      int count;
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      
      count++;
      
      //응답시 한글처리
      response.setContentType("text/html;charset=euc-kr");
      
      //응답시 필요한 스트림 생성
      PrintWriter out = response.getWriter();
      
      out.println("");
      out.println(" <font color="blue"><b>"+count+"</b></font>"+"번째 손님");
      out.println("");
      out.close();
     }            
    }
    

    방문자들 접속횟수 구하기 2

    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    
     public class ServletEx4 extends javax.servlet.http.HttpServlet {
        private int count;
        private String path = "/txt/count.txt";
    
        //서버가 내려갈 때 또는
        // count값을 저장해야 할 필요성이 있을 때 count.txt파일에
        // 저장하기 위해 준비된 파일이다. 만약 GenericServlet으로 상속을
        // 받았다면 HTTP프로토콜 상의 작업이 조금은 제한 받게 된다.
        // 예를 들어
        // 사용자의 컴퓨터가 아닌 서버의 특정 위치에 있는 파일의
        // 절대 경로를 얻어내기가 어렵다. 그러므로 GenericServlet보다는
        // javax.servlet.http.HttpServlet을 상속 받는 것이
        // 바람직하다.
         
        //count.txt의 내용은 몇 번 읽어들이는 것이 좋을까?
        //방문자가 생길 때마다 읽는 것이 맞는지? 아니면 첫 방문자에
        //의해 단 한번만 읽는 것이 맞는지? 답은 후자이다.
        @Override
     public void init() throws ServletException {
      try{
       //count.txt파일의 경로를 절대 경로로 가져온다.
       //    getServletContext()  -&gt; 현재 사용되고 있는
       //       웹 서버상의 공간(Context)
       //     예를 들면 현재 프로젝트가 하나의 Context이다.
       //     그 경로를 알아보면 "C:\jsp_sutdy\0527_Web" 가 된다.
       // 위와 같은 절대경로는 다음과 같이 얻을 수 있다.
       //    getServletContext().getRealPath("/");
       
       //"C:\jsp_sutdy\0527_Web\txt\count.txt"
       path = getServletContext().getRealPath(path);  //절대경로
       
       //생성된 경로를 따라 파일과 연결되는 스트림 생성
       BufferedReader in = new BufferedReader(
         new FileReader(path));
       //파일과 연결된 스트림으로 부터 읽어 그것을 int로 변환하여
       //count라는 변수에 대입한다.
       count = Integer.parseInt(in.readLine());
      }catch(Exception e){
       e.printStackTrace();
      }
     }
        //위의 init메서드는 첫 방문자에 의해 단 한번만 수행한다.
    
     @Override
     public void doGet(HttpServletRequest req, HttpServletResponse resp)
       throws ServletException, IOException {
      //현재 메서드는 모든 방문자들이 수행하는 부분이다.
      count++;
      //응답시 한글 처리
      resp.setContentType("text/html;charset=euc-kr");
      
      //응답을 위한 스트림 생성
      PrintWriter out = resp.getWriter();
      
      //응답 시작
      out.println("");
      out.println("  <font color="white" size="3">현재 접속자 수:"+
        "<font color="red" size="3"><b>"+count+
        "</b></font>명</font>");
      out.println("");
     }
        
        private void saveCount(){
         try{
          //count값을 파일에 쓰기
          PrintWriter fout = new PrintWriter(
            new FileWriter(path),true);
          fout.println(String.valueOf(count));//파일에 쓰기
          fout.close();
         }catch(Exception e){}
        }
    
     @Override
     public void destroy() { //서버가 내려갈 때 호출 된다.
      saveCount();
     }    
    }
    

    [출처] Servlet - 기초예제|작성자 비틀박


    저작자표시 비영리 변경금지 (새창열림)
    'Temp' 관련 글 more
    • CSS핵(hack) 정리 그리고 주요버그 2010.09.19
    • thumbnail
      Servlet - 공지파일 예제 2010.09.13
    • thumbnail
      Servlet - WAS 구동과정 및 Servlet의 생명 주기 2010.09.13
    • HTML웹 표준... 이제야 좀 알것 같다. 2010.09.11
    Posted by 확인소장

바로가기

  • thumbnail 이미지 외부링크용 구글 드라이브
  • thumbnail 대기오염 실시간 확인

블로그 내용 검색

블로그 이미지

인터넷 기술, 오토핫키, 바이두 클라우드 한글화

by 확인소장

공지사항

    최근...

  • 포스트
  • 댓글
  • 더 보기

태그

  • 百度
  • 바이두
  • 百度云
  • 클라우드 한글화
  • 바이두 한글화
  • Baidu Cloud
  • 바이두 앱
  • baidunetdisk
  • baidu
  • BaiduCloud
  • Android
  • 바이두 뮤직
  • Baidu cloud app
  • 한글화
  • BaiduYun
  • 한국어 패치
  • 바이두 한글
  • baiduyun app
  • 한국어
  • ADD
  • BaiduYunGuanjia
  • 百度云管家
  • autohotkey
  • GUI
  • 바이두 클라우드
  • AHK
  • BaiduYunApp
  • apk 한글화
  • 한글패치
  • 百度音乐

글 보관함

«   2025/07   »
일 월 화 수 목 금 토
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

링크

카테고리

  • 모든 글타래 (266)
    • Patch (158)
      • BaiduCloud (147)
      • BaiduMusic (7)
      • XiamiMusic (2)
    • Tip (86)
      • AHKmacro (20)
      • BaiduCloud (36)
      • PC활용 (29)
    • Monologue (13)
    • ETC (3)
    • Temp (6)

카운터

Total
Today
Yesterday
  • 홈
  • 방명록
  • 링크추가
확인소장's Blog is powered by daumkakao
Skin info material T Mark 5+ by 뭐하라
favicon

W기술과 생활

인터넷 기술, 오토핫키, 바이두 클라우드 한글화

  • 홈
  • 방명록
  • 링크추가

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 모든 글타래 (266)
    • Patch (158)
      • BaiduCloud (147)
      • BaiduMusic (7)
      • XiamiMusic (2)
    • Tip (86)
      • AHKmacro (20)
      • BaiduCloud (36)
      • PC활용 (29)
    • Monologue (13)
    • ETC (3)
    • Temp (6)

카테고리

PC화면 보기
티스토리
Daum

티스토리툴바