我在這裏有一個奇怪的問題,我真的被卡住了,需要得到這個工作很糟糕。我們可以以某種方式改變地址欄中的url後,從servlet調度請求到jsp
所以我有一個頁面說index.jsp與鏈接說「a href = servlet?id = 10」。當我點擊這個鏈接時,它會轉到我的servlet上的doGet(),這裏是我的servlet中的代碼。
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的情況下,我使用../在results.jsp中訪問's'文件夾外部的資源,如圖像和腳本。
由於url不會更改爲s/results.jsp,我無法使用'../' 訪問資源,並且當我使用jsp分頁時,當我單擊下一步時,URL將更改爲s /結果.JSP 在那種情況下,我能夠用我的腦海../
一個解決方案是將所有資源複製s中的文件夾來訪問資源,但這樣會增加 冗餘。
在我的腦海裏一個其他的解決辦法是爲兩個JSP的 創建兩個不同的servlet,但我不知道放在哪裏的servlet,使其能跨越文件夾的訪問外部資源與../
是他們的任何其他好辦法我可以做任務..
我試圖找到關於這方面的信息,但一直沒能弄明白。
任何幫助將非常感激。
CVC-複雜type.2.4.d嘗試:無效的含量被發現開始元素'網址模式'。目前沒有子元素 。 日食表示當我在web.xml/S /結果 URL模式> –
2011-06-09 21:41:48
嗯,你把它放在'的 /結果 URL模式>此錯誤 - 通常的方式?你不應該把它放在隨機的地方。它是爲了替換你的舊''/servlet url-pattern>'。 –
BalusC
2011-06-09 21:46:02
明白了! 謝謝 – 2011-06-09 21:59:55