백엔드 언어2017. 6. 19. 21:59

다형성이란 하나의 메소드나 클래스가 있을 때 이것들이 다양한 방법으로 동작하는 것을 의미한다. 키보드의 키를 통하여 비유를 든다면 키보드의 키의 동작방법은 '누른다' 이다. 하지만 똑같은 동작 방법의 키라고 하더라도 ESC는 취소를 ENTER는 실행의 목적을 가지고 있다. 다형성이란 동일한 조작방법으로 동작시키지만 동작을 다르게 하는 것이다.




class A{}

class B extends A{}

public class PolymorphismDemo1 {

public static void main(String[] args) {

A obj = new B();

}

}


위의 코드는 A형태의 객체 obj를 만들고 이 객체의 동작은 B로 하는것이다.



class A{

public String x(){return "x";}

}

class B extends A{

public String y(){return "y";}

}

public class PolymorphismDemo1 {

public static void main(String[] args) {

A obj = new B();

obj.x();

obj.y();

}

}


위의 코드에서 obj.x();는 실행이 되지만 obj.y();는 실행이 되지 않는다.

클래스 A에 x()라는 메소드가 없기 때문이다.


즉 클래스 B의 데이터 형을 클래스 A로 하면 클래스 B는 마치 클래스 A인것처럼 동작하게 되는 것이다. 클래스 B를 사용하는 입장에서는 클래스 B를 클래스 A인것처럼 사용하면 된다.


class A{

public String x(){return "A.x";}

}

class B extends A{

public String x(){return "B.x";}

}

public class PolymorphismDemo1 {

public static void main(String[] args) {

A obj = new B();

System.out.println(obj.x());

}

}


위의 코드의 결과는 'B.x' 이다.

A의 동작은 "A.x" 이지만 B클래스에 정의된 메소드 x()가 실행된다.


class A{

public String x(){return "A.x";}

}

class B extends A{

public String x(){return "B.x";}

}

class B2 extends A{

public String x(){return "B2.x";}

}

public class PolymorphismDemo1 {

public static void main(String[] args) {

A obj = new B();

A obj2 = new B2();

System.out.println(obj.x()); // 출력결과 B.x

System.out.println(obj2.x()); // 출력결과 B2.x

}

}


다형성을 통하여 동작방법은 똑같지만 동작을 다르게 설정할 수 있다.

그리고 다른 동작의 클래스는 new B(); 또는 new B2(); 이부분에 있다.

'백엔드 언어' 카테고리의 다른 글

JSP DB연동 테스트  (0) 2017.06.20
DAO(Data Access Object) 패턴  (0) 2017.06.19
자바 웹 개발자의 학습 로드맵  (0) 2017.06.18
템플릿 언더바 기본 (Template Underscore)  (0) 2017.03.24
JSTL 사용법  (0) 2017.03.24
Posted by EL2A
백엔드 언어2017. 6. 18. 00:31


자바 웹 개발자로써의 학습을 기준으로 두고 작성하였습니다.




1. 단기 속성 과정


 1) 이클립스

 2) HTML, CSS, JAVASCRIPT

 3) 자바, JSP, 서블릿

 4) 스프링 프레임워크

 5) 마이바티스 프레임워크


-> 우리나라 현실에서는 순서대로 이정도만 해도 취업해서 개발자가 될 수 있다. 하지만 이후에 아래의 장기 과정을 밟아야 한다고 생각한다.




2. 장기 과정


※ 별표기준

★★★★★  깊이가 매우 깊게 반드시 알아야 한다.

★★★★    반드시 알아야 하지만 적당히 깊어도 된다.

★★★       한단계 성장하려면 알아야 한다.

★★         반드시 알 필요는 없지만 알면 좋다.

★            몰라도 먹고 사는데 지장 없다.


1) 통합개발도구,IDE (★★★★)

 -> 이클립스, 인텔리 J 등


2) 자바 (★★★★★)

 -> 자바로 시작해서 자바로 끝낸다라고 할만큼 제일 중요하다.


3) JSP, 서블릿 (★★★★)

 -> JSP 보다도 서블릿이 더 중요하다. 서블릿의 라이프 사이클과 매커니즘 이해가 필요하다.


4) 빌드 도구 (★★★)

 -> ANT, 메이븐 등

 -> 통합개발도구들이 잘 돼있어서 몰라도 되지만 어떻게 해서 빌드가 되고 배포가 되는지 아는것도 필요하다.


5) 버전관리도구 (★★★★)

 -> GIT, SVN 등


6) 테스트 주도 개발과 리팩토링 (★★★★)

 -> TDD 같은 방식을 몸에 익혀놓고 습관을 들이면 나중에 수많은 에러의 예방으로 돌아온다.

 -> 처음에는 UI 없는 예제 또는 데이터베이스 없는 예제를 통해서 하는것이 좋다.


7) HTML, CSS, JAVASCRIPT (+JQuery) (★★★)

 -> 백엔드만을 전문적으로 한다면 별 두개가 맞다고 생각하지만, 프론트엔드도 일정부분 필요한 환경이라면 별 네개까지 올라갈 수 있다고 생각한다.


8) OOP, 디자인패턴 (★★★)


9) JDBC, Spring JDBC (★★★★★)

 -> Callback interface, Class 개념 이해


10) Mybatis, ORM, JPA, Hibernate (★★★★)

 -> Mybatis 는 ORM 이 아니며 학습비용이 낮다.

 -> ORM은 학습비용이 매우 높다. 상대적으로 높은 수준이 아니라 엄청나게 높다.




순서는 중요하지 않으며 웹개발자로써 하나씩 알아가야 한다.

'백엔드 언어' 카테고리의 다른 글

DAO(Data Access Object) 패턴  (0) 2017.06.19
다형성(Polymorphism)  (0) 2017.06.19
템플릿 언더바 기본 (Template Underscore)  (0) 2017.03.24
JSTL 사용법  (0) 2017.03.24
Json-Simple 추가 및 사용법  (0) 2017.03.24
Posted by EL2A
백엔드 언어2017. 3. 24. 20:11

1. 환경설정

 - index.php + index.tpl => index.tpl.php 파일이 만들어짐

 - php = model / tpl = view / tpl.php = 최종출력

 - tpl 파일은 _template 폴더 속에 있어야함

 - 최종 출력 파일은 _compile 폴더에서 생성됨

 

 




2. 템플릿 태그

 - {} , <!--{}, {}-->, <!-- {} --> 모두 유효한 템플릿 태그.

 - <!-- 가 달려있어서 주석처럼 보이지만 실제로는 다 작동하는 태그.

 

 




3. 템플릿 파일 정의, 할당, 출력

 - 정의 : define() => 템플릿의 아이디를 정의하는듯. 큰 범위의 정의

 - 할당 : assign() => 변수에 값을 할당함

 - 출력 : print_() => 최종 출력

 

 




4. 루프(1)

 - 루프의 시작 : {@} / 루프의 끝 : {/}

 - 루프를 이용하여 반복문처럼 사용이 가능하고 배열에 값을 할당이 가능

 

 $result = mysql_query('select namenum from '.$group[$i]); 
    while ($data=mysql_fetch_array($result)) { 
        $loop2[] = array(             // or 
            'name'=>$data['name'],    // $loop2[] = $data; 
            'num' =>$data['num']
        ); 


 - 위의 구문처럼 DB에서 검색해서 가져오는식으로 활용도 가능

 

 




5. 하위템플릿 인클루드

 - 사용법 : {# file id}

 - 하위 템플릿 tpl내에서 다시 또 인클루드 하는방식

 ※ 한 페이지에서 print_() 메서드를 여러 번 사용해서 출력도 가능

 $tpl->print_('head'); 
 $tpl->print_('body');






6. 표현식

 - 자바스크립트 문법을 따르는 표현식 가능

 

 





7. 이스케이프

 - 이스케이프를 이용해서 출력 컨트롤 가능

 

 

 




8. 루프(2) - 예약변수

 - key_ : 배열의 키 출력

 - value_ : 배열의 값 출력

'백엔드 언어' 카테고리의 다른 글

다형성(Polymorphism)  (0) 2017.06.19
자바 웹 개발자의 학습 로드맵  (0) 2017.06.18
JSTL 사용법  (0) 2017.03.24
Json-Simple 추가 및 사용법  (0) 2017.03.24
쓰레드  (0) 2017.03.24
Posted by EL2A
백엔드 언어2017. 3. 24. 20:04


1. <C:set>

자바의 int num = 100; 을 <c:set var="num" value="100">으로 바꿔 쓴 코드입니다. 어렵지 않죠?? 

2. <c:out>

역시 자바의 system.out.println(" 안녕하세요 ");을 간단하게 <c:out value=" 안녕하세요 ">로 변경 되었습니다. 또한 제 생각에는 장점이라고 생각하는데, 이 태그는 특수문자를 그대로 출력합니다.

3. <c:remove>

한 영역의 변수명을 지우는 코드입니다. 만약에 영역을 생략할 경우 모든 영역의 변수가 삭제됩니다. 

영역에는 아까 Attribute에서 정리했다 시피 (page → request → session → application) 순서의 영역을 가집니다.

4. <c:if>

자바의 if - else 문과 동일하지만 JSTL에서는 else문이 없습니다. 여기서 scope값을 생략하면 기본으로 page영역이 지정됩니다.

5. <c:choose> / <c:when> / <c:otherwise>

자바의 switch 구문과 if-else 구문을 혼합한 형태로 다수의 조건문을 걸고 싶을때 사용합니다.

<c:choose>

    <c:when test="${empty list }">

        등록된 글이 없습니다.    

    </c:when>

    <c:when test="${abc}">

        안녕하세요    

    </c:when>

    <c:otherwise>

        <c:set var="doneLoop" value="false" />

    </c:otherwise>

</c:choose>


이렇게 <c:choose> 태그안에 <c:when>이 중복되어 사용이 가능하며 boolean값이 True일 경우 블록을 수행합니다. <c:otherwise>는 <c:when>의 결과 값이 모두 False 일 경우 실행이 됩니다. 그래서 필요한 경우에만 사용됩니다.

 

6. <c:forEach>

자바에서는 for문으로 불리던게 JSTL에서는 forEach로 변경되었습니다. 배열이나 컬렉션, Map에 저장되어 있는 값들을 순서대로 처리 할때 사용되며, <c:forEach var=" i " begin=" 1 " end=" 10 " step=" 1 "> ${ i } </c:forEach>로 i가 1부터 10까지 1씩 증가한다는 구문을 쉽게 만들 수 있습니다.

7. <c:forTokens>

자바의 StringTokenizer 를 JSTL를 사용하면 아주 간편하게 사용할 수 있습니다. 

<c:forTokens var="abc" items="안녕/하세요/hunit블로그/입니다" delims="/" >이렇게 코드를 작성할 수 있겠죠.

8. <c:catch>

try{

     자바에서는 여기에 행동    

    } catch (Exception err){

            에러내용 표시 

     }

 

 

 <c:catch var= "abc ">

      JSTL에서는 여기에 행동 

 </c:catch>

 태그 밖에 ${abc}를 사용하여 에러내용



자바의 Try-catch 구문과 같죠. 단 <c:catch>태그는 에러내용을 ${abc}로 빼내서 처리해줘야 합니다.


추가로 <c:redirect>와 <c:import> , <c:url> 태그가 있지만 글이 길어진 관계로 짤막하게 정리하고 끝내도록 하겠습니다. 별로 설명할게 없다는 것도 하나의 이유지만요.

9. <c:redirect>는 아래와 같이 파라미터 값을 지정된 url로 보냅니다.

<c:redirect url="baordList.jsp">

<c:param name="abc" value="안녕하세요" />

</c:redirect>

 

10. <c:import>는 <jsp:include>와 비슷합니다.

11. <c: url>은 <c:set>과 비슷하며 GET방식으로 파라미터를 전달합니다.



출처 : http://hunit.tistory.com/203

'백엔드 언어' 카테고리의 다른 글

자바 웹 개발자의 학습 로드맵  (0) 2017.06.18
템플릿 언더바 기본 (Template Underscore)  (0) 2017.03.24
Json-Simple 추가 및 사용법  (0) 2017.03.24
쓰레드  (0) 2017.03.24
커넥션 풀  (0) 2017.03.24
Posted by EL2A
백엔드 언어2017. 3. 24. 20:02

- 라이브러리 추가


다운로드

https://code.google.com/archive/p/json-simple/downloads


1. json-simple-1.1.1.jar 다운로드

2. 다운로드 받은 파일을 아파치 톰캣의 lib 폴더에 넣는다.

3. 추가할 프로젝트에서 오른쪽버튼을 클릭 후

Build Path -> Configure Build Path... 를 누른다.

4. Java Build Path -> Libraries -> Add Library...

5. 다운받은 json-simple-1.1.1.jar 를 추가한다.

6. 라이브러리 추가 완료 !





- 사용법


1. 기본 객체

  1) JSON 객체를 생성

  JSONObject jsonObj = new JSONObject();


  2) JSON 객체에 데이터 저장(복수저장 가능)

  jsonObj.put("이름1", "내용1");

  jsonObj.put("이름2", "내용2");


  3) 결과

  => {"이름2":"내용2","이름1":"내용1"}


2. 배열 객체

  1) JSON 배열객체 생성

  JSONArray jArr = new JSONArray();


  2) 여러개의 JSON 객체 생성

  JSONObject obj1 = new JSONObject();

  obj1.put("name","사과");

  obj1.put("age","21");

  JSONObject obj2 = new JSONObject();

  obj2.put("name","바나나");

  obj2.put("age","27");


  3) JSONArray에 담기

  jArr.add(obj1);

  jArr.add(obj2);


  4) 결과

  => [{"name":"사과","age":"21"},{"name":"바나나","age":"27"}]

'백엔드 언어' 카테고리의 다른 글

템플릿 언더바 기본 (Template Underscore)  (0) 2017.03.24
JSTL 사용법  (0) 2017.03.24
쓰레드  (0) 2017.03.24
커넥션 풀  (0) 2017.03.24
생활코딩 자바 강의 정리  (0) 2017.03.24
Posted by EL2A
백엔드 언어2017. 3. 24. 19:57

쓰레드 : 하나의 동작으로 보면 된다.

프로세스 : 하나 이상의 쓰레드로 구성되어 있다.

멀티쓰레드 : 하나의 프로세스 내부에서 쓰레드가 여러개가 동작하는것


ex) 메신저를 기준으로 한다면, 첨부파일을 올리면서 채팅이 가능하다.

1쓰레드 : 첨부파일 업로드 

2쓰레드 : 채팅 발송

3쓰레드 : 채팅 수신 

이런식으로 쓰레드가 멀티로 동작할 수 있다.


실제로는 하나의 코어가 멀티쓰레드를 실행하더라도, 동시에 하는것이 아니라 번갈아가면서 처리하고 있다.

이를 context switch (컨텍스트 스위치) 라고 한다.


멀티프로세스또한 마찬가지로 하나의 코어가 프로세스 여러개를 동시에 처리하는 것처럼 번갈아가면서 처리하고 있다.

그리고 멀티코어는 여러개의 코어가 있으므로 프로세스를 번갈아가면서가 아닌 동시에 처리할 수 있게 된다.





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





위의 예제의 경우를 보면 쓰레드가 모두 종료되기도 전에 main 메소드가 먼저 종료되어 버렸다.

모든 쓰레드가 종료된 후에 main 메소드를 종료하려면 JOIN 을 사용하면 된다.






쓰레드 프로그래밍 시 가장 많이 실수하는 부분이 바로 쓰레드가 종료되지 않았는데 쓰레드가 종료된 줄 알고 그 다음 로직을 수행하게 만드는 일이다. 쓰레드가 종료된 후 그 다음 로직을 수행해야 할 때 꼭 필요한 것이 바로 이 join 메소드이다.


'백엔드 언어' 카테고리의 다른 글

JSTL 사용법  (0) 2017.03.24
Json-Simple 추가 및 사용법  (0) 2017.03.24
커넥션 풀  (0) 2017.03.24
생활코딩 자바 강의 정리  (0) 2017.03.24
starting tomcat v8.0 server at localhost has encountered a problem  (0) 2017.03.24
Posted by EL2A
백엔드 언어2017. 3. 24. 19:54


커넥션 풀(Connection Pool)


1. 커넥션 풀(DBCP)


데이터베이스와 연결된 커넥션을 미리 만들어서 풀(pool) 속에 저장해 두고 있다가 필요할 때 커넥션을 풀에서 쓰고 다시 풀에 반환하는 기법을 말한다.


웹 프로그램에서는 데이터베이스의 환경설정과 연결 관리 등을 따로 XML파일이나 속성 파일을 사용해서 관리하고, 이렇게 설정된 정보를 이름을 사용하여 획득하는 방법을 사용한다.


- 웹 컨테이너가 실행되면서 커넥션(connection) 객체를 미리 풀(pool)에 생성해 둡니다.


- DB와 연결된 커넥션(connection)을 미리 생성해서 풀(pool) 속에 저장해 두고 있다가 필요할 때에 가져다 쓰고 반환한다.


- 미리 생성해두기 때문에 데이터베이스에 부하를 줄이고 유동적으로 연결을 관리 할 수 있다.



2. 커넥션풀(DBCP) 사용 이유

만약 한명의 접속자가 웹 사이트에 접속했다고 가정한다. 해당 웹 사이트에서 접속자는 게시판을 확인하고 자신이 쓴 게시물을 수정하고 또 새로운 게시글을 등록한다고 가정해보자.


그럼 이 한명의 접속자로 인해 DB접속은 아래와 같이 발생한다.


1) 데이터 취득


2) 검색 후 데이터 취득


3) 데이터 갱신


4) 데이터 새등록




즉 한명의 접속자로 인해 단 시간에 4번의 DB 접속이 일어난다.


그럼 웹상에서 아주 짧은 시간에 몇번의 DB 접속이 일어날까? 만약 접속자가 1000명 이라면? 즉 커넥션 풀이란 미리 커넥션 객체를 생성하고 해당 커넥션 객체를 관리하는것을 의미한다.


즉 '커넥션 풀에 DB와 연결을 해 놓은 객체를 두고 필요할 때마다 커넥션 풀에서 빌려온다' 라고 이해하면 개념잡기에 쉬울듯 하다.


그리고 연결이 끝나면 다시 풀에 돌려준다.


커넥션 풀을 너무 크게 해놓으면 당연히 메모리 소모가 클것이고, 적게 해놓으면 커넥션이 많이 발생할 경우 대기시간이 발생할 것이다. 즉 웹 사이트 동시 접속자수 등 서버 부하에 따라 크기를 조정해야 할것이다.


cp.) 


서버는 동시에 사용할 수 있는 사람의 수라는 개념이 존재합니다.일반적인 커넥션을 이용하면 동시 접속자 수를 벗어나게 될 경우 에러(예외)가 발생하게 됩니다.


예외가 발생하면 그 접속자는 더이상 처리를 하지 못하므로, 사이트 이용자는 다시 접속을 시도해야하는 불편함이 있습니다.이를 해결하기 위해 탄생한 것이 커넥션 풀 입니다.


 커넥션 풀이란 동시 접속자가 가질 수 있는 커넥션을 하나로 모아놓고 관리한다는 개념입니다. 누군가 접속하면 자신이 관리하는 풀에서 남아있는 커넥션을 제공합니다.


하지만 남아있는 커넥션이 없는 경우라면 해당 클라이언트는 대기 상태로 전환시킵니다. 그리고 커넥션이 다시 풀에 들어오면 대기 상태에 있는 클라이언트에게 순서대로 제공합니다.


- JDBC를 통하여 DB에 연결하기 위해서는 드라이버(Driver)를 로드하고 커넥션(connection) 객체를 받아와야 한다.


- JDBC를 사용하면 사용자가 요청을 할 때마다 매번 드라이버를 로드하고 커넥션 객체를 생성하여 연결하고 종료하기 때문에 매우 비효율적이다.


- 이런 문제를 해결하기 위해서 커넥션풀(DBCP)를 사용한다.




출처 : http://devbox.tistory.com/entry/JSP-%EC%BB%A4%EB%84%A5%EC%85%98-%ED%92%80-1

Posted by EL2A
백엔드 언어2017. 3. 24. 19:47



객체 : 연관된 메소드와 그 메소드가 사용하는 변수들을 분류하고 그룹핑하는것의 대상


은닉화, 캡슐화 : 둘다 같은말로써, 내부의 동작 장법을 모르더라도 사용자는 사용할 수 있도록 만드는것


인터페이스 : 부품을 서로 교환할 수 있도록 규격을 만들어 놓는것





클래스 : 연관되어 있는 변수와 메소드의 집합


- 클래스 : 설계도

- 인스턴스 : 제품


Calculator c1 = new Calculator();

-> Calculator = 설계도

-> c1 = 제품

-> 데이터타입 = 사용자정의타입


변수 : 상태

메소드 : 행동

-> 하나의 클래스를 바탕으로 서로 다른 상태를 가진 인스턴스를 만들면 서로 다른 행동을 하게 된다는것.

-> -> 하나의 클래스가 여러개의 인스턴스가 될 수 있다는 점이 객체 지향이 제공하는 가장 기본적인 재활용성





객체의 구성원 : 변수, 메소드


static을 맴버(변수,메소드) 앞에 붙이면 클래스의 맴버가 된다.





메소드 : 객체의 동작


입력과 출력 : Javascanner 을 이용한 입력, 출력


객체 지향 프로그래밍 : 설계, 부품화, 캡슐화, 인터페이스

1) 설계 : 추상화하여 설계

2) 부품화 : 레고조립처럼 부품으로 만들어서 조립

3) 캡슐화(은닉화) : 부품이 어떻게 만들어졌는지 모르더라도 사용법을 알면, 사용할 수 있도록 내부의 동작방법을 숨기고 사용방법만 노출

4) 인터페이스 : 부품과 부품을 서로 교환할 수 있도록 만들어 놓는 틀(껍데기)


클래스와 인스턴스 그리고 객체

1) 클래스 : 연관되어 있는 변수와 메소드의 집합

2) 인스턴스 : 클래스는 설계도, 인스턴스는 제품

3) 객체 : 변수는 상태, 메소드는 행동


클래스 맴버와 인스턴스 맴버 : 지역변수, 전역변수와 비슷한 맥락


유효범위 : 지역변수, 전역변수와 비슷한 맥락


초기화와 생성자

1) 생성자 : 어떤 일을 시작하기 전에 준비를 하는것

  ※ 특징 : 생성자의 이름은 클래스의 이름과 동일하다, 값을 반환하지 않는다.


상속 : 재활용성을 위해 물려주는것


상속과 생성자 : super는 상위클래스를 가리키는 키워드, super 사용법


오버라이딩 : 상속받은 메소드를 재정의


오버로딩 : 인자수에 따라 실행방법을 다르게


클래스 패스 : 클래스 경로에 관해서


패키지 : 패키지 경로 및 특정 패키지 로드 방법


API와 API 문서 보는 법 : 자바 시스템을 제어할 수 있도록 자바에서 제공하는 명령어를 의미한다. 예를들면 System.out.println(""); 같은거


접근 제어자 : public는 제일많이 오픈, private는 제일많이 닫힘


abstract : 추상 메소드, 예를 들면

public abstract int a();

이런식으로 메소드를 선언만하고 이것을 상속받고 오버라이딩하여 사용이 가능


final : 상수를 지정, PI:3.14 같은거, 변하지 않는수


인터페이스 : 껍데기, 특정 메소드를 사용하도록 강제


다형성 : A obj = new B(); 같은거


예외 : try, catch로 예외처리, throw 또는 throws 같은것으로 던질 수 있음


Object 클래스 : 모든 클래스는 Object 를 상속받은 상태임.

예를들면 class O extends Object {} 처럼 항상 상속 받으나 extends Object 부분은 숨겨진거


상수와 enum

상수 : 변하지 않는 수, 한번 정의하면 그 값이 안바뀜

enum : 많은곳에서 사용하던 디자인 팬턴을 자바언어가 채택해서 문법으로 단순화시킨것


참조 : 복제는 복사를 의미함, 참조는 symbolic link 같은거, 바탕화면 바로가기같이 원본이 바뀌면 같이바뀜


제네릭 : 클래스 내부에서 사용할 타입을 외부에서 지정하는 기법

class Person<T> {

  public T info;

}

이런식으로 < > 를 써서 사용


Collections Framework : 배열은 처음 갯수를 지정하면 수정할 수 없지만. 이것은 수정가능, 하지만 사용하는 문법이 배열과 조금 다름

Posted by EL2A
백엔드 언어2017. 3. 24. 19:22

starting tomcat v8.0 server at localhost has encountered a problem


1. 작업관리자 실행
2. 프로세스에서 톰캣을 찾는다. (작업관리자에서 java나 tomcat 류를 찾는다)
3. 다 꺼버린다.

'백엔드 언어' 카테고리의 다른 글

커넥션 풀  (0) 2017.03.24
생활코딩 자바 강의 정리  (0) 2017.03.24
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path  (0) 2017.03.24
HTTP 404 error  (0) 2017.03.24
톰캣 설치 및 연동  (0) 2017.03.24
Posted by EL2A
백엔드 언어2017. 3. 24. 19:22

The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path


http://multifrontgarden.tistory.com/52


프로젝트 우클릭 -> Build Path -> Configure Build Path...-> Libraries 탭 -> add library 

-> server runtime -> was 선택 -> 끝

'백엔드 언어' 카테고리의 다른 글

생활코딩 자바 강의 정리  (0) 2017.03.24
starting tomcat v8.0 server at localhost has encountered a problem  (0) 2017.03.24
HTTP 404 error  (0) 2017.03.24
톰캣 설치 및 연동  (0) 2017.03.24
JDK 설치 및 이클립스 설치  (0) 2017.03.24
Posted by EL2A