Comprendre le framework MVC avec le contrôleur Java 3/4 côté serveur

キャプチャ.PNG

** ↑ Image de ce framework **

introduction

Cette fois, c'est la montagne. Je ne pense pas que cela me vienne beaucoup à l'esprit, mais au début ça l'est. Faisons de notre mieux.

Choses à faire

Créons un site web en utilisant le cadre du sujet Répartition des 4 fois

supposition

--Eclipse installé --DB2 installé (requis pour la 4ème fois)

procédure

correctif jsp

Top.jsp



<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%><!--Spécification du code de caractère-->
<!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>Top</title>
<h1>top</h1>
</head>
<body>

<form action="/MVC/Controller" method="post">   <!--Déclaration d'envoi d'informations ↓ après [Addition] Définissez la valeur d'action sur Contrôleur-->
    <input type="text" name="keyword">   <!--Champ de saisie du mot clé de recherche-->
    <input type="hidden" name="beanid" value="practice.Product"><!--[Ajouter] Déclarez le bean à utiliser-->
    <input type="hidden" name="pageto" value="Result.jsp"><!--[Addition] Spécification de la destination de la transition-->
    <input type="submit" value="Search"> <!--Bouton d'envoi du mot-clé-->
</form>

</body>
</html>

Création du modèle (partiellement réimprimé)

Product.java


package practice;


public class Product extends SuperBean{
        //Garder les variables membres privées
    private int price;
    private int weight;
    private String name;
    private String material1;
    private String category;

    public void runBean(){//[Change] Le nom de la méthode a été changé de setAll.
    	String keyword = (String) super.request.getParameter("keyword");//[Modifier] Sortir la valeur reçue et vérifier
    	System.out.println("Le mot-clé de recherche est"+keyword+"était. Je chercherai dans la base de données la prochaine fois");

    	//Comme nous ne ferons pas de connexion DB cette fois, définissez la valeur directement sur chaque attribut du bean.
        this.price=1404;
        this.weight=300;
        this.name=""Ma disparition" Fuminori Nakamura";
        this.material1="paper";
        this.category="book";

    }


    public int getPrice() {
        return price;
    }
    public int getWeight() {
        return weight;
    }
    public String getName() {
        return name;
    }
    public String getMaterial1() {
        return material1;
    }
    public String getCategory() {
        return category;
    }
}

Créer un SuperBean

Créé pour organiser le traitement du bean commun dans une classe parent

SuperBean.java


package practice;

import javax.servlet.http.HttpServletRequest;

public abstract class SuperBean {
	protected HttpServletRequest request;//Demande de mise en attente
	void setJspInfo(HttpServletRequest request){
		this.request = request;
	}
	protected void runBean(){//Run bean

	}

}

Créer un contrôleur

Depuis lors, Controller est conçu pour que l'édition ne soit pas nécessaire même lors de l'ajout de fonctions (jsp, beans). Je pense que c'est difficile à écrire maintenant, mais c'est utile lors de l'ajout de fonctionnalités. Créez un servlet en cliquant avec le bouton droit de la souris sur le package d'entraînement → Nouveau → Servlet

Controller.java


package practice;

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 javax.servlet.http.HttpSession;
/**
 * Servlet implementation class Controller
 */
@WebServlet("/Controller")
public class Controller extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor.
     */
    public Controller() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub



		//session(Conteneur pour renvoyer une instance du côté jsp)Générez un fichier.
		HttpSession session= request.getSession();

			//Prenez le nom du bean comme variable et instanciez ce bean. Cela vous permet d'utiliser des méthodes telles que getter. La classe Product est instanciée ici.
			//Spécification du code de caractère
			request.setCharacterEncoding("UTF-8");
			String beanid = (String)request.getParameter("beanid");
			String pageto = (String)request.getParameter("pageto");
			try {
				SuperBean bean = (SuperBean) Class.forName(beanid).newInstance();


			//Transmettre les informations reçues de jsp au bean
			bean.setJspInfo(request);

			//Run bean
			bean.runBean();

			//Stocker les beans en session
			session.setAttribute("bean", bean);

			//transition
			RequestDispatcher rd =request.getRequestDispatcher(pageto);
			rd.forward(request, response);
			} catch (InstantiationException e) {
				//Bloc de capture généré automatiquement TODO
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				//Bloc de capture généré automatiquement TODO
				e.printStackTrace();
			} catch (ClassNotFoundException e) {
				//Bloc de capture généré automatiquement TODO
				e.printStackTrace();
			}



	}

}


Créer une page de sortie de résultat

Result.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="practice.Product"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%request.setCharacterEncoding("UTF-8"); %>
<%Product bean = (Product)session.getAttribute("bean"); %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>

</head>
<body>
Nom du produit:<%=bean.getName() %><br>
prix:\&nbsp;<%=bean.getPrice() %><br>
poids:<%=bean.getWeight() %><br>
Catégorie de produit:<%=bean.getCategory() %><br>
</body>
</html>

Ceci termine MVC en excluant la connexion DB. Le contenu de cette période était beaucoup plus difficile qu'avant. Je vous remercie pour votre travail acharné. Je pense que je vais rencontrer des erreurs, alors j'attends votre question.

Recommended Posts

Comprendre le framework MVC avec le contrôleur Java 3/4 côté serveur
Comprendre le framework MVC avec Java 1/4 View côté serveur
Comprendre le framework MVC avec le modèle Java 2/4 côté serveur
Commencez avec Java sans serveur avec le framework léger Micronaut!
Configuration Java avec Spring MVC
[Java] [Play Framework] Jusqu'à ce que le projet soit démarré avec Gradle
Considération sur le framework de persistance Java 2017 (1)
J'ai essayé le framework Java "Quarkus"
Suivez le lien avec Selenium (Java)
Contrôleur de cadre de test Spring avec Junit
Devinez le cadre de persistance Java 2017 (3) Reladomo
framework java
Entrée de la console en Java (comprendre le mécanisme)
Essayez d'utiliser la télécommande Wii en Java
[Java] Obtenez la date avec la classe LocalDateTime
Soyez prudent avec les demandes et les réponses lors de l'utilisation de Serverless Framework avec Java
Testez le contrôleur avec Mock MVC dans Spring Boot
[LeJOS] Contrôlons le moteur EV3 avec Java
Qu'est-ce que le modèle Java Servlet / JSP MVC?
[Java] Réglez l'heure depuis le navigateur avec jsoup
Comment utiliser le framework Java avec AWS Lambda! ??
Calculer le score de similarité des chaînes de caractères avec JAVA
Trouvez le numéro de Fibonacci avec le Framework Fork / Join
Java commençant par JShell-Un aperçu du monde Java
Comparaison du framework Java
[Java] Cadre de collection
Tracez le SQL exécuté avec l'agent java Application Insights
[wip] Développement confortable et gratuit côté serveur avec le serveur
[Tutoriel] Télécharger Eclipse → Lancer l'application avec Java (Pléiades)
CI l'architecture des applications Java / Kotlin avec ArchUnit
Limiter les fichiers créés avec la commande rails g controller
Comment déployer Java sur AWS Lambda avec Serverless Framework
Surveillez l'état interne des programmes Java avec Kubernetes
Vérifiez le comportement de Java Intrinsic Locks avec bpftrace
[Java] Obtenez la date 10 jours plus tard avec la classe Calendar
[Java] Lors de l'écriture du source ... Mémorandum ①
Connexion HTTPS avec Java au serveur de certificats auto-signé
[LeJOS] Contrôlons à distance le moteur EV3 avec Java
Préparer l'environnement pour java11 et javaFx avec Ubuntu 18.4
[Rails] Assemblez le même code avec les actions du contrôleur
Une vue d'ensemble du framework Java natif de Kubernetes Quarkus
L'histoire de la création de DTO, semblable à Dao avec Java, SQLite
Bureau Java avec le même frontal que le WEB.
Remplacez seulement une partie de l'hôte URL par java