2015-05-13 4 views
0

Я создал веб-приложение MyApp.Как отобразить исходный URL-адрес в браузере в случае переадресации

У меня есть JSP roleAdd.jsp который имеет форму, которая отправляет на адрес RoleAdd.do URL.

<form id="form_role_add" method="post" action="RoleAdd.do"> 
    <label id="label_role_name">Role Name: </label> 
    <input type="text" id="role_name" name="role_name"> 
    <label id="label_role_desc">Role Desc: </label> 
    <input type="text" id="role_desc" name="role_desc"> 
    <button type="submit" id="button_add" name="button_add">Add</button> 
</form> 

web.xml В I карте RoleAdd.do URL в RoleAddServlet сервлет.

<servlet> 
    <servlet-name>RoleAddServlet</servlet-name> 
    <servlet-class>com.myapp.web.servlet.RoleAddServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>RoleAddServlet</servlet-name> 
    <url-pattern>/RoleAdd.do</url-pattern> 
</servlet-mapping> 

В RoleAddServlet сервлета, я экспедиторских обратно roleAdd.jsp.

RequestDispatcher view = request.getRequestDispatcher("roleAdd.jsp"); 
view.forward(request, response); 

Теперь я печатаю в http://localhost:8080/MyApp/roleAdd.jsp в браузере. Загружен JSP. Я помещаю данные в форму и нажимаю кнопку «Отправить». Он перешел на сервлет RoleAddServlet, а затем отправил обратно на roleAdd.jsp. Только проблема заключается в том, что браузер теперь показывает http://localhost:8080/MyApp/RoleAdd.do.

Возможно ли, что баузер показывает http://localhost:8080/MyApp/roleAdd.jsp?
Если да, то что мне нужно сделать?
Если нет, то почему?

Благодаря

+0

Смотрите, если редирект работает вместо: 'response.sendRedirect («/ roleAdd.jsp»);' – CubeJockey

+0

Это работает, но я потерял свой атрибут, который я поставил, чтобы запросить объект в 'RoleAddServlet' сервлета. Этот атрибут более важен, чем неправильный URL-адрес, отображаемый в браузере. – ChumboChappati

ответ

0

перенаправляет запрос от сервлета к другому ресурсу (сервлетов, JSP-файл или HTML-файл) на сервере. Этот метод позволяет одному сервле сделать предварительную обработку запроса и другого ресурса для генерации ответа. Новый объект запроса не будет создан в диспетчере запросов. Если вы хотите изменить URL, вы должны использовать request.sendRedirect(String url). Это невозможно с forward(ServletRequest request,ServletResponse response). Если вы хотите передать параметры с помощью перенаправления, выполните следующие действия: YourPageName.jsp?name=nameYouEntered.
Надеюсь, это поможет вам.

+0

Хмм интересно добавить параметры в строку запроса для перенаправления. – ChumboChappati

0

Решил проблему следующую строку:

response.sendRedirect(request.getContextPath()+"/report.jsp"); 

Примечание: Не используйте ниже строк кода для перенаправления.

RequestDispatcher RequetsDispatcherObj1 = request.getRequestDispatcher("/report.jsp"); 
RequetsDispatcherObj1.forward(request, response);