2014-07-24 71 views
0

響應我有一個名爲頁:
functionNamesRegister.jsp
和servlet稱爲
functionNamesRegisterServlet無比的鏈接不會觸發的Servlet沒有從servlet的

functionNamesRegister通過點擊該鏈接訪問:

<li><a href='functionNamesRegister.jsp' class='daddy'>Register FM Function Names</a></li> <br> 

然後在servlet中:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    // TODO Auto-generated method stub 
    request.setAttribute("test", "TEST TEST TEST TEST"); 
    request.getRequestDispatcher("functionNamesRegister.jsp").forward(request, response); 
} 


然後在jsp我想通過這樣做來顯示該測試:${test}
但它不起作用。其他的servlet的工作時,我使用它們,例如像形式:

<form name='myForm' action='componentRegisterServlet' method='post' onSubmit='return validateCrForm()'> 

爲什麼是我做錯了什麼?

+0

嘗試從HTML鏈接中刪除「.jsp」? – GreyBeardedGeek

+0

OMG,真的有效...我以前做過,但我不知道爲什麼它不起作用... 謝謝你親愛的先生 –

+0

你能解釋我爲什麼那樣嗎?我認爲,當我用.jsp來做時,servlet無法執行? –

回答

0

Servlets旨在成爲鏈接的目標,然後根據需要重定向到jsp頁面。

的Servlet URL模式中的配置文件(通常web.xml)中定義的,所以可以大公是這樣的:

  • /functionNamesRegister
  • /functionNamesRegister.do
  • /動作/ functionNamesRegister

如果您直接鏈接到jsp頁面(視圖圖層),您將繞過所有Servlet代碼(控制器層),並且propably jsp頁面沒有足夠的參數來呈現pr正常運行,更不用說缺乏在servlet中執行的所有操作。