** ↑ Image de ce framework **
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.
Créons un site web en utilisant le cadre du sujet Répartition des 4 fois
--Eclipse installé --DB2 installé (requis pour la 4ème fois)
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>
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éé 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
}
}
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();
}
}
}
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:\ <%=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