JSP request.getParameter

时间:2017-02-08 16:34:52

标签: java jsp

我在JSP中有以下页面:

datetimeoffset

如果我开始,它会在消费者面前显示我" null"为什么? 对不起这个非常基本的问题!

3 个答案:

答案 0 :(得分:2)

  

如果我开始,它会在消费者面前显示我" null"为什么呢?

其他人都回答了,如何做正确的事情。让我告诉,为什么它正在做它正在做的事情。因为,请求中没有任何内容,一切都只是简单的GET请求,因此request.getParameter("Test");不会解析任何内容并返回null作为响应。

您可以尝试将此页面调用为:

http://whatever.com:PORT_IF_ANY/CONTEXT?Test=Whatever

然后,您会看到您的页面打印Whatever而不是null。因此,简而言之,由于您的请求没有名为Test的参数,因此评估为null并打印null

答案 1 :(得分:1)

您需要将此代码分布在两个不同的JSP中:

第一个JSP:

<form > 
  <input type="text" name="Test" value= "Whatever" >
</form>

然后您需要从浏览器提交此表单。在servlet的doPost处理程序中,需要调度第二个JSP,它将具有以下代码:

 <%String a= request.getParameter("Test"); 
    System.out.println(a);%>

<强>更新

正如其中一位评论家所述,您可以在表单提交之前和之后始终使用相同的JSP。在这种情况下,第一个仍将打印null,而第二个将打印所需的输出。关键是必须提交表单,以便自动将表单参数填充到请求上下文中。

答案 2 :(得分:1)

我认为你应该遵循以下代码:

 <%@ 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。但是当您第一次访问该页面时,控制台将打印为空