웹페이지에서 궁금했던 확장자 .do 파일의 의미

 

이전 글을 편집하려다보니 많은 부분을 수정했다.
본인도 아직 공부하는 중이라 조금 이해하는 정도지만, 궁금하신 분들에게 간단히 개념만 가지라고 쓰는 글이다.

 

웹쪽은 개념만 이해하고 있었고, 웹페이지는 .jsp(java), .php(c), .asp(c#) 확장자로 끝이 난다고 알고 있었는데 언젠가 부터 .do가 보였던거 같다.

 

 

결론>

jsp에서 사용하는 가상의 주소라고 생각하면 된다.

우리나라에서만 유독 .do로 사용하는것 같다

해외사이트를 조금 찾아봤는데 확장자 없이 사용하는 사이트도 많은 것 같다.

자신이 원하는 어떤 것이로든 사용가능하다. 예를 들면 .goto .abc ... 등

 

서블릿이나 스프링의 개념은 같다.

어노테이션을 이용해서 가상의 주소를 받아 자바 파일에서 처리한다.

페이지를 돌려줄때는 get방식이나 post방식으로 원하는 jsp 파일을 호출한다.

 

가상의 주소를 사용하면 사용자는 파일의 실제 경로를 알 수 없으므로 보안에 도움이 되고,

소스보기를 해도 소스는 볼 수 있지만 파일의 이름과 경로는 알 수 없다.

 

 

흐름>

1) test.jsp 페이지에서 test.do가 링크 되어있는 요소를 클릭하면

2) 이동하는 페이지는 웹서버에서 test.do가 있는 java파일을 확인하고,

3) test.do를 사용하는 어노테이션을 가진 메소드로 이동해서 처리한다.

4) 이후 메소드 안에서 지정해놓은 jsp파일로 이동한다.

 

 

파일에서 처리>

아래와 같이 JSP 페이지(test.jsp)에서 .do가 링크되어 있다면 

# test.jsp

...

<a href="/test.do">테스트</a>

...

 

 

Servlet에서의 처리방법>

# TestServlet.java

public class TestServlet... {

    ...

    // doGet() 메소드에서 indexOf() 함수를 사용해서 test.do를 구분함.

    protected void doGet(...) {

        String url = request.getRequestURL().toString();

        if (url.indexof("test.do") != -1) { // test.do 의 처리를 여기서 함

            // 원하는 처리

            ...

            // 돌려줄 페이지 정의

        }

    }

    ...

}

 

 

Spring에서의 처리방법>

# TestController.java

@Controller

public class TestController ... {

    ...

    // 필요한 메소드를 만들어서 사용

    // 예를들면 myTest() 이라고 한다면 메소드위에 어노테이션을 이용함.

    @RequestMapping("test.do") // test.do 의 처리를 여기서 함

    public void myTest() {

        // 원하는 처리

        ...

        // 돌려줄 페이지 정의

    }

    ...

}

 

 

참고>

${path}: 는 프로젝트의 Property> Web Project Settings> Context root: 의 내용을 나타내고

흔히 알고 있는 웹페이지 주소(www.mysite.com) 다음에 나오는 프로젝트 이름이라고 생각하면 됨.

 

+ Recent posts