2015-05-13 34 views
0

我已經創建了一個web應用程序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我映射RoleAdd.do網址RoleAddServlet的servlet。

<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的servlet,我轉發回roleAdd.jsp

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

現在我在瀏覽器中輸入http://localhost:8080/MyApp/roleAdd.jsp。 JSP被加載。我在表單中輸入數據並點擊提交按鈕。它進入RoleAddServlet servlet,然後轉發回roleAdd.jsp。唯一的問題是瀏覽器現在顯示http://localhost:8080/MyApp/RoleAdd.do

bowser顯示http://localhost:8080/MyApp/roleAdd.jsp有可能嗎?
如果是,那麼我需要做什麼?
如果不是那麼爲什麼?

由於

+0

看看重定向工作,而不是:'response.sendRedirect是(「/ roleAdd.jsp」);' – CubeJockey

+0

它工作,但我失去了我的屬性,這是我設置的請求對象'RoleAddServlet'的servlet。該屬性比瀏覽器中顯示的錯誤URL更重要。 – ChumboChappati

回答

0

轉發來自一個servlet到服務器上的另一個資源(servlet時,JSP文件或HTML文件)的請求。此方法允許一個servlet對請求和另一個資源進行初步處理以生成響應。新的請求對象不會在請求分派器中創建。如果你想改變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); 
相關問題