** ↑ Bild dieses Frameworks **
Diesmal ist der Berg. Ich denke nicht, dass es mir sehr in den Sinn kommt, aber zuerst ist es das. Geben wir unser Bestes.
Lassen Sie uns eine Website im Rahmen des Themas erstellen Aufschlüsselung aller 4 mal
--Eclipse installiert --DB2 installiert (zum 4. Mal erforderlich)
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>
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;
}
}
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
}
}
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();
}
}
}
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:\ <%=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