Servlets und html-Formular für den Taschenrechner
Will ich machen, Rechner, die sich grundsätzlich addieren, subtrahieren, multiplizieren und dividieren von zwei zahlen. Für die Erreichung dieses ersten von allen, die ich entworfen habe ein Formular in HTML und fühlen der Wunsch, zu berechnen, die Antwort auf dem server, so habe ich geschrieben, ein code, der auf servlet-aber wenn ich auf den submit-button meines Formulars es wird sich nichts tun.
Hinweis: ich arbeite eclipse, so dass Sie aufgefordert werden, beantworten Sie meine Frage mit Bezug zu eclipse.
Calculator.java:
package mypackage;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Calculator extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try
{
response.setContentType("text/html");
PrintWriter out= response.getWriter();
int a1= Integer.parseInt(request.getParameter("n1"));
int a2= Integer.parseInt(request.getParameter("n2"));
if(request.getParameter("r1")!=null)
{
out.println("<h1>Addition</h1>"+(a1+a2));
}
if(request.getParameter("r2")!=null)
{
out.println("<h1>Substraction</h1>"+(a1-a2));
}
if(request.getParameter("r3")!=null)
{
out.println("<h1>Multiplication</h1>"+(a1*a2));
}if(request.getParameter("r1")!=null)
{
out.println("<h1>Division</h1>"+(a1/a2));
}
}
catch(Exception e)
{
}
}
}
index.html
<!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>Calculator</title>
</head>
<body>
<h1 style="text_align=center">Calculator</h1>
<form method="get" action="/Servlet">
<label>first number:</label>
<input type="text" name="n1" />
<br />
<label>Second number : </label>
<input type="text" name="n2" />
<br />
<div>
<label>
<input type="radio" name="r1" value="add" />addition
<br />
</label>
<input type="radio" name="r2" value="sub" />subtraction
<br />
<input type="radio" name="r3" value="mul" />multiplication
<br />
<input type="radio" name="r4" value="div" />division
<br />
</div>
<input type="button" value="submit" />
</form>
</body>
</html>
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Servlet</display-name>
<servlet>
<servlet-name>Servlet</servlet-name>
<servlet-class>mypackage.Calculator</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet</servlet-name>
<url-pattern>/firstHomePage</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
- Möglicherweise gibt es einige Fehler. Versuchen Sie beim Schreiben von e.printStackTrace(): im inneren catch-block.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie geschrieben url-pattern 'firstHomePage' in web.xml für die servlet-name-Rechner
so, dass das, was Sie schreiben sollte, in form der Aktion, d.h.
(Sie müssen nicht schreiben, /in form-action)
was auch immer Sie schreiben, in form der Aktion überprüft wird, in der url-Muster der alle servlets Zuordnungen wenn eine übereinstimmung gefunden wird der jeweiligen servlet-name und das entsprechende servlet-Klasse wird gesucht. Das ist, wie es funktioniert.
Hoffe, du hast deine Antwort 🙂
UPDATE: schreiben
NICHT BUTTON sonst Ihre form nicht Unterwerfen.
Wenn Sie mit
button
dann müssen Sie einige javascript schreiben.