이번 삽질 내용은
jsp 에서 스프링 bean 에 등록되어있는 controller 를 호출하는 것인데요..
아래와 같은 코드로는 계속 bean 을 못찾는다고 나오네여.ㅠㅠ
ServletContext servletContext = this.getServletContext();
WebApplicationContext wac =
WebApplicationContextUtils.getRequiredWebApplicationContext
(servletContext);
WapController wap = (WapController)wac.getBean("wap");
통계 관련하여 개발중인데 사용자가 페이지 접근시에 접근한 jsp 페이지 name을 request 객체에서 가져오고, 이 정보를
이용하여 DB 에 접근하여 page_ID 를 가져오는 식으로 개발하고 있기 때문에 jsp 에서 화면 전환 없이
controller 를 호출해야 하는 것입니다..ㅎㅎ
혹시 controller를 호출안하고, jsp 단에서 DB 작업을 할 수 있는 좋은 방법이 있으면 조언 부탁드리겠습니다.
On 8월7일, 오후4시28분, sungchul park <gyu...@gmail.com> wrote:
> > request 객체는 JSP에서 접근할 수 있고, DB는 controller가 아니더라도 접근할 수 있는데 Controller를
>
> 호출해야 하는 이유는 뭔가요?
>
> 아마도 jsp를 재활용하려는 것 같은데요.
> 여러 컨트롤러가 통계 출력시 한 jsp를 view로 사용하고 그 view는 url에서 컨트롤러를 얻어 그 컨트롤러에 공통적으로 구현된
> 메소드를 실행시켜서 어떤 값을 가지고 오려는...
>
> 그런데 규우님... 그냥 컨트롤러가 자기 자신의 레퍼런스를 model에 넣어주면 안 되나요?
> 그리고 미리 DB에서 읽어야하는 그 값을 model에 넣어줄 수 없는 상황인가요?
>
> 2009년 8월 7일오후 2:33, 안영회 <ahnyoung...@gmail.com>님의 말:
>
>
>
> > 통계 관련하여 개발중인데 사용자가 페이지 접근시에 접근한 jsp 페이지 name을 request 객체에서 가져오고, 이 정보를
> >> 이용하여 DB 에 접근하여 page_ID 를 가져오는 식으로 개발하고 있기 때문에 jsp 에서 화면 전환 없이
> >> controller 를 호출해야 하는 것입니다..ㅎㅎ
>
> > request 객체는 JSP에서 접근할 수 있고, DB는 controller가 아니더라도 접근할 수 있는데 Controller를
> > 호출해야 하는 이유는 뭔가요?- 원본 텍스트 숨기기 -
>
> - 원본 텍스트 보기 -
...
모든 jsp 페이지에는 common.jsp 라는 파일이 include되어 있는 상태이구, 이 include 되어 있는 공통 파 일에서 접속 로그를 쌓으려고 합니다..
현재 설계상으로는 jsp 페이지마다 유일한 page_ID를 부여하였는데 이 부여된 page_ID 를 뽑아오려면
request.getRequestURI() 을 이용하여 176_intro.jsp 와 같은 식으로 페이지명을 얻어와 DB 조회를
하여 page_id를 뽑아온 후에 이 페이지 아이디를 DB에 insert를 하려고 하는 것입니다..
그렇기에 사용자 화면에서는 페이지 전환이 안 이루어지게끔 저는 bean를 가져와 insert, select를 하려고 하는것인
데 , 이게 좋은 방법인지는 잘 모르겠네여..
혹시 controller를 호출안하고, jsp 단에서 DB 작업을 할 수 있는 좋은 방법이 있으면 조언 부탁드리겠습니다.
특정 HTTP 요청마다 로그를 찍는 목적이라면 JSP 보다는 Handler Interceptor를 사용하는 방법이 어떨까요? 한글 설명도 찾을 수 있군요.
On 8월10일, 오전7시24분, Toby Lee <tobyi...@gmail.com> wrote:
> > 특정 HTTP 요청마다 로그를 찍는 목적이라면 JSP 보다는 Handler Interceptor<http://static.springsource.org/spring/docs/2.5.x/reference/mvc.html#m...>를
> > 사용하는 방법이 어떨까요? 한글 설명<http://www.javajigi.net/pages/viewpage.action?pageId=2528>도
> > 찾을 수 있군요.
>
> 스프링MVC(DispatcherServlet)를 통해서 들어오는 것이 아니고 JSP가 전방에 있는(아마도 고정된 URL때문?)
> Model1인데 HandlerInterceptor라니 말도 안되는 얘기군요.
>
> 기술적으로는 접근방법은 전혀 문제가 없습니다. JSP Model1에서 스프링 컨텍스트를 가져와 스프링을 이용하는 가장 전형적인 구조이니
> 스프링 컨텍스트를 제대로 못가져올 이유는 없습니다. 설정 어딘가가 제대로 안되어있는 것일테고, 그건 프로젝트의 설정관련 파일 전체를
> 보여주지 않으시면 잡을 방법이 없습니다.
>
> 일단 로그목적이라면 구지 컨트롤러를 호출해야 할 이유는 없습니다. 간단한 로그용 서비스 빈을 만들어서 사용하시고, URL만 넘겨주면
> 되겠죠.
>
> 설정이 바르게 됐다면 JSP의 include에서 해도 되고, 좀 폼나게 한다면 ServletFilter를 이용하는 방법도 괜찮을 것
> 같습니다.
>
> 문제가 발생하는 풀 프로젝트 파일(최소한의 것이라도)을 올려주기 전에는 더 이상 조언 가지고는 현재 문제해결 자체에는 도움이 될게
> 없습니다. 간단한 방법인데 안된다면 분명 설정 어딘가에 실수를 한 것입니다. 차근차근 설정파일 만드는 것부터 해보시던가요.
>
> 2009/8/10 안영회 <ahnyoung...@gmail.com>
>
> > ...
> >> 모든 jsp 페이지에는 common.jsp 라는 파일이 include되어 있는 상태이구, 이 include 되어 있는 공통 파
> >> 일에서 접속 로그를 쌓으려고 합니다..
> >> 현재 설계상으로는 jsp 페이지마다 유일한 page_ID를 부여하였는데 이 부여된 page_ID 를 뽑아오려면
> >> request.getRequestURI() 을 이용하여 176_intro.jsp 와 같은 식으로 페이지명을 얻어와 DB 조회를
> >> 하여 page_id를 뽑아온 후에 이 페이지 아이디를 DB에 insert를 하려고 하는 것입니다..
> >> 그렇기에 사용자 화면에서는 페이지 전환이 안 이루어지게끔 저는 bean를 가져와 insert, select를 하려고 하는것인
> >> 데 , 이게 좋은 방법인지는 잘 모르겠네여..
>
> >> 혹시 controller를 호출안하고, jsp 단에서 DB 작업을 할 수 있는 좋은 방법이 있으면 조언 부탁드리겠습니다.
>
> > 글만 보아선 상황이 정확하게 이해하기 힘들지만, 현재 방식은 무언가 자연스럽지 못하네요. 특정 HTTP 요청마다 로그를 찍는 목적이라면
> > JSP 보다는 Handler Interceptor<http://static.springsource.org/spring/docs/2.5.x/reference/mvc.html#m...>를
> > 사용하는 방법이 어떨까요? 한글 설명<http://www.javajigi.net/pages/viewpage.action?pageId=2528>도
> > 찾을 수 있군요.