package exam;


import java.io.IOException;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


@WebServlet("/LifeCycleServlet")

public class LifeCycleServlet extends HttpServlet {

private static final long serialVersionUID = 1L;


    public LifeCycleServlet() {

        System.out.println("생성!");

    }


public void init(ServletConfig config) throws ServletException {

System.out.println("init 호출!");

}


public void destroy() {

System.out.println("destroy 호출!");

}


protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("service 호출!");

}


}




처음 run 실행 시:

생성!

init 호출!

service 호출!





반복 호출 시:

service 호출!

service 호출!





init의 문구를 변경하면:

(destroy되고 재생성)

destroy 호출!

생성!

init 수정 호출!

service 호출!





출처: edwith | 부스트코스 - Full-Stack Web Developer



response.setContentType("text/html; charset=utf-8");

==>

response.응답을 할건데

setContentType이런 타입으로 보내줄거야

("text/html")text타입이고 html형식으로 보내줄거야

charset=utf-8해석방식으로 해석해야해




PrintWriter out = response.getWirter();

==>

PrintWriter 객체가 리턴됨

아웃이라는 통로가 마련된 것임




out.print("<h1> 1-10까지 출력 ! <h1>");

==>

ln 안 써도 됨, 어차피 html이라 br태그 써야 개행(엔터, 한 줄 밑으로 내리는 것)됨




for(int i=1; i<=10; i++){

out.print(i + "<br>"); 

}



out.close();

==>

객체 닫아주기




package exam;


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 TenServlet

 */

@WebServlet("/Ten")

public class TenServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

       

    /**

     * @see HttpServlet#HttpServlet()

     */

    public TenServlet() {

        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; charset=utf-8");

PrintWriter out = response.getWriter();

out.print("<h1> 1-10까지 출력 ! <h1>");

for(int i=1; i<=10; i++){

out.print(i + "<br>"); 

}

out.close();

}



}





출처: edwith | 부스트코스 - Full-Stack Web Developer

Spring frameworkm 개발환경설정


Eclipse marketplace에서 spring tools suite(STS) for Eclipse Kepler 검색한 후 설치

'programing > Java' 카테고리의 다른 글

Servlet의 Lifecycle  (0) 2018.04.04
Servlet 기본 출력  (0) 2018.04.04
자바 - 정해진 숫자를 오름차순/내림차순으로 정렬하기  (0) 2018.03.05
점프 투 자바 - 인터페이스  (0) 2018.03.02
점프 투 자바 - 메소드  (0) 2018.02.28

public class Test {

    public static void main(String args[]) {

    //배열 0~5

    int temp = 0;

    int num[] = {10, 5, 7, 20, 4, 2};

   

    for(int i=0; i<=5; i++) {

         for(int j=0; j<=4; j++) {

              if(num[j] < num[j+1]) {

                  temp = num[j];

                  num[j] = num[j+1];

                  num[j+1] = temp;

              }

         }

    }

   

    for(int i=0; i<=5; i++) {

         if(i != 5) {

              System.out.print(num[i] + ",");

         }

         else {

              System.out.print(num[i]);

         }

    }

    }

}


'programing > Java' 카테고리의 다른 글

Servlet 기본 출력  (0) 2018.04.04
Spring frameworkm 개발환경설정  (0) 2018.04.03
점프 투 자바 - 인터페이스  (0) 2018.03.02
점프 투 자바 - 메소드  (0) 2018.02.28
Java - ArrayList  (0) 2018.02.23

public interface Predator {

       public String getFood(); //인터페이스의 메소드는 메소드의 이름과 입출력에 대한 정의만 있고 내용은 없다.

}



public class Animal {

       String name;

      

       public void setName(String name) {

             this.name = name;

       }

}



public class Tiger extends Animal implements Predator {

       public String getFood() {

             return "apple";

       }

}



public class Tiger extends Animal implements Predator {

       public String getFood() {

             return "apple";

       }

}



public class ZooKeeper {

      

    public void feed(Predator predator) {

        System.out.println("feed " + predator.getFood());

    }

 

 

    public static void main(String[] args) {

        ZooKeeper zooKeeper = new ZooKeeper();

        Tiger tiger = new Tiger();

        Lion lion = new Lion();

        zooKeeper.feed(tiger);

        zooKeeper.feed(lion);

    }

}




출처 : https://wikidocs.net/217


콘솔 출력내용


feed apple

feed banana


//자바의 함수는 클래스 안에서만 존재 가능 -> 메소드(클래스 내부의 함수)

//메소드 사용 이유 : 똑같은 내용 반복해서 적을 , "어떤 입력값을 주었을 , 어떤 리턴값을 돌려준다"라는 메소드를 작성하여 대신한다.

//출력 = 리턴값

//cf.파이썬은 함수/메소드 별개로 존재     

 

public class Test {

       public int sum(int a, int b) { //sum이라는 메소드는 개의 (int 자료형 a, int 자료형 b) 입력값으로                                       //받으며

             return a+b;              //리턴값은 개의 입력값을 더한 (int 자료형)이다.

       }                              //return 메소드의 결과 값을 돌려주는 명령어이다.

            

       public static void main(String[] args){

             int a = 3;

             int b = 4;

            

             Test myTest = new Test();

             int c = myTest.sum(a, b); //sum메소드에 3, 4라는 입력값을 전달하여 7이라는 값을 돌려받는다.

            

             System.out.print(c);

       }

}




메소드 구조


public 리턴자료형 메소드명(입력자료형1 입력변수1, 입력자료형2 입력변수2, ...){

...

return 리턴값;

}


*리턴자료형이 void면 리턴값 없음

*리턴자료형 public, private, void, static 등

*입력자료형1 입력변수1, 입력자료형2 입력변수2 의 (예시) String name, int a




입력 O 출력 O


public int sum(int a, int b){

     return a+b;

}

public static void main(String[] args) {

     Test myTest = new Test();

     int c = myTest.sum(10, 20);

      

     System.out.print(c);

}


리턴값받을변수 = 객체.메소드명(입력인수1, 입력인수2, ...)


리턴값이 int로 되어있으므로 c의 자료형은 반드시 int로 해야한다. 



입력 X 출력 O


public class Test {

       public String say() {

             return "Hi";

       }

      

       public static void main(String[] args) {

             Test myTest = new Test();

             String a = myTest.say();

            

             System.out.print(a);

       }

}


리턴값받을변수 = 객체.메소드명()



입력 O 출력 X


public class Test {

       public void sum(int a, int b) {

             System.out.println(a+" "+b+" 합은"+(a+b)+"입니다"); //리턴값 아님

       }

      

       public static void main(String[] args) {

             Test myTest = new Test();

             myTest.sum(3, 4);

       }

}


객체.메소드명(입력인수1, 입력인수2, ...)


리턴값은 return으로만 돌려줘야 함.




입력 X 출력 X


public class Test {

       public void say() {

             System.out.println("Hi");

       }

      

       public static void main(String[] args) {

             Test myTest = new Test();

             myTest.say();

       }

}


객체.메소드명()




출처 : https://wikidocs.net/225

import java.util.ArrayList;


public class Test {


public static void main(String[] args) {

ArrayList<String> ar = new ArrayList<String>();

ar.add("홍길동1");

ar.add("홍길동2");

ar.add("홍길동3");

ar.add("홍길동4");

//확장 for문-JSP에서 사용빈도 높음

StringBuilder sb = new StringBuilder();

for(String name:ar) {

sb.append(name+"\n");

}

System.out.println(sb.toString());

}


}





참고 블로그 주소


https://blog.naver.com/ksw6169/221187418330



<파일 입출력>


File 클래스 메소드


boolean

createNewFile()

새로운 파일 생성

boolean

mkdir()

새로운 디렉토리(폴더) 생성

boolean

mkdirs()

경로상에 없는 모든 디렉토리 생성

boolean

delete()

파일 or 디렉토리 삭제


이런식으로 리턴값을 선언할 수도 있다.





package study;


public class CalculatorExample {

public static void main(String[] args) {


double result1 = 10 * 10 * Calculator2.pi;

int result2 = Calculator2.plus(10, 5);

int result3 = Calculator2.minus(10, 5);

System.out.println("result1 : " + result1);

System.out.println("result2 : " + result2);

System.out.println("result3 : " + result3);

}

}



class Calculator2 {

static double pi = 3.14159; 

static int plus(int x, int y)

{

return x + y;

}

static int minus(int x, int y)

{

return x - y;

}

}




(콘솔)

result1 : 314.159

result2 : 15

result3 : 5



+ Recent posts