Я новичок в работе с сервлетами, и я видел, что есть много кода, который объясняет, как сделать полный путь через запрос-ответ сервлета, но в большинстве случаев они используют 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>
Спасибо за ваше время!
Вы можете просто перенаправить его на любой веб-сайт, который вы хотите.
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.sendRedirect("/yourwebAdress/index.html");
}
Я делаю, что вы создаете индексную страницу, например 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");