我在JSP以下頁面:JSP的request.getParameter
<%String a= request.getParameter("Test");
System.out.println(a);%>
<form >
<input type="text" name="Test" value= "Whatever" >
</form>
如果我開始,它讓我在consule 「零」,爲什麼? 對不起,這個非常基本的問題!
我在JSP以下頁面:JSP的request.getParameter
<%String a= request.getParameter("Test");
System.out.println(a);%>
<form >
<input type="text" name="Test" value= "Whatever" >
</form>
如果我開始,它讓我在consule 「零」,爲什麼? 對不起,這個非常基本的問題!
我認爲你應該做如下代碼:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%String a= request.getParameter("Test");
System.out.println(a);%>
<form action="#">
<input type="text" name="Test" value= "Whatever" >
<input type="submit" value="submit">
</form>
</body>
</html>
當你點擊提交控制檯將打印Whatever.But當你第一次訪問該頁面時,控制檯打印爲空
謝謝你,工作。 – user7535663
不用客氣 – lpgad
你需要有這樣的代碼分佈在兩個不同的JSP:
第一個JSP:
<form >
<input type="text" name="Test" value= "Whatever" >
</form>
然後,你需要從你的瀏覽器提交此表。在你的servlet的doPost處理器,你需要派遣第二JSP將有以下代碼:
<%String a= request.getParameter("Test");
System.out.println(a);%>
更新:
由於老鄉評論家之一譜寫,你可以總是使用相同的JSP表單提交之前和之後。在這種情況下,第一個將仍然打印爲空,而第二個將打印所需的輸出。關鍵是必須提交表單才能自動將表單參數填充到請求上下文。
提交後,他可以輕鬆地轉發回同一個JSP。 –
@AlanHay。絕對。但是第一個JSP編譯仍然會打印null。一旦他提交了第一個,第二個編譯就會看到請求參數「測試」。關鍵是必須提交表格。 – VHS
如果我開始,它顯示我在consule「null」爲什麼?
其他人都回答,如何做正確的事情。讓我告訴,爲什麼它正在做它正在做的事情。因爲請求中沒有任何內容,並且所有內容都只是簡單的GET請求,所以不做任何解析,並返回null
作爲響應。
你或許可以嘗試調用此頁面爲:
http://whatever.com:PORT_IF_ANY/CONTEXT?Test=Whatever
然後,您將看到您的頁面打印Whatever
,而不是空。因此,長話短說,由於您的請求沒有名爲Test
的參數,因此它的計算結果爲null
並且您打印該null
。
你提交表格嗎? –
是的形式與「無論」顯示 – user7535663
太棒了!但是你提交了表格嗎?您當前的網址中是否有請求參數?因爲如果你提交了表格,應該有。你的表單沒有提交按鈕,但我猜測沒有。添加'?Test = something'並點擊輸入... –