Certaines personnes peuvent penser que Struts n'est pas facile à apprendre. Il semble que certains concepts confondent les personnes qui n'y ont jamais été exposées, les modèles MVC1, MVC2... J'ai écrit cet article pour permettre aux personnes qui n'y ont jamais été exposées. Struts a une introduction simple. Bien sûr, des conseils sont nécessaires pour étudier systématiquement Struts. Il contient beaucoup de choses fascinantes, mais c'est une histoire pour un autre jour.
Ce cas inclut la page d'accueil, la connexion de l'utilisateur et les pages de l'assistant de site Web. C'est aussi simple que cela. Il n'y a pas de concept profond de Struts. Cela repose principalement sur une expérience pratique et une compréhension avec cœur.
Le serveur WEB utilise tomcat4. Accédez à http://jakarta.apache.org pour télécharger struts1.1, publiez le fichier zip dans c:struts, copiez C:strutswebappsstruts-example.war dans c:tomcat4webapps et démarrez tomcat. Le package war est publié dans le dossier struts-example, supprimez le package war et renommez le dossier struts-example à tester.
1. Remplacez WEB-INFweb.xml par :
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" " http://java.sun.com/j2ee/dtds/web-app_2_2.dtd ">
<web -application>
<!—Il s'agit du contrôleur dans struts. La classe ActionServlet est responsable du transfert de commandes du système. Elle lit les informations de configuration à partir de struts-config.xml et démarre automatiquement un thread en arrière-plan du serveur. S'il n'y a pas d'exigences particulières (telles que l'ajout de fonctions d'édition de langage), les programmeurs peuvent ignorer cette partie et simplement l'utiliser. -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<param-init>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!--Le servlet de ce système peut être mappé sur un fichier avec le suffixe cool, au lieu du commun .jspdo, etc. Le nom du suffixe peut être modifié par n'importe quel nom, bien sûr, le nom doit être sain #◎¥% ! -->
<mappage-servlet>
<servlet-name>action</servlet-name>
<url-pattern>*.cool</url-pattern>
</servlet-mapping>
<!--La page d'accueil par défaut de ce système est index.jsp, il peut y en avoir plusieurs, le système la trouvera dans l'ordre, similaire à IIS-->
<liste-de-fichiers-de-bienvenue>
<fichier-bienvenue>index.jsp</fichier-bienvenue>
</welcome-file-list>
</web-app>
2. Remplacez testWEB-INF struts-config.xml par :
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
" http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd ">
<struts-config>
<!--FormBean est un concept de struts. Il s'agit essentiellement d'un JavaBean. Il est utilisé pour stocker automatiquement les valeurs de chaque champ dans le formulaire de page et remplir les champs du formulaire au moment approprié. à request.getParameter ("fieldName") comme le traditionnel; , souvent utilisé par les actions dans les mappages d'actions -->
<form-beans>
<!—Nous ajouterons une classe UserForm ultérieurement pour stocker les informations utilisateur. -->
<form-bean name="userForm" type="test.UserForm"/>
</form-beans>
<!--Ceci stocke l'adresse de transfert globale qui peut être utilisée par l'ensemble du système, similaire à window.location('index.jsp'); et également similaire à divers boutons du contrôleur de chaîne du téléviseur, couleur. l'ajustement, etc. sont le flux de contrôle des applications Web basées sur Struts. Dans des circonstances normales, une fois qu'une action est traitée, elle sera transmise à une page JSP pour être affichée. C'est aussi le point clé de l'implémentation de MVC dans JSP. -->
<global-avant>
<!--failed.cool sera traité comme une requête de servlet, et le traitement de l'action correspondante sera trouvé dans les mappages d'action. -->
<forward name="failed" path="/failed.cool"/>
<forward name="regist" path="/regist.jsp"/>
</global-forward>
<!--Vous vous souvenez de la requête avec le suffixe cool dans web.xml ? Ils sont traités ici. Ceci est équivalent à la partie modèle des entretoises. La partie modèle est un endroit plus flexible dans les entretoises. -->
<cartographies d'actions>
<!--Pour traiter la requête de register.cools, le FormBean utilisé est userForm, qui est la classe test.UserForm Lorsqu'une erreur se produit pendant le traitement, index.jsp sera renvoyé-->.
<action path="/regist" type="test.RegistAction" name="userForm" scope="request" input="/index.jsp" />
<action path="/overview" forward="/hello.jsp"/>
<action path="/failed" forward="/wuwu.jsp" />
</action-mappings>
</struts-config>
3. Ajoutez un FormBean avec le chemin de classe test.UserForm Voici le contenu de cette classe :
package test ;
importer org.apache.struts.action.ActionForm ;
la classe publique UserForm étend ActionForm
{
private String name="lpw";//Nom d'utilisateur private String ps="1111";//Mot de passe public UserForm(){}
public void setName(String s) {nom=s;}
public String getName() {nom de retour ;}
public void setPs(String s) {ps=s;}
public String getPs() {retour ps;}
}
4. Ajoutez une sous-classe d'Action, le chemin de classe est test RegistAction, voici le contenu de cette classe :
package test ;
importer java.lang.reflect.InvocationTargetException ;
importer java.util.Locale ;
importer javax.servlet.ServletException ;
importer javax.servlet.http.HttpServletRequest ;
importer javax.servlet.http.HttpSession ;
importer javax.servlet.http.HttpServletResponse ;
importer org.apache.struts.action.Action ;
importer org.apache.struts.action.ActionError ;
importer org.apache.struts.action.ActionErrors ;
importer org.apache.struts.action.ActionForm ;
importer org.apache.struts.action.ActionForward ;
importer org.apache.struts.action.ActionMapping ;
importer org.apache.struts.util.MessageResources ;
importer test.UserForm ;
la classe finale publique RegistAction étend l'action
{
exécution publique ActionForward (mappage ActionMapping, formulaire ActionForm, requête HttpServletRequest, réponse HttpServletResponse)
jetteException
{
Locale locale = getLocale(requête);
MessageResources messages = getResources(requête);
Session HttpSession = request.getSession();
UserForm userform = formulaire (UserForm);
//Ici, vous pouvez appeler d'autres classes pour effectuer l'écriture de base de données ou d'autres jugements logiques //Si la valeur du nom du paramètre transmis par UserForm est la valeur lpw par défaut, il sera transmis en échec.
// Ce nom sera recherché pour l'adresse URL mappée dans <global-forwards> de struts-config.xml // (il peut s'agir d'un chemin absolu ou d'un chemin relatif. Pour cet exemple, il va vers failed.cool).
//Souviens-toi? Toutes les requêtes avec le suffixe "cool" vont dans action-mappings pour trouver // le traitement d'action correspondant. Le répertoire final est wuwu.jsp*/.
if( "lpw".equals(userform.getName()) )
return (mapping.findForward("failed"));
autre
return (mapping.findForward("regist"));
}
}
5. Toutes les pages nouvelles ou modifiées suivantes sont équivalentes à la partie View de struts. Remplacez la page d'accueil index.jsp par :
<%@ page contentType="text/html;charset=GBK" language="java" %>.
<%@ page import = "test.*" %>
<a href="overview.cool">Navigation sur le site</a><br>
<form action="regist.cool" method="post">
<!—Le nom du champ du formulaire doit être le même que le paramètre du UserForm, afin que les données puissent être obtenues automatiquement sans utiliser request.getParameter("param");-->
Utilisateur :<input type="text" name="name"><br>
Mot de passe :<input type="password" name="ps"><br>
<input type=submit value="Ajouter un utilisateur">
</form>
6. Ajoutez hello.jsp pour la navigation sur le site :
<h1>plan du site</h1>Ce qui suit est le contenu rempli par le lecteur
7. Ajoutez wuwu.jsp Lorsqu'aucun nouvel utilisateur ne se connecte, il sera redirigé vers celui-ci. Page :
<%@ page contentType="text/html;charset=GBK" language="java" %>
<jsp:useBean id="beanlpw" class="test.UserForm" scope="session"/>
Utilisateurs existants : <%=beanlpw.getName()%><br>
Mot de passe : <%=beanlpw.getPs()%><br>
Aucun nouvel utilisateur n'a été obtenu !
8. Ajoutez register.jsp Lorsqu'un nouvel utilisateur se connecte, il sera redirigé vers cette page :
<%@ page contentType="text/html;charset=GBK" language="java" %>.
<jsp:useBean id="beanlpw" class="test.UserForm" scope="session"/>
Nouveau compte utilisateur : <%=beanlpw.getName()%><br>
Mot de passe : <%=beanlpw.getPs()%>
9. Démarrez Tomcat4, tapez http://localhost:8080/test/index.jsp dans le navigateur, utilisez-le, vous pouvez voir les résultats et comprendre dans un premier temps le M de Les parties struts, V et C fonctionnent ensemble. Bien sûr, c'est la bonne intention de l'auteur. Si les lecteurs sont confus, veuillez signaler l'erreur :)