Как получить доступ к странице индекса?

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>

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

Теги:
servlets
indexing

2 ответа

1

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

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

}
  • 0
    Я не работал, я не знаю почему, говорит, что слишком много перенаправлений ...
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");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню