繁体   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