[英]JSP request.getParameter
我在JSP中有以下頁面:
<%String a= request.getParameter("Test");
System.out.println(a);%>
<form >
<input type="text" name="Test" value= "Whatever" >
</form>
如果我開始,它在領事上向我顯示“ null”為什么? 很抱歉這個非常基本的問題!
如果我開始,它在領事上向我顯示“ null”為什么?
其他人都回答了,如何做正確的事。 讓我說說為什么它在做什么。 由於請求中沒有任何內容,所有內容都只是普通的GET請求,因此request.getParameter("Test");
不解決任何問題並返回null
。
您可能可以嘗試通過以下方式調用此頁面:
http://whatever.com:PORT_IF_ANY/CONTEXT?Test=Whatever
然后,您將看到頁面打印“ Whatever
而不是null。 因此,長話短說,由於您的請求沒有名為Test
的參數,因此它的評估結果為null
,您可以打印出null
。
您需要將此代碼分發到兩個不同的JSP中:
第一個JSP:
<form >
<input type="text" name="Test" value= "Whatever" >
</form>
然后,您需要通過瀏覽器提交此表單。 在servlet doPost處理程序中,您需要調度第二個JSP,它將具有以下代碼:
<%String a= request.getParameter("Test");
System.out.println(a);%>
更新 :
正如一位審閱者一樣,您可以始終在提交表單之前和之后使用相同的JSP。 在這種情況下,第一個將打印為空,而第二個將打印所需的輸出。 關鍵是必須提交表單,以便表單參數自動填充到請求上下文中。
我認為您應該按照以下代碼進行操作:
<%@ 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>
單擊提交時,控制台將打印“任何內容”。但是,當您第一次訪問該頁面時,控制台將顯示為null
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.