У меня здесь странная проблема, и я действительно застрял, мне нужно плохо работать.
так что у меня есть страница с именем index.jsp со ссылкой "a href = servlet? Id = 10". когда я нажимаю на эту ссылку, она переходит к doGet () в моем сервлете, и вот код в моем сервлете.
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String action = request.getParameter("id");
// search database and create an arraylist
if(//user logged in)
address = "s/results.jsp";
else
address = "results.jsp";
// set arraylist in session object
RequestDispatcher dispatcher = request.getRequestDispatcher(address);
dispatcher.forward(request,response);
}
Таким образом, приведенный выше код работает нормально, но после пересылки запроса мой браузер отображает URL-адрес как
http://localhost/project/servlet?id=10.
Мне не нужен указанный выше URL, поскольку я пересылаю два разных jsp в зависимости от состояния входа пользователя: один находится в папке 's', а другой - вне этого.
если пользователь вошел в систему, то я пересылаю в «s / results.jsp», а если пользователь не вошел в систему, я пересылаю в «results.jsp».
в случае s / results.jsp я получаю доступ к ресурсам, таким как изображения и скрипты, из папки 's', используя ../ в results.jsp.
, поскольку URL-адрес не изменяется на s / results.jsp, я не могу получить доступ к ресурсам с помощью "../"
и так как я использую пагинацию jsp, когда я нажимаю дальше, URL-адрес меняется на s / results.jsp
и в этом случае я могу получить доступ к ресурсам, используя ../
Единственное решение, которое я думаю, - скопировать все ресурсы в папку s, но это увеличит
избыточность.
Еще одно решение в моем уме - создать два разных сервлета для двух jsp.
но я не знаю, куда поместить сервлет, чтобы он мог обращаться к ресурсам вне папки s с помощью ../
это любой другой хороший способ, которым я могу выполнить задачу.
Я пытался найти информацию об этом, но не смог ее выяснить.
Любая помощь будет очень признательна.