Я очень новичок в JSP и Jetty, и я действительно смущен, почему этот код не работает.Jetty Настройка сервлета для связи с JSP Страница
Это мой Основной класс
public static void main(String[] args) {
Server server = new Server(8080);
// As we are using the Servlet to server responses remove the resource
// handler.
ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(true);
resource_handler.setWelcomeFiles(new String[] { "index.jsp",
"index.html" });
resource_handler.setResourceBase("./target/classes/webapp");
// Initialise Servlet context handler
ServletContextHandler context = new ServletContextHandler(
ServletContextHandler.SESSIONS);
context.setContextPath("/");
// Create WebAppContext for JSP files.
WebAppContext webAppContext = new WebAppContext();
webAppContext.setResourceBase("./target/classes/webapp");
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { webAppContext, context,
resource_handler, new DefaultHandler() });
server.setHandler(handlers);
try {
server.start();
} catch (Exception ex) {
ex.printStackTrace();
System.exit(-1);
}
}
Это мой сервлет
public class IndexServlet extends HttpServlet {
private static final long serialVersionUID = 0x1C30CCL;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Set response content type.
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_OK);
request.setAttribute("message", "hello");
}
}
Это мой index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<title>Book a hotel!</title>
</head>
<body>
<form action="index.jsp" method="post">
<input type="text" name="username" placeholder="Enter Username" />
<input type="Submit">
</form>
<p> The current local time at the hotel is: <%= new java.util.Date() %> </p>
<h1>${message }</h1>
</body>
</html>
и это мой веб .xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-class>ncl.raffaello.IndexServlet</servlet-class>
<servlet-name>IndexServlet</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>IndexServlet</servlet-name>
<url-pattern>index.jsp</url-pattern>
</servlet-mapping>
</web-app>
Моя проблема заключается в том, что, хотя я знаю, что .jsp работает, когда у меня нет сервлета, я хочу, чтобы сервлет для установки переменного запроса, однако, когда активизирован сервлет, как в моих примерах кода он вообще не запускает никакой .jsp! Любая помощь? Я на потери в том, что делать ...
Я делаю последнее, и это работает, мой вопрос в том, можно ли «перехватить» вызов при отправке запроса GET, установить некоторые параметры, а затем переадресовать на страницу .jsp с тем же именем, которое будет отображаться этот параметр. – Display
Если только сервер не предоставил какой-либо особый индивидуальный способ его выполнения. В основном сервер не может сопоставлять один и тот же uri (/index.jsp) с одним ресурсом для входящего запроса и другого ресурса для прямого запроса. – mmulholl
Хорошо, это довольно информативно, я буду отмечать ваш ответ как принятый и выбрать второй вариант. Большое спасибо! – Display