Je n'ai pas écrit de blog depuis longtemps. Je suis peut-être trop paresseux et ne veut pas passer mon temps dessus. Mais je connais toujours l'importance d'écrire un blog dans mon cœur. Donc, à partir d'aujourd'hui, je partagerai avec vous quelques petits exemples que j'ai appris Java Web. Personnellement, je n'aime pas les concepts obscurs dans les livres, donc j'ai passé plus de temps sur certains exemples d'application. Je pense que cette méthode d'apprentissage est très adaptée pour moi, du simple à traditionnel, de peu profond à profond
Parlons de bêtises, commençons notre premier exemple:
Servlet implémente Oracle Basic Addition, Suppression, modification et recherche
Environnement de développement: JDK7 + MyEclipse10 + Tomcat7.0 + Oracle 11G
Tout d'abord, joignez le script de création de la base de données:
Créer une table Student (ID VARCHAR2 (50) Clé primaire non nul, nom Varchar2 (50) pas nul, CALSSGRENT VARCHAR2 (50) PAS NULL, Résultat Varchar (12) Non NULL); Insérer dans l'élève (id, nom, CalsSgrent, Result) Valeurs (Perseq.Nextval, «Zhang San», «33», «98»)
La figure suivante montre le diagramme de structure de code et l'interface de démonstration de fonction qui ne se fait pas mal pour implémenter les fonctions:
Mmc_01.java
Page // L'interface principale fournit des méthodes pour ajouter, modifier et supprimer
package org.lsy.servlet; Importer java.io.ioException; import java.io.printwriter; import java.sql.connection; Importer Java.Sql.DiverManager; import java.sql.resultSet; import java.sql.statement; Importer javax.servlet.servletException; import javax.servlet.http.httpservlet; Importer javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; import oracle.jdbc.oracore.tdspatch; Classe publique MMC_01 étend HttpServlet {// Le pilote est dans le package JAR du pilote JDBC configuré dans le ClassPath avant // L'adresse de connexion est fournie séparément par chaque fabricant de base de données, vous devez donc vous souvenir séparément de la chaîne finale statique DBURL = "JDBC: Oracle: Thin: @LocalHost: 1521: liusy"; // Le nom d'utilisateur pour se connecter à la chaîne finale statique de la base de données publique Dbuser = "Scott"; // Le mot de passe pour se connecter à la base de données statique publique final statique dbpass = "tiger"; public void doGet (demande httpservletRequest, réponse httpservletResponse) lève ServletException, ioException {// Définir le codage de la demande et de la réponse, sinon le code brouillé apparaîtra facilement sur la page request.SetcharAtterencoding ("UTF-8"); Response.SetcharAtterencoding ("UTF-8"); Response.SetContentType ("Text / HTML; UTF-8"); // stream de sortie printwriter out = réponse.getWriter (); // Code de connexion de la base de données essayez {connexion conn = null; // objet indiquant la connexion à l'instruction de base de données stmt = null; // indique le fonctionnement de mise à jour de la chaîne de base de données sql = "INSERT INTO Student (id, nom, CalSSGrent, Result) Values ('67 ',' liu 12yu ',' 33 ',' 98 ')"; System.out.println (SQL); // 1. Utilisez la classe de classe pour charger le pilote class.forname ("oracle.jdbc.driver.oracledriver"); // 2. Connectez-vous à la base de données Conn = driverManager.getConnection (dburl, dbuser, dbpass); // 3. L'interface de l'instruction doit être instanciée via l'interface de connexion stmt = conn.creataStation (); // Utilisez RS pour obtenir les résultats de la requête. Il est préférable de ne pas utiliser * pour les instructions SQL ici * J'ai moins de champs, donc je veux juste être paresseux, -, - resultSet rs = stmt.Executequery ("SELECT * FROM Student"); out.println ("<! doctype html public /" - // w3c // dtd html 4.01 transitional // en / ">"); out.println ("<adread> <itle> un servlet </Title> </A-head>"); out.println ("<porce>"); // Tableau de sortie En-tête OUT.print ("<Table Align = 'Center' Border = '1'> <TR> <TD> Name" + "</td> <Td> Class </td> <Td> Score </td> <td> Modify </td> <Td> Delete </td> </tr>"); while (rs.next ()) {// get id dans la chaîne de base de données id = rs.getString ("id"); // Sortie d'une colonne d'éléments out.print ("<tr> <td>" + rs.getString ("name") + "</td> <td>" + rs.getString ("CalSSGrent") + "" + "</td> <td>" + rs.getString ("Result") + "</td>" + "<Td> <A href = 'updatePage? id = "+ id +"'> modifier </a> </td> "+" <td> <a href = 'delete? id = "+ id +"'> delete </a> </td> </tr> "); } out.println ("<td> <a href = addPage> Ajouter des données </a> </td>"); out.println ("</body>"); out.println ("</html>"); conn.close (); } catch (exception e) {e.printStackTrace (); } out.flush (); out.close (); }}UpdatePage.java // Obtenez les données à modifier et soumettez les données modifiées pour mettre à jour
package org.lsy.servlet; Importer java.io.ioException; import java.io.printwriter; import java.sql.connection; Importer Java.Sql.DiverManager; import java.sql.resultSet; import java.sql.statement; Importer javax.servlet.servletException; import javax.servlet.http.httpservlet; Importer javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; import com.sun.crypto.provider.rsacipher; Classe publique UpdatePage étend HttpServlet {// L'adresse de connexion est fournie séparément par chaque fabricant de base de données, vous devez donc vous souvenir séparément de la chaîne finale statique publique Durl = "JDBC: Oracle: mince: @localhost: 1521: liusy"; // Le nom d'utilisateur pour se connecter à la chaîne finale statique de la base de données publique Dbuser = "Scott"; // Le mot de passe pour se connecter à la base de données statique publique final statique dbpass = "tiger"; public void doGet (demande httpservletRequest, réponse httpservletResponse) lève Servlexception, ioException {String id = request.getParameter ("id"); // Définit le codage de la demande et de la réponse, sinon le code brouillé apparaîtra facilement sur la page demande.SetcharAtterencoding ("UTF-8"); Response.SetcharAtterencoding ("UTF-8"); Response.SetContentType ("Text / HTML; UTF-8"); Printwriter out = réponse.getWriter (); essayez {connexion conn = null; // l'objet qui représente la connexion à l'instruction de base de données stmt = null; // l'opération de mise à jour de la base de données // 1. Utilisez la classe de classe pour charger le pilote class.forname ("oracle.jdbc.driver.oracledriver"); // 2. Connectez-vous à la base de données Conn = driverManager.getConnection (dburl, dbuser, dbpass); // 3. L'interface de l'instruction doit être instanciée via l'interface de connexion stmt = conn.createStatement (); // Utilisez RS pour obtenir les résultats de la requête. Il est préférable de ne pas utiliser l'instruction SQL ici * J'ai moins de champs, donc je suis paresseux, -, - resultSet rs = stmt.ExecuteQuery ("SELECT * FROM Student Where Id = '" + id + "'"); while (Rs.Next ()) {out.println ("<! doctype html public /" - // w3c // dtd html 4.01 transitional // en / ">"); out.println ("<html>"); out.println ("<adread> <itle> un servlet </Title> </A-head>"); out.println ("<porce>"); // Entrez le formulaire du score et soumettez-le à Update Out.print ("<formulaire Action = 'Update' Method = 'Post'>"); Out.print ("<Table Align = 'Center'> <Tr> <Td> Nom: <Input Type = 'Text' Value = '" + Rs.GetString ("Name") + "' name = 'name' size = 20> </td> </tr> "); out.print (" <tr> <td> class: <input type = 'text' value = '"+ rs.getString (" CalssGrent ") +"' name = 'grent' size = 20> </ td> </ tr> "); out.print (" <tr> <td> score: </pr> ' Value = '"+ Rs.GetString (" Result ") +"' name = 'Result' size = 20> </td> </tr> "); // à utiliser comme condition pour interroger la base de données, l'ID doit être transmis ici out.print (" <put-type. Value = 'Modify'> <input type = 'reset' value = 'reset'> </td> </tr> </s table> </form> "); out.print (" </ body> "); out.println (" </html> ");} out.flush (); out.close ();} catch (exception e) {e. }} Update.java reçoit les données à modifier et met à jour la base de données
package org.lsy.servlet; Importer java.io.ioException; import java.io.printwriter; import java.sql.connection; Importer Java.Sql.DiverManager; import java.sql.statement; Importer javax.servlet.servletException; import javax.servlet.http.httpservlet; Importer javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; La mise à jour de la classe publique étend HttpServlet {// Le pilote est le package JAR du pilote JDBC configuré dans le ClassPath avant // L'adresse de connexion est fournie séparément par chaque fabricant de bases de données, vous devez donc vous souvenir séparément de la chaîne finale statique Durl = "JDBC: Oracle: mince: @LocalHost: 1521: liusy"; // Le nom d'utilisateur pour se connecter à la chaîne finale statique de la base de données publique Dbuser = "Scott"; // Le mot de passe pour se connecter à la base de données statique publique final statique dbpass = "tiger"; public void doGet (demande httpservletRequest, réponse httpservletResponse) lève Servlexception, ioException {try {request.SetcharAtterencoding ("utf-8"); Response.SetcharAtterencoding ("UTF-8"); Response.SetContentType ("Text / HTML; UTF-8"); Printwriter out = réponse.getWriter (); Connexion conn = null; // l'objet représentant la connexion à l'instruction de base de données stmt = null; // L'opération de mise à jour de la base de données // obtient le paramètre String id = request.getParameter ("id"); System.out.println (id); String name = request.getParameter ("name"); String Grant = request.getParameter ("Grent"); String result = request.getParameter ("result"); // Update sql String sqlString = "Update Student set name = '" + name + "'," + "calssgrent = '" + grent + "', result = '" + result + "' where id = '" + id + "'"; // 1. Utilisez la classe de classe pour charger le pilote class.forname ("oracle.jdbc.driver.oracledriver"); // 2. Connectez-vous à la base de données Conn = driverManager.getConnection (dburl, dbuser, dbpass); // 3. L'interface de l'instruction doit être instanciée via l'interface de connexion stmt = conn.createStatement (); int pd = stmt.ExecuteUpDate (sqlString); if (pd! = 0) {out.println ("<! doctype html public /" - // w3c // dtd html 4.01 transitional // en / ">"); out.println ("<html>"); out.println ("<adread> <itle> un servlet </Title> </A-head>"); out.println ("<porce>"); out.print ("mis à jour avec succès <br> <a href = mmc_01> View list </a>"); out.println ("</body>"); out.println ("</html>"); } out.flush (); out.close (); stmt.close (); conn.close (); } catch (exception e) {// todo: great exception}} public void doPost (httpservletRequest request, httpservletResponse réponse) lève ServletException, ioException {doGet (request, réponse); }}AddPage .java, Ajouter une page de données
package org.lsy.servlet; Importer java.io.ioException; import java.io.printwriter; Importer javax.servlet.servletException; import javax.servlet.http.httpservlet; Importer javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; La classe publique AddPage étend HttpServlet {public void doGet (requête HttpServletRequest, HttpservletResponse Response) lève ServletException, ioException {// Définit le codage de la demande et de la réponse, sinon le code brouillé apparaîtra facilement sur la page demandes.SetcharacteRending ("UTF-8"); Response.SetcharAtterencoding ("UTF-8"); Response.SetContentType ("Text / HTML; UTF-8"); Printwriter out = réponse.getWriter (); out.println ("<! doctype html public /" - // w3c // dtd html 4.01 transitional // en / ">"); out.println ("<html>"); out.println ("<adread> <itle> un servlet </Title> </A-head>"); out.println ("<porce>"); // Entrez le formulaire du score et soumettez-le pour ajouter.print ("<formulaire action = 'add' method = 'post'>"); Out.print ("<Table Align = 'Center'> <Tr> <Td> Name: <Input Type = 'Text' name = 'name' size = 20> </td> </tr>"); out.print ("<tr> <td> classe: <input type = 'text' name = 'grent' size = 20> </td> </tr>"); out.print ("<tr> <td> score: <input type = 'text' name = 'result' size = 20> </td> </tr>"); out.print ("<tr> <td> <Type de saisie = 'soumise' value = 'add'> <input type = 'reset' value = 'reset'> </td> </tr> </s table> </ form>"); out.println ("<tr> <td> <a href = mmc_01> View list </a> </td> </tr>"); out.println ("</body>"); out.println ("</html>"); out.flush (); out.close (); }}ajouter recevoir la transmission de l'addPage et mettre à jour la base de données
package org.lsy.servlet; Importer java.io.ioException; import java.io.printwriter; import java.sql.connection; Importer Java.Sql.DiverManager; Importer java.sql.PreparedStatement; import java.sql.resultSet; import java.sql.statement; Importer javax.servlet.servletException; import javax.servlet.http.httpservlet; Importer javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; import com.sun.org.apache.xerces.internal.impl.io.utf8reader; import oracle.jdbc.oracore.tdspatch; La classe publique Add étend HttpServlet {// Le pilote est dans le package JAR du pilote JDBC configuré dans ClassPath avant // L'adresse de connexion est fournie séparément par chaque fabricant de bases de données, vous devez donc vous souvenir séparément de la chaîne finale statique Durl = "JDBC: Oracle: mince: @localhost: 1521: liusy"; // Nom d'utilisateur pour la connexion à la chaîne finale statique publique de base de données dbuser = "Scott"; // Mot de passe pour se connecter à la base de données statique publique final statique dbpass = "tiger"; @Override Protected void doPost (httpServletRequest req, httpservletResponse resp) lève ServletException, ioException {// TODO Méthode générée automatique Stub Doget (req, resp); } public void doGet (demande httpservletRequest, réponse httpservletResponse) lève ServletException, ioException {// Définir le codage de la demande et de la réponse, sinon le code brouillé apparaîtra facilement sur la page demande.SetcharAtteRencoding ("UTF-8"); Response.SetcharAtterencoding ("UTF-8"); Response.SetContentType ("Text / HTML; UTF-8"); // stream de sortie printwriter out = réponse.getWriter (); // Code de connexion de la base de données essayez {connexion conn = null; // objet qui représente la connexion à la base de données pstmt = null; // indique l'opération de mise à jour de la chaîne de base de données nameString = request.getParameter ("name"); String grantsstring = request.getParameter ("Grent"); String resultTring = request.getParameter ("result"); System.out.print (NameString); String sql = "Insérer dans Student (id, nom, CalSSGrent, résultat) VALEURS (Perseq.NextVal, '"+ NameString +"', '"+ GrentString +"', '"+ Resultstring +"') "; // 1. Utilisez la classe de classe pour charger la classe Driver.Forname (" Oracle.jdbc.Driver.oracledriver "); // 2. Dbpass); E.PrintStackTrace ();} out.flush (); Fichier de configuration web.xml
<? xml version = "1.0" encoding = "utf-8"?> <web-app version = "2.5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema instance" XSI: ScheMalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <plawing-name> </splay-name> </vendule-list> <bienvenue> index.jsp </calent> <Vertlet-Name> MMC_01 </ Servlet-Name> <Servlet-Class> org.lsy.servlet.mmc_01 </vrlet-Class> </Serplet> <Servlet> <Servlet-Name> Delete </vrlet-name> <Servlet-Class> Org.lsy.Servlet.delete </vlet-Class> <Vertlet-Name> Add </ servlet-name> <servlet-class> org.lsy.servlet.add </ servlet-class> </vrlet> <Servlet> <Servlet-Name> addPage </vrlet-name> <Serplet-Class> org.lsy.servlet.addpage </vlass-class> </servlet> <frlet> <Vertlet-Name> UpdatePage </ Servlet-Name> <Servlet-Class> org.lsy.servlet.updatePage </ servlet-Class> </Servlet> <Serplet> <Servlet-Name> Update </vrlet-name> <Servlet-Class> Org.lsy.servlet.Update </vlass-class> </vrlet> <fervlet-Mapping> <Serplet-name> MMC_01 </ servlet-name> <url-potern> / mmc_01 </rll-potern> </ servlet-mapping> <Servlet-Mapping> <Servlet-Mapping> <Serplet-Name> Delete </vrlett-name> <url-platern> / Delete </url-Pattern> </ serplet-maping> <Vertlet-Name> Add </ servlet-name> <url-potern> / add </ url-potern> </ servlet-mapping> <servlet-mapping> <servlet-name> addPage </vrlet-name> <url-potern> / addpage </url-platern> </vretlet-mappage> <servlet> <servlet-mapping> <URL-Pattern> / UpdatePage </ url-Pattern> </ Servlet-Mapping> <Serplet-Mapping> <Servlet-Mapping> <Servlet-Name> Update </ Servlet-Name> <URL-Pattern> / Update </ url-Pattern> </ Servlet-Mapping> </ web-Apple>
Je ne suis pas un vieil oiseau, j'ai appris. Veuillez prouver s'il y a des erreurs. Le code ci-dessus a de nombreuses pièces en double et de nombreuses pièces déraisonnables. Par rapport aux connexions de la base de données sont directement exposées au servlet d'opération. Pour voir plus intuitivement, je ne l'ai pas changé ...
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.