2014-02-18 2 views
0

Я новичок в работе с сервлетами, и я видел, что есть много кода, который объясняет, как сделать полную дорогу через запрос-ответ сервлета, но в большинстве случаев они используют response.getWritter().println("something"), но, Я видел, что есть другие способы генерации html-контента, например индексной страницы, которая должна взиматься по умолчанию при доступе сервлета. У меня есть базовый пример сервлета и web.xml, я хочу знать, можете ли вы помочь мне понять, что я могу сделать, чтобы index.html показывал, когда я набираю localhost:8280/persistence-with-jdbc2/...Как получить доступ к индексной странице?

Это основная из сервлет:

@WebServlet(urlPatterns = "/PersistenceWithJDBCServlet2") 

public class PersistenceWithJDBCServlet2 extends HttpServlet { 

    private static final long serialVersionUID = 1L; 

    private static final Logger LOGGER = 
     LoggerFactory.getLogger(PersistenceWithJDBCServlet2.class); 

    private PersonDAO personDAO; 


    @Override 
    public void init() throws ServletException { 

     System.out.println("init"); 
    } 

    @Override 
    protected void doGet(HttpServletRequest request, 
     HttpServletResponse response) throws ServletException, IOException { 
     //What can I use here? 
    } 

    @Override 
    protected void doPost(HttpServletRequest request, 
     HttpServletResponse response) throws ServletException, IOException { 

     try { 
      // test code 
     } catch (Exception e) { 
      response.getWriter().println(
       "Persistence operation failed with reason: " 
        + e.getMessage()); 
      LOGGER.error("Persistence operation failed", e); 
     } 
    } 
} 

и web.xml содержание:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web- app_3_0.xsd" id="WebApp_ID" version="3.0"> 
<display-name>persistence-with-jdbc2</display-name> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
</welcome-file-list> 
    <servlet> 
    <description></description> 
    <display-name>PersistenceWithJDBCServlet2</display-name> 
     <servlet-name>PersistenceWithJDBCServlet2</servlet-name> 
    <servlet-class>com.sap.cloud.sample.persistence.PersistenceWithJDBCServlet2</servlet-class> 
    </servlet> 
<servlet-mapping> 
    <servlet-name>PersistenceWithJDBCServlet2</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 
<resource-ref> 
    <res-ref-name>jdbc/DefaultDB</res-ref-name> 
<res-type>javax.sql.DataSource</res-type> 
</resource-ref> 
</web-app> 

Спасибо за ваше время!

ответ

1

Вы можете просто перенаправить его на любой веб-сайт, который вы хотите.

@Override 
protected void doGet(HttpServletRequest request, 
     HttpServletResponse response) throws ServletException, IOException { 
     response.sendRedirect("/yourwebAdress/index.html"); 

} 
+0

Я не работал, я не знаю, почему, говорит слишком много переадресаций ... – kar

0

я вещь, которую вы создаете страницу индекса как index.jsp и поместить этот следующий пример кода вроде как:

<body> 
<jsp:forward page="/UserController?action=listUser" /> 
</body> 

И называют эту страницу индекса на странице web.xml, как

<display-name>Simple1</display-name> 

    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 
    <description></description> 
    <display-name>UserController</display-name> 
    <servlet-name>UserController</servlet-name> 
    <servlet-class>com.pro3.controller.UserController</servlet-class> 
    </servlet> 

И добавить этот в контроллер страницы:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{ 
    String forward=""; 
    String action = request.getParameter("action"); 
Смежные вопросы