2010-04-20 3 views
1

나는 쉽게 할 수 있다고 확신하지만 웹 사이트 개발과 관련하여 자주 작업하지 않으며이 기사에서 실종되었다.서블릿을 사용하여 객체에 대한 요청에 대한 회신

다른 설정, 아이콘 및 기타 콘텐츠로 여러 클라이언트를 지원해야하는 웹 응용 프로그램이 있습니다. 이 파일의 내용은 각 클라이언트마다 별도의 디렉토리에 있습니다.

jsp/java 서블릿에 보낸 요청에 응답하고 싶습니다. 서블릿은 데이터베이스의 적절한 폴더 위치를 검색하여 (데이터베이스 작업을 수행합니다) xml, 그래픽 또는 비디오 여부에 관계없이 요청한 페이지에 실제 개체를 보냅니다.

어떻게하면됩니까? 어떤 방법을 사용해야합니까? 내가 길을 잃은 걸 도와 줘! :(

답변

1

로그인 한 사용자에 따라 조치를 취할 수 있도록 사용자 로그인을 제공하십시오. 로그인시 발견 된 User을 세션 범위에 HttpSession#setAttribute()으로 저장하십시오. 그런 다음 모든 요청마다 HttpSession#getAttribute()으로 로그인 한 사용자를 확인하십시오. 예 :

User user = (User) session.getAttribute("user"); 
List<Movie> movies = movieDAO.findMoviesByUser(user); 
request.setAttribute("movies", movies); 
request.getRequestDispatcher("/WEB-INF/movies.jsp").forward(request, response); 
0

는 상기의 doPost 및/또는의 doGet 메소드에서 다음을 수행 서블릿 쓰기 :.

  1. 는 그들이 원하는 것을 나타내는 HTTP 요청에서 매개 변수를 가져옵니다을
  2. 상호 작용을 데이터베이스와 모델 객체 요청 된 데이터를 얻을 수 있습니다.
  3. 는 JSP 범위에 데이터를 추가하거나 응답 출력 스트림

당신은 WAR 파일에 서블릿을 포장해야합니다에 HTML 물품. web.xml 파일 쓰기 서블릿을 선언하고 요청 URL에 매핑하십시오.

그게 전부입니다.

0

요청 및 응답이 doGetdoPost 방법 당신의 serlvet의 일부입니다 :

이 JSP에서
request.SetAttribute("customValue", new CustomClass()); 
RequestDispatcher dispatcher = request.getRequestDispatcher(/*..*/); 
dispatcher.forward(request, response); 

당신은 단지를 조회합니다 :

protected void doGet(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException { 
    //... 
} 

당신은 객체를 저장하는 request을 사용할 수 있습니다 요청의 속성 :

CustomClass customValue= (CustomClass) request.getAttribute("customValue"); 

업데이트 됨.

+0

응답 개체에 특성을 설정할 수 없습니다. HttpSession, ServletContext 및 ServletRequest 인스턴스 만 속성이 저장 될 수 있습니다. – DoctorRuss

+0

@DoctorRuss oops ... 그에 따라 업데이트되었습니다. – Kiril