简体   繁体   English

为什么我的servlet request.getParameter返回null?

[英]Why does my servlet request.getParameter return null?

I'm having a problem with the request. 我的要求有问题。 It always returns "null", but I don't know why. 它总是返回“ null”,但我不知道为什么。 I want it to return a name. 我要它返回一个名字。

This is my servlet: 这是我的servlet:

public class MinServlet extends HttpServlet {


public void doGet(HttpServletRequest request, 
                  HttpServletResponse response) throws IOException
{
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head><title>Syvtabellen - fra en servlet</title></head>");
    out.println("<body>");
    out.println("<p>Her er syv-tabellen:<br>");

    for (int i=1; i<=10; i++)
    {
        out.println("Syv gange "+ i +" er: "+ 7*i +".<br>");
    } 
    out.println("</body>");
    out.println("</html>");
    String parameterværdi = request.getParameter("navn");
    out.print( "Værdien af parameteren 'navn' er: <br>" + parameterværdi );
}

}

This is the index.xml: 这是index.xml:

<html>
<head>
    <title>TODO supply a title</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
    <div>TODO write content</div>
</body>

This is the web.xml: 这是web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<servlet>
    <servlet-name>MinServlet</servlet-name>
    <servlet-class>konti.MinServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>MinServlet</servlet-name>
    <url-pattern>/MinServlet</url-pattern>
</servlet-mapping>
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>

Do I've to add it in the index.xml somehow? 我是否必须以某种方式将其添加到index.xml中? I know that the parameter returns null if the parameter doesn't exist, but I don't know how to fix it :) 我知道如果该参数不存在,则该参数返回null,但是我不知道如何解决它:)

I believe you are following a tutorial. 我相信您正在学习教程。 As Elliott said in his comment you need to have a parameter called "navn" in you view to catch it from your servelet otherwise you will get a null. 正如Elliott在他的评论中所说,您需要在视图中有一个名为“ navn”的参数,以便从您的servelet中捕获它,否则您将得到一个null。 Or else there should be a query string called "navn". 否则,应该有一个名为“ navn”的查询字符串。 Here I can't see any parameter called "navn" in your client side. 在这里,您的客户端看不到任何名为“ navn”的参数。

For example: http://www.java4s.com/java-servlet-tutorials/example-of-request-getparameter-retrieve-parameters-from-html-form/ 例如: http : //www.java4s.com/java-servlet-tutorials/example-of-request-getparameter-retrieve-parameters-from-html-form/

According to your code: index.html 根据您的代码:index.html

<font face="verdana" size="2px">
       <form action="getVal" method="post">
           First way to pass request Param <input type="text" name="navn"><br>
           <input type="submit" value="Submit">
      </form>
</font>

TestApp.java TestApp.java

public class TestApp extends HttpServlet  
{
    protected void doPost(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
    {
        PrintWriter pw=res.getWriter();
        res.setContentType("text/html");

        String n1=req.getParameter("navn");
        pw.println("Requested  Value" +n1);
        pw.close();

    }

}

web.xml web.xml

<web-app>

    <servlet>
       <servlet-name>sumOfTwoNumbers</servlet-name>
       <servlet-class>java4s.OngetParameter</servlet-class>
    </servlet>

    <servlet-mapping>
       <servlet-name>TestApp</servlet-name>
       <url-pattern>/getVal</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
       <welcome-file>index.html</welcome-file>
    </welcome-file-list>

</web-app>

Or else you can pass query string as following 否则您可以按以下方式传递查询字符串

Second way to pass Request param: index.html Click here 传递请求参数的第二种方法:index.html 单击此处

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM