Fondamentalement, il suit le programme de calcul de l'IMC ** du chapitre 7 de l'introduction à Servlet & jsp qui peut être clairement compris.
élément | rôle | Fichier |
---|---|---|
Model | Effectue le traitement principal de l'application et le stockage des données | Classe générale |
View | Afficher l'écran à l'utilisateur | Fichier JSP |
Controller | Reçoit une demande de l'utilisateur, demande au modèle d'exécuter le processus et demande à la vue d'afficher le résultat. | Classe de servlet |
javaBeams L'un des domaines où les instances peuvent être stockées. Il existe les règles suivantes.
Je mettrai un commentaire pour chaque code à tout moment.
Model Effectue le traitement principal de l'application et le stockage des données Enregistré dans le package modèle.
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;
}
}
Ce code est ce qu'on appelle les JavaBeans.
HealthCheckLogic.java
package model;
public class HealthCheckLogic {
public void execute(Health health) {
//Calculer et définir l'IMC
double weight = health.getWeight();
double height = health.getHeight();
double bmi = weight / (height / 100.0 * height / 100.0);
health.setBmi(bmi);
//Défini en jugeant le physique à partir de l'indice IMC
String bodyType;
if (bmi < 18.5) {
bodyType = "Type maigre";
} else if (bmi < 25) {
bodyType = "d'habitude";
} else {
bodyType = "obésité";
}
health.setBodyType(bodyType);
}
}
Rien à écrire en particulier.
Controller Il reçoit une demande de l'utilisateur, demande au modèle d'exécuter le processus et demande à la vue d'afficher le résultat. Enregistré dans le package de servlet.
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 {
//vers l'avant
RequestDispatcher dispatcher =
request.getRequestDispatcher
("/WEB-INF/jsp/healthCheck.jsp");
dispatcher.forward(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
//Obtenir les paramètres de la demande
String weight = request.getParameter("weight"); //la taille
String height = request.getParameter("height"); //poids
//Définir la valeur d'entrée sur la propriété
Health health = new Health();
health.setHeight(Double.parseDouble(height));
health.setWeight(Double.parseDouble(weight));
//Effectuer une vérification de l'état et définir les résultats
HealthCheckLogic healthCheckLogic = new HealthCheckLogic();
healthCheckLogic.execute(health);
//Enregistrer pour demander l'étendue
request.setAttribute("health", health);
//vers l'avant
RequestDispatcher dispatcher =
request.getRequestDispatcher
("/WEB-INF/jsp/healthCheckResult.jsp");
dispatcher.forward(request, response);
}
}
Décrit dans @WebServlet (" / HealthCheck ")
.
serialVersionUID
private static final long serialVersionUID = 1L;
se sent comme une sorte de magie, mais c'est différent.
Obligatoire en cas de sérialisation, c'est-à-dire lors de l'importation de java.io.Serializable.
Utilisé comme contrôle de version pour la classe Serializable.
La portée générée pour chaque demande. Il devient possible de partager une instance entre la destination de transfert et la source de transfert.
request.setAttribute("Nom d'attribut",exemple)
Spécifiez le nom de gestion de l'instance à enregistrer dans l'étendue dans ** Nom d'attribut **. Spécifiez l'instance à enregistrer dans ** instance **
Lors de l'acquisition d'une instance à partir de l'étendue de la requête, décrivez comme suit. Cette fois, healthCheckResult.jsp est utilisé pour ce processus.
Saisissez le nom de l'instance à obtenir= (Type d'instance à obtenir)request.getAttribute("Nom d'attribut")
Notez qu'une distribution est requise
En utilisant forward, il est possible de déplacer le traitement vers une autre classe de servlet ou un autre fichier JSP.
RequestDispatcher dispatcher =
request.getRequestDispatcher
("Destination de transfert");
dispatcher.forward(request, response);
Comment spécifier la destination de transfert Fichier JSP → / Chemin depuis WebContent Classe de servlet → / modèle d'URL
View Affichez l'écran à l'utilisateur. Ici, enregistrez dans / 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>Vérification de l'état rafraîchissante</title>
</head>
<body>
<h1>Vérification de l'état rafraîchissante</h1>
<form action="/example/HealthCheck" method="post">
la taille:<input type="text" name="height">(cm)<br>
poids:<input type="text" name="weight">(kg)<br>
<input type="submit" value="Diagnostic">
</form>
</body>
</html>
Ligne 10 `<form action =" / exemple / HealthCheck "method =" post "> ʻL'attribut action est spécifié comme suit. Pour la classe de servlet → / nom de l'application / modèle d'URL Pour les fichiers JSP → / Nom de l'application / Chemin de WebContent
healthCheckResult.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="model.Health" %>
<%
//Obtenir la santé stockée dans la portée de la demande
Health health = (Health) request.getAttribute("health");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vérification de l'état rafraîchissante</title>
</head>
<body>
<h1>Actualisation des résultats de la vérification de l'état</h1>
<p>
la taille:<%= health.getHeight() %><br>
poids:<%= health.getWeight() %><br>
BMI:<%= health.getBmi() %><br>
Physique:<%= health.getBodyType() %>
</p>
<a href="/example/HealthCheck">Revenir</a>
</body>
</html>
La deuxième ligne, <% @ page import =" model.Health "%>
, appelle Health.class dans le package de modèle.
Ce code peut être un excellent moyen de comprendre comment utiliser javaBeans.
Veuillez vous référer à ** Introduction à Servlet & JSP qui est rafraîchissante ** (écrite par Daigo Kunimoto). Le droit d'auteur du code source de cet article appartient à Flarelink Co., Ltd. J'utilise Creative Commons BY-SA 4.0 en conséquence.
Recommended Posts