2 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
同樣很久沒(méi)看過(guò)原生的Servlet了……
Q:@WebServlet還需要其它設(shè)置嗎,如果這樣我這邊會(huì)出錯(cuò),所以一直都是配置的web.xml,麻煩不少
A:@WebServlet
是Servlet 3.0的注解,需要相應(yīng)的tomcat版本支持。你說(shuō)的@WebServlet
報(bào)錯(cuò),具體是報(bào)了什么錯(cuò)呢?感覺(jué)你這里寫(xiě)的@WebServlet
是有問(wèn)題的,可以看一下這里;
Q:http://localhost/feedmo/do 提示404
A:報(bào)404是因?yàn)槟愦a里實(shí)現(xiàn)了請(qǐng)求轉(zhuǎn)發(fā),而你看一下getRequestDispatcher
參數(shù)里的形參名稱就知道,這里應(yīng)該傳入一個(gè)url
字符串,而不是servlet
的名稱,你這里的代碼實(shí)現(xiàn)相當(dāng)于當(dāng)輸入http://localhost/feedmo/do
時(shí),后端將請(qǐng)求轉(zhuǎn)發(fā)至http://localhost/feedmo/do/HelloView
,所以報(bào)404;
Q:http://localhost/feedmo/it 頁(yè)面就單單顯示了null
A:你的GET請(qǐng)求沒(méi)有帶上url參數(shù)和屬性,所以HelloView#doGet
里的user
是null
,而這一句String message = (String)request.getAttribute("message");
感覺(jué)應(yīng)該會(huì)拋出NPE異常,因?yàn)?code>request.getAttribute("message")應(yīng)該為null
,對(duì)null
進(jìn)行強(qiáng)制轉(zhuǎn)型會(huì)觸發(fā)NPE異常。假設(shè)沒(méi)有觸發(fā)NPE異常,message
為null
,則把user
和message
填充至html模板里,就會(huì)變成以下代碼:
<html>
<head>
<meta http-equiv='Content-Type'
content='text/html; charset=UTF-8'>
<title>null</title>
</head>
<body>
<h1>null</h1>
</body>
</html>
所以,頁(yè)面上的輸出應(yīng)該就是一個(gè)大寫(xiě)的
null
而且瀏覽器的標(biāo)簽頁(yè)標(biāo)題也是顯示null。
添加回答
舉報(bào)