簡體   English   中英

JSP request.getParameter

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM