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

标签 java jsp servlets

我的请求遇到问题。它总是返回“null”,但我不知道为什么。我希望它返回一个名称。

这是我的 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 );
}

}

这是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>

这是 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>

我必须以某种方式将其添加到index.xml 中吗?我知道如果参数不存在,参数将返回 null,但我不知道如何修复它:)

最佳答案

我相信您正在遵循教程。正如 Elliott 在他的评论中所说,您需要在 View 中有一个名为“navn”的参数才能从您的servlet 中捕获它,否则您将得到一个空值。否则应该有一个名为“navn”的查询字符串。在这里,我在客户端看不到任何名为“navn”的参数。

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

根据你的代码: 索引.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

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

或者您可以传递查询字符串,如下所示

传递请求参数的第二种方式: 索引.html Click here

关于java - 为什么我的 servlet request.getParameter 返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35589556/

相关文章:

java - 隐式集合的 XStream 问题

java - 文件对话框中可接受的扩展名

java - 从java上的查询字符串中获取带有字符 '#'的参数

servlets - request.getAttribute() 无法获取 HTTP 请求参数

java - 安全约束 <url-pattern> 行为异常 - websphere

java - PathVariable 在招摇的 SpringFox(3.0.0) 中是可选的

java - 如何在 Lucene 4 中获取 Lucene 字段的所有条款

java - 无法从 Mule 接收到 HTTP 响应

java - 配置其他库以在 JSP (Tomcat) 中使用

java - 如何重定向到成功页面?