Grundlegendes zum MVC-Framework mit serverseitigem Java 3/4 Controller

キャプチャ.PNG

** ↑ Bild dieses Frameworks **

Einführung

Diesmal ist der Berg. Ich denke nicht, dass es mir sehr in den Sinn kommt, aber zuerst ist es das. Geben wir unser Bestes.

Dinge die zu tun sind

Lassen Sie uns eine Website im Rahmen des Themas erstellen Aufschlüsselung aller 4 mal

Annahme

--Eclipse installiert --DB2 installiert (zum 4. Mal erforderlich)

Verfahren

jsp fix

Top.jsp



<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%><!--Zeichencode-Spezifikation-->
<!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">   <!--Deklaration zum Senden von ↓ Informationen nach [Addition] Setzen Sie den Aktionswert auf Controller-->
    <input type="text" name="keyword">   <!--Suchschlüsselwort-Eingabefeld-->
    <input type="hidden" name="beanid" value="practice.Product"><!--[Hinzufügen] Deklarieren Sie die zu verwendende Bohne-->
    <input type="hidden" name="pageto" value="Result.jsp"><!--[Ergänzung] Angabe des Übergangsziels-->
    <input type="submit" value="Search"> <!--Schaltfläche zum Senden von Schlüsselwörtern-->
</form>

</body>
</html>

Modellerstellung (teilweise nachgedruckt)

Product.java


package practice;


public class Product extends SuperBean{
        //Halten Sie Mitgliedsvariablen privat
    private int price;
    private int weight;
    private String name;
    private String material1;
    private String category;

    public void runBean(){//[Ändern] Der Methodenname wurde von setAll geändert.
    	String keyword = (String) super.request.getParameter("keyword");//[Ändern] Den empfangenen Wert ausgeben und prüfen
    	System.out.println("Das Suchwort lautet"+keyword+"war. Ich werde das nächste Mal die Datenbank damit durchsuchen");

    	//Da diesmal keine DB-Verbindung hergestellt wird, legen Sie den direkten Wert für jedes Attribut der Bean fest.
        this.price=1404;
        this.weight=300;
        this.name=""Mein Verschwinden" 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;
    }
}

Erstellen einer SuperBean

Erstellt, um die allgemeine Bean-Verarbeitung in einer übergeordneten Klasse zu organisieren

SuperBean.java


package practice;

import javax.servlet.http.HttpServletRequest;

public abstract class SuperBean {
	protected HttpServletRequest request;//Anfrage halten
	void setJspInfo(HttpServletRequest request){
		this.request = request;
	}
	protected void runBean(){//Bean ausführen

	}

}

Controller erstellen

Seitdem ist der Controller so konzipiert, dass auch beim Hinzufügen von Funktionen (jsp, bean) keine Bearbeitung erforderlich ist. Ich denke, es ist jetzt schwer zu schreiben, aber es ist nützlich, wenn man Funktionen hinzufügt. Erstellen Sie ein Servlet, indem Sie mit der rechten Maustaste auf das Übungspaket → Neu → Servlet klicken

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(Container zum Zurückgeben einer Instanz an die JSP-Seite)Generieren Sie a.
		HttpSession session= request.getSession();

			//Nehmen Sie den Bean-Namen als Variable und instanziieren Sie diese Bean. Auf diese Weise können Sie Methoden wie Getter verwenden. Hier wird die Produktklasse instanziiert.
			//Zeichencode-Spezifikation
			request.setCharacterEncoding("UTF-8");
			String beanid = (String)request.getParameter("beanid");
			String pageto = (String)request.getParameter("pageto");
			try {
				SuperBean bean = (SuperBean) Class.forName(beanid).newInstance();


			//Übergeben Sie die von jsp empfangenen Informationen an die Bean
			bean.setJspInfo(request);

			//Bean ausführen
			bean.runBean();

			//Speichern Sie Bohnen in der Sitzung
			session.setAttribute("bean", bean);

			//Überleitung
			RequestDispatcher rd =request.getRequestDispatcher(pageto);
			rd.forward(request, response);
			} catch (InstantiationException e) {
				//TODO automatisch generierter Fangblock
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				//TODO automatisch generierter Fangblock
				e.printStackTrace();
			} catch (ClassNotFoundException e) {
				//TODO automatisch generierter Fangblock
				e.printStackTrace();
			}



	}

}


Erstellen einer Ergebnisausgabeseite

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>
Produktname:<%=bean.getName() %><br>
Preis:\&nbsp;<%=bean.getPrice() %><br>
Gewicht:<%=bean.getWeight() %><br>
Produktkategorie:<%=bean.getCategory() %><br>
</body>
</html>

Damit ist MVC ohne die DB-Verbindung abgeschlossen. Der Inhalt dieser Zeit war viel schwieriger als zuvor. Danke für deine harte Arbeit. Ich denke, ich werde auf Fehler stoßen, also warte ich auf Ihre Frage.

Recommended Posts

Grundlegendes zum MVC-Framework mit serverseitigem Java 3/4 Controller
Grundlegendes zum MVC-Framework mit serverseitiger Java 1/4 View
Grundlegendes zum MVC-Framework mit dem serverseitigen Java 2/4 -Modell
Beginnen Sie mit serverlosem Java mit dem leichtgewichtigen Framework Micronaut!
Java-Konfiguration mit Spring MVC
[Java] [Play Framework] Bis das Projekt mit Gradle gestartet wird
Überlegungen zum Java Persistence Framework 2017 (1)
Ich habe das Java-Framework "Quarkus" ausprobiert.
Folgen Sie dem Link mit Selen (Java)
Testen Sie den Spring Framework Controller mit Junit
Erraten Sie das Java Persistence Framework 2017 (3) Reladomo
Java-Framework
Konsoleneingabe in Java (Verständnis des Mechanismus)
Versuchen Sie es mit der Wii-Fernbedienung in Java
[Java] Ermitteln Sie das Datum mit der LocalDateTime-Klasse
Seien Sie vorsichtig mit Anfragen und Antworten, wenn Sie das Serverless Framework mit Java verwenden
Testen Sie den Controller mit Mock MVC im Spring Boot
[LeJOS] Lassen Sie uns den EV3-Motor mit Java steuern
Was ist das Java Servlet / JSP MVC-Modell?
[Java] Stellen Sie die Zeit im Browser mit jsoup ein
Verwendung des Java-Frameworks mit AWS Lambda! ??
Berechnen Sie die Ähnlichkeitsbewertung von Zeichenketten mit JAVA
Finden Sie die Fibonacci-Nummer mit dem Fork / Join Framework
Java beginnend mit JShell-A Einblick in die Java-Welt
Java Framework Vergleich
[Java] Sammlungsframework
Verfolgen Sie die mit dem Java-Agenten Insights der Anwendung ausgeführte SQL
[wip] Komfortable und kostenlose serverseitige Entwicklung mit dem Server
[Tutorial] Eclipse herunterladen → Anwendung mit Java ausführen (Plejaden)
CI die Architektur von Java / Kotlin-Anwendungen mit ArchUnit
Begrenzen Sie Dateien, die mit dem Befehl Rails g Controller erstellt wurden
So stellen Sie Java mit Serverless Framework für AWS Lambda bereit
Überwachen Sie den internen Status von Java-Programmen mit Kubernetes
Überprüfen Sie das Verhalten von Java Intrinsic Locks mit bpftrace
[Java] Holen Sie sich das Datum 10 Tage später mit der Calendar-Klasse
[Java] Beim Schreiben der Quelle ... Memorandum ①
HTTPS-Verbindung mit Java zum selbstsignierten Zertifikatsserver
[LeJOS] Lassen Sie uns den EV3-Motor mit Java fernsteuern
Bereiten Sie die Umgebung für Java11 und JavaFx mit Ubuntu 18.4 vor
[Rails] Stellen Sie denselben Code mit Controller-Aktionen zusammen
Eine Übersicht über das native Java-Framework Quarkus von Kubernetes
Die Geschichte von dto, dao-like mit Java, SQLite
Java-Desktop mit demselben Frontend wie das WEB.
Ersetzen Sie nur einen Teil des URL-Hosts durch Java