当前位置: 首页 > 知识库问答 >
问题:

Servlet无法获得输入

查锦程
2023-03-14

我试图创建一个程序,在这个程序中我可以接受输入,并用servlet获得一个数字的平方根。我是初学者,所以知道的不多。问题是当我尝试我的代码时,它不起作用。代码如下:

myservletdemo.java

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.lang.Math;

public class MyServletDemo extends HttpServlet {

     public void init() throws ServletException {
    }
   protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   }
   public void doGet(HttpServletRequest request, 
      HttpServletResponse response)
      throws ServletException, IOException 
   {


      response.setContentType("text/html");
      String num2 = request.getParameter("num");
      int num3 = Integer.parseInt(num2); //This is where the error
      int numSqrt = Math.sqrt(num3);
      PrintWriter out = response.getWriter();
      out.println("<p> The sqrt is "+numSqrt+"</p>");
   }

}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Get sqrt of num</title>
</head>
<body>


    <p>Num to find sqrt of: </p> <input type="text" name="num"/>


    <a href="welcome">Click to call Servlet</a>


</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>Find-the-sqrt-of-num</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>

<servlet>
<servlet-name>MyHttpServletDemo</servlet-name>
<servlet-class>MyServletDemo</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>MyHttpServletDemo</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>

</web-app>

结果是:首先,当你点击链接时,你会得到:

这个结果

共有1个答案

强化
2023-03-14

由于request.getparameter(“num”)为null,您将获得null错误。在您的jsp页面中,您从未向servlet发送任何值,即:通过编写单击调用servlet,这将带您访问servlet,但不会随它一起发送任何参数。相反,请如下所示:

 <form method="get" action="Yourservletpage">
   <p>Num to find sqrt of: </p> <input type="text" name="num"/>
   <input type="submit" name="submit" value="submit" />
 </form>
 类似资料:
  • 我试图创建一个简单的登录屏幕,它有一个电子邮件字段、一个密码字段和一个登录按钮(这三个字段都包含在 中)。当用户提交表单时,客户机执行AJAX POST(异步,这样用户就不必“忍受”页面重新加载!)到servlet。目前,servlet只执行一个虚拟检查,如果用户成功登录,返回“1”,如果电子邮件/密码错误,返回“0”。然后客户机处理响应(同样,响应将是0或1)。 事情是这样的:当我提交表单时,s

  • 我正在从终端运行我的Java程序,我试图使用我的代码中的linux命令来计算某个目录中的文件数量;我已经设法获得了除此之外的所有其他命令的输出。 我的命令是: 当我在代码中运行命令时,它似乎没有任何输出,但当我在终端中运行相同的命令时,它工作正常,并实际输出该目录中的xml文件数。 这是我的代码: 更新代码,带输出 输出:

  • 问题内容: 我是Protractor的新手。尽管缺少文档,但我仍然了解基本原理,但找不到解决此问题的方法。 给出以下代码: 我可以看到输入获取了要插入的文本,并且模型以相同的值更新,但是测试失败,原因是description.getText()返回’‘(空字符串)。 有没有其他方法可以在输入中捕获值? 提前致谢。 问题答案: 显然,Selenium WebDriver有一个怪癖。看这里 尝试: 注

  • 问题内容: 请帮助我得到一个where 本身就是一个泛型类型。如我现在所见,Spring RestTemplate现在不支持此功能。我正在使用Spring MVC版本3.1.2 这是我要使用的代码:代码: 我收到此错误: 这是明显的错误,但是今天如何解决呢? 比我想得到我的通用响应类型: 现在,我使用此解决方案,并且不使用: 问题答案: 通过引入修复了该问题,你可以显式继承该参数化类型,以便在运行

  • 在尝试执行GET到发布者存储库时,我正在执行GET和无限循环。 出版商: 书: 完整代码可在此处获得: https://github.com/vanyasav/library

  • 我正在制作一个基本计时器,这是我的第一个项目之一,当你按下一个按钮时,代码应该创建3个不同的变量,从它们各自的输入中获取值,这3个变量代表小时、分钟和秒。 发生的事情是,如果你安慰。记录由于某种原因未定义的这3个变量中的任何一个,如果没有这些值,整个倒计时将无法工作。 输入被设置为在html中的value=0开始,所以它应该至少返回0,而不是未定义 下面是javascript代码: 我看到了其他解