Grundsätzlich folgt es dem BMI-Berechnungsprogramm ** in Kapitel 7 der Einführung in Servlet & jsp, das klar verständlich ist.
Element | Rolle | Datei |
---|---|---|
Model | Führt die Hauptverarbeitung der Anwendung und Speicherung von Daten durch | Allgemeine Klasse |
View | Zeigen Sie dem Benutzer den Bildschirm an | JSP-Datei |
Controller | Empfängt eine Anforderung vom Benutzer, fordert das Modell auf, den Prozess auszuführen, und fordert die Ansicht auf, das Ergebnis anzuzeigen. | Servlet-Klasse |
javaBeams Einer der Bereiche, in denen Instanzen gespeichert werden können. Es gibt die folgenden Regeln.
Ich werde jederzeit einen Kommentar für jeden Code abgeben.
Model Führt die Hauptverarbeitung der Anwendung und Speicherung von Daten durch Im Modellpaket gespeichert.
Health.java
package model;
import java.io.Serializable;
public class Health implements Serializable {
private double height, weight, bmi;
private String bodyType;
public double getHeight() {
return height;
}
public void setHeight(Double height) {
this.height = height;
}
public double getWeight() {
return weight;
}
public void setWeight(Double weight) {
this.weight = weight;
}
public void setBmi(Double bmi) {
this.bmi = bmi;
}
public double getBmi() {
return this.bmi;
}
public void setBodyType(String bodyType) {
this.bodyType = bodyType;
}
public String getBodyType() {
return this.bodyType;
}
}
Dieser Code ist die sogenannte JavaBeans.
HealthCheckLogic.java
package model;
public class HealthCheckLogic {
public void execute(Health health) {
//BMI berechnen und einstellen
double weight = health.getWeight();
double height = health.getHeight();
double bmi = weight / (height / 100.0 * height / 100.0);
health.setBmi(bmi);
//Wird durch Beurteilen des Körpers anhand des BMI-Index festgelegt
String bodyType;
if (bmi < 18.5) {
bodyType = "Dünner Typ";
} else if (bmi < 25) {
bodyType = "gewöhnlich";
} else {
bodyType = "Fettleibigkeit";
}
health.setBodyType(bodyType);
}
}
Nichts Besonderes zu schreiben.
Controller Es empfängt eine Anforderung vom Benutzer, fordert das Modell auf, den Prozess auszuführen, und fordert die Ansicht auf, das Ergebnis anzuzeigen. Im Servlet-Paket gespeichert.
HealthCheck.java
package servlet;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.Health;
import model.HealthCheckLogic;
@WebServlet("/HealthCheck")
public class HealthCheck extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
//nach vorne
RequestDispatcher dispatcher =
request.getRequestDispatcher
("/WEB-INF/jsp/healthCheck.jsp");
dispatcher.forward(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
//Anforderungsparameter abrufen
String weight = request.getParameter("weight"); //Höhe
String height = request.getParameter("height"); //Körpergewicht
//Setzen Sie den Eingabewert auf Eigenschaft
Health health = new Health();
health.setHeight(Double.parseDouble(height));
health.setWeight(Double.parseDouble(weight));
//Führen Sie eine Integritätsprüfung durch und legen Sie das Ergebnis fest
HealthCheckLogic healthCheckLogic = new HealthCheckLogic();
healthCheckLogic.execute(health);
//Speichern, um den Bereich anzufordern
request.setAttribute("health", health);
//nach vorne
RequestDispatcher dispatcher =
request.getRequestDispatcher
("/WEB-INF/jsp/healthCheckResult.jsp");
dispatcher.forward(request, response);
}
}
Beschrieben in "@WebServlet (" / HealthCheck ")".
serialVersionUID
private static final long serialVersionUID = 1L;
fühlt sich wie eine Art Magie an, ist aber anders.
Erforderlich bei der Serialisierung, dh beim Importieren von java.io.Serializable.
Wird als Versionskontrolle für die Serializable-Klasse verwendet.
Der für jede Anforderung generierte Bereich. Es wird möglich, eine Instanz zwischen dem Weiterleitungsziel und der Weiterleitungsquelle gemeinsam zu nutzen.
request.setAttribute("Attributname",Beispiel)
Geben Sie unter ** Attributname ** den Verwaltungsnamen der Instanz an, die im Bereich gespeichert werden soll. Geben Sie die Instanz an, die in ** Instanz ** gespeichert werden soll
Beschreiben Sie Folgendes, wenn Sie eine Instanz aus dem Anforderungsbereich abrufen. Dieses Mal wird healthCheckResult.jsp für diesen Prozess verwendet.
Geben Sie den Namen der abzurufenden Instanz ein= (Art der zu erhaltenden Instanz)request.getAttribute("Attributname")
Beachten Sie, dass eine Besetzung erforderlich ist
Mit Forward ist es möglich, die Verarbeitung in eine andere Servlet-Klasse oder JSP-Datei zu verschieben.
RequestDispatcher dispatcher =
request.getRequestDispatcher
("Ziel weiterleiten");
dispatcher.forward(request, response);
So legen Sie das Weiterleitungsziel fest JSP-Datei → / Pfad von WebContent Servlet-Klasse → / URL-Muster
View Zeigen Sie dem Benutzer den Bildschirm an. Speichern Sie hier in / WebContent / Web-INF / jsp.
healthCheck.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Erfrischender Gesundheitscheck</title>
</head>
<body>
<h1>Erfrischender Gesundheitscheck</h1>
<form action="/example/HealthCheck" method="post">
Höhe:<input type="text" name="height">(cm)<br>
Körpergewicht:<input type="text" name="weight">(kg)<br>
<input type="submit" value="Diagnose">
</form>
</body>
</html>
Zeile 10 <form action =" / example / HealthCheck "method =" post ">
Das Aktionsattribut wird wie folgt angegeben.
Für Servlet-Klasse → / Anwendungsname / URL-Muster
Für JSP-Dateien → / Anwendungsname / Pfad von WebContent
healthCheckResult.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="model.Health" %>
<%
//Gesundheit im Anforderungsbereich speichern
Health health = (Health) request.getAttribute("health");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Erfrischender Gesundheitscheck</title>
</head>
<body>
<h1>Aktualisieren der Ergebnisse der Gesundheitsprüfung</h1>
<p>
Höhe:<%= health.getHeight() %><br>
Körpergewicht:<%= health.getWeight() %><br>
BMI:<%= health.getBmi() %><br>
Körperbau:<%= health.getBodyType() %>
</p>
<a href="/example/HealthCheck">Rückkehr</a>
</body>
</html>
In der zweiten Zeile "<% @ page import =" model.Health "%>" wird Health.class im Modellpaket aufgerufen. Dieser Code kann eine gute Möglichkeit sein, die Verwendung von JavaBeans zu verstehen.
Weitere Informationen finden Sie unter ** Einführung in Servlet & JSP, die aktualisiert wird ** (geschrieben von Daigo Kunimoto). Das Copyright des Quellcodes dieses Artikels liegt bei Flarelink Co., Ltd. Ich verwende Creative Commons BY-SA 4.0 entsprechend.
Recommended Posts