2009-12-01 18 views

Odpowiedz

2

Jak to prawdopodobnie:

<jsp:include page="/path/to/servlet" /> 

Więcej tutaj: jsp docs

+0

Dokładnie przeciwnie, o to pyta OP. – schlingel

+0

Nie widzę, jak to prawda ... – inkredibl

+0

Problem: Jesteś w Servecie i chcesz renderować konkretną stronę JSP. Rozwiązanie: Włącz wynik serwletu do strony JSP. (Co?) Ale tego nie chcę. Chcę wysłać użytkownika po określonej akcji do określonej strony JSP. To może być takie samo lub mogą się różnić w zależności od parametrów (strona błędu, strona z wynikami itd.). – schlingel

0

Aby przesłać żądanie/odpowiedź z serwletu do czegoś innego (np JSP) będziesz chciał patrzeć na klasę RequestDispatcher . Klasa ServletContext ma metodę, aby uzyskać program rozsyłający, który można wywołać z poziomu serwletu.

Na przykład (w promieniu doPost/doGet metody aplet jest):

RequestDispatcher rd = getServletConfig().getServletContext() 
    .getRequestDispatcher("/jsp/myfile.jsp").forward(request,response); 
23

Zazwyczaj nie używam aplet do generowania HTML. Zwykle używasz do tego JSP/EL. Używanie out.write i konsorcjów do strumieniowego przesyłania treści HTML jest uważane za niewłaściwą praktykę. Lepiej korzystaj z atrybutów żądań.

Na przykład:

protected void doGet(HttpServletRequest request, HttpServletResponse response) { 
    Object data = "Some data, can be a String or a Javabean"; 
    request.setAttribute("data", data); 
    request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response); 
} 

mapie w web.xml na <url-pattern> z np /page. Umieść stronę JSP pod numerem /WEB-INF, aby uniemożliwić bezpośredni dostęp. Następnie w JSP można użyć EL (Expression Language), aby uzyskać dostęp scoped atrybuty:

<p>The data from servlet: ${data}</p> 

połączenia serwletu przez http://example.com/context/page. Proste. W ten sposób kontrolujesz wyjście i prezentację w jednym miejscu, stronie JSP.

+0

Niż Q.it działa – pavan

0
getServletConfig().getServletContext() 
    .getRequestDispatcher("/jsp/myfile.jsp").forward(request,response); 

jest VOID typ, nie może powrócić RequestDispatcher rd.

+0

Czy odpowiadasz na inne pytanie? – SiKing

+0

@SiKing To jest komentarz do odpowiedzi http://stackoverflow.com/a/1824967/188107 powyżej. FWIW to nawet marginalnie przydatny komentarz, chociaż bardziej odpowiednia byłaby edycja. Próbowałem to zgłosić, ale zostało zakwestionowane ... – musiKk

Powiązane problemy