ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Servlet-JSP 순수to웹 (5) 나머지 여러가지 설정
    Web/Servlet-JSP 2023. 5. 23. 17:13

     

    1. 서블릿 만들기

     

    반복해서 얘기하듯 WAS가 서블릿을 찾아서 처리하고 응답가능한 코드 만들어서 클라이언트 브라우저로 내보낸다.

    서블릿을 사용하려면 1. javaSE에 없는 서블릿 관련 라이브러리 등록 2. web.xml에 servlet등록 3. build path -> WEB-INF/classes폴더로 변경의 3단계가 완료되어 있어야 한다.

    자바 EE에서는 프로그램의 기본단위가 servlet이다.

    servlet은 기본 java 프로젝트처럼 하나의 템플릿이 있는데 아래와 같다.

    public class Hello_start extends HttpServlet {
    	
       @WebServlet("/h.do")
    	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		//1.클라이언트의 요청을 받는 작업(클라이언트로 넘어오는 파라미터 수집)
    		//2.처리 작업 (비지니스 로직)
    		
    		int sum =0;
    		//3.요청한 클라이언트에게 응답하는 작업 
    		
    	}
    
    }

    클라이언트에게 응답하기 위해서는 클라이언트가 서버에 ip주소와 port로 조합해서 요청한 것처럼 

    클라이언트의 ip주소 및 port(요청) 그리고 요청한 내용을 담아야하는데 그러한 역할을 request와 response 파라미터가 해준다. 

    - @WebServlet 애너테이션을 사용하면 web.xml에 서블릿을 등록하는과정을 생략할 수 있다.

    - 이제 서블릿을 컨트롤러로 사용하고 비지니스 로직은 순수 자바 프로젝트가 처리하도록 하고 view를 JSP에서 처리하게하는 기본적인 MVC모델에 요소가 완성되었다.

    -여기서 컨트롤러란 서버에서 클라이언트의 요청을 가장 먼저 받는 요소정도로 생각해두자 일종의 가이드이다.

     

     

    *이제 라이브러리에 javaSE도 있고, 서블릿과 jsp를 위한 api도 추가되었으니 순수자바웹프로젝트의 큰틀안에서 자유롭게 패키지명에따라 클래스를 import해서 사용하자

    *보통 model과 컨트롤러를 패키지 단위로 등록한다(자바클래스도 그랬던것처럼..) 컴파일하면 classes폴더에 자동으로 동일하게 패키지 구조별로 디렉토리가 쪼개진다.  

    *HttpServlet을 상속받고 우클릭해서 오버라이드를 찾으면 상속계층도 볼 수 있고, 쉽게 service를 생성할 수 있음 

     

    2. Mysql 테이블 만들기 

     

    2.1 src에 db를 위한 패키지를 만들고 그안에 file을 새로만드는데 확장자를 .sql로 만들자.

    2.2 이때 아직 sql은 disconnected 되어있다.

          연결을 위해 mysql서버를 구동하고 data source Explorer에 mysql 더블클릭

    2.3그러면 mysql을 이클립스와 연동했을때 등록했던 테이블이 뜬다.

         다시 .sql 파일로 가서 두번째 탭에 new msql을 등록하고 DB는 test로 해두면 연결이 완료된다.

     

    연결완료 후 간단하게 스키마를 구성해보자 

    create table member (
    	num int primary key auto_increment, 자동증가
    	id varchar(20) not null, -- 공백 불가 무조건 채워라 !
    	pass varchar(20) not null, 칼럼명, 데이터타입, 옵션 순서
    	name varchar(30) not null.
    	arge int not null,
    	email varchar(30) not null,
    	phone varchar(30) not null;
    )

     

    3. 다이나믹 웹 프로젝트 생성

     

    이제 순수 자바 프로젝트를 다이나믹 웹 프로젝트처럼 만들어보는 대부분의 과정을 한번 해봤으니 이제 다이나믹 웹프로젝트를 생성해서 사용하자 

     

    1. new Dynamic Web Project -> 톰캣 잘 연결되어있는지 확인

    2. next누르면 src있고 컴파일 위치 지정가능 (bulid/classes) 

       -> 이클립스에서 관리하기 위해 따로 떼어둔 것 뿐 배포시 자동으로 WEB-INF/classes로 넘어감

    3. next를 누르면 Context root와 Context path 등록이 나온다 (와! 자동!) 

       -> root랑 실제주소 맵핑하고 실제 Server.xml에선 root가 docBase로 사용된다.

     

    완성되었다.! 이제 webapp아래 jsp,html,css등등 두고 src에 패키지별로 필요한 모델과 컨트롤러(서블릿)

    등록해서 사용하자 

     

    서블릿도 이제 바로 생성가능하다 url매핑도 생성과 동시에 가능함!

     

    4. 프로젝트 import 및 export --> 프로젝트 우클릭하면 나옴 war나 jar로 

    import시에 톰캣서버에 context등록해야한다는 것만 유의하자 

     

     

    참고자료: 나프1탄 - 박매일 

     

Designed by Tistory.