Não escrevo um blog há muito tempo. Eu posso ser muito preguiçoso e não disposto a gastar meu tempo nele. Mas ainda sei a importância de escrever um blog em meu coração. Então, a partir de hoje, vou compartilhar com você alguns pequenos exemplos que aprendi na Web Java. Pessoalmente, não gosto dos conceitos obscuros nos livros, então passei mais tempo em alguns exemplos de aplicativos. Eu acho que esse método de aprendizado é muito adequado para mim, do simples ao tradicional, do raso ao profundo
Vamos falar bobagens, comece nosso primeiro exemplo:
Servlet implementa a adição, exclusão, modificação e pesquisa do Oracle Basic Basic
Ambiente de Desenvolvimento: JDK7 +Myeclipse10 +TomCat7.0 +Oracle 11g
Primeiro, anexe o script de criação de banco de dados:
Criar Tabela Student (Id Varchar2 (50) Chave primária NÃO NULL, NOME VARCHAR2 (50) NÃO NULL, CALSSGRENT VARCHAR2 (50) NÃO NULL, resultado Varchar (12) não nulo); Insira os valores do aluno (id, nome, Calssgrent, resultado) (Perseq.NextVal, 'Zhang San', '33', '98')
A figura a seguir mostra o diagrama da estrutura do código e a interface de demonstração de funções que não são mal feitas apenas para implementar funções:
Mmc_01.java
Página // A interface principal fornece métodos para adicionar, modificar e excluir
pacote org.lsy.servlet; importar java.io.ioException; importar java.io.printwriter; importar java.sql.connection; importar java.SQL.DriverManager; importar java.sql.resultset; importar java.sql.statement; importar javax.servlet.servletexception; importar javax.servlet.http.httpServlet; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; importar oracle.jdbc.oracore.tdspatch; classe pública MMC_01 estende httpServlet {// O driver está no pacote JAR do driver JDBC configurado no caminho de classe antes // O endereço de conexão é fornecido separadamente por cada fabricante de banco de dados, então você precisa se lembrar separadamente de string public static: "JDBY: Oracle: fin: @localhost: // o nome de usuário para conectar -se ao banco de dados Public Static Final String dbuser = "Scott"; // a senha para se conectar ao banco de dados public estático final string dbpass = "tiger"; Public void Doget (solicitação httpServletRequest, resposta httpServletResponse) lança servletexception, ioexception {// Defina a codificação da solicitação e resposta, caso contrário, o código distorcido aparecerá facilmente no solicitação da página. Response.Setcharacterencoding ("UTF-8"); Response.setContentType ("Texto/html; UTF-8"); // PrintWriter de fluxo de saída out = Response.getWriter (); // Código de conexão do banco de dados tente {conexão conn = null; // objeto indicando a conexão com a instrução STMT = NULL; // indica a operação de atualização da string de banco de dados sql = "Insira no aluno (id, nome, calssgrent, resultado) valores ('67 ',' liu 12yu ',' 33 ',' 98 ')"; System.out.println (SQL); // 1. Use a classe para carregar a classe do driver.Forname ("oracle.jdbc.driver.oracledriver"); // 2. Conecte -se ao banco de dados Conn = DriverManager.getConnection (DBurl, Dbuser, DBPass); // 3. A interface de instrução precisa ser instanciada através da interface de conexão sTMT = Conn.Createstatement (); // Use RS para obter resultados de consulta. É melhor não usar * para instruções SQL aqui * Eu tenho menos campos, então eu só quero ser preguiçoso, -, - ResultSet rs = stmt.executeQuery ("selecione * do aluno"); out.println ("<! doctype html public/"-// w3c // dtd html 4.01 transitório // en/">"); out.println ("<head> <title> um servlet </ititle> </ad Head>"); out.println ("<body>"); // Cabeçalho da tabela de saída out.print ("<tabela align = 'Center' border = '1'> <tr> <td> nome" + "</td> <td> classe </td> <td> pontuação </td> <td> modificar </td> <td> delete </td> </tr>"); while (rs.Next ()) {// obtenha ID no banco de dados string ID = rs.getString ("id"); // Expaida uma coluna de elementos out.print ("<tr> <td>"+rs.getString ("name")+"</td> <td>"+rs.getString ("calsSgrent")+""+"</td> <td>"+rs.getString ("resultado")+"</td>" href = 'updatePage? id = "+id+"'> modificar </a> </td> "+" <td> <a href = 'delete? id = "+id+"'> delete </a> </td> </tr> "); } out.println ("<td> <a href = addPage> adicione dados </a> </td>"); out.println ("</body>"); out.println ("</html>"); Conn.Close (); } catch (Exceção e) {e.printStackTrace (); } out.flush (); out.Close (); }}UpdatePage.java // Faça com que os dados sejam modificados e envie os dados modificados para atualizar
pacote org.lsy.servlet; importar java.io.ioException; importar java.io.printwriter; importar java.sql.connection; importar java.SQL.DriverManager; importar java.sql.resultset; importar java.sql.statement; importar javax.servlet.servletexception; importar javax.servlet.http.httpServlet; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; importação com.sun.crypto.provider.rsacipher; classe pública UpdatePage estende httpServlet {// O endereço de conexão é fornecido separadamente por cada fabricante do banco de dados; portanto, você precisa se lembrar separadamente da sequência final public estática pública dburl = "JDBC: Oracle: Thin: @localhost: 1521: liusy"; // o nome de usuário para conectar -se ao banco de dados Public Static Final String dbuser = "Scott"; // a senha para se conectar ao banco de dados public estático final string dbpass = "tiger"; public void Doget (solicitação httpServLeTrequest, httpServletResponse Response) lança servletexception, ioexception {string id = request.getParameter ("id"); // Defina a codificação da solicitação e resposta, caso contrário, o código ilegal aparecerá facilmente na página Solicitação.Setcharacterencoding ("UTF-8"); Response.Setcharacterencoding ("UTF-8"); Response.setContentType ("Texto/html; UTF-8"); PrintWriter out = Response.getWriter (); tente {conexão conn = null; // o objeto que representa a conexão com a instrução do banco de dados sTMT = null; // a operação de atualização do banco de dados // 1. Use a classe Class para carregar a classe Driver.ForName ("oracle.jdbc.driver.oracledriver"); // 2. Conecte -se ao banco de dados Conn = DriverManager.getConnection (DBurl, Dbuser, DBPass); // 3. A interface de instrução precisa ser instanciada através da interface de conexão sTMT = Conn.Createstatement (); // Use RS para obter os resultados da consulta. É melhor não usar a instrução SQL aqui * Eu tenho menos campos, então sou preguiçoso, -, - ResultSet rs = stmt.executeQuery ("Selecione * do aluno onde id = '"+id+"'"); while (rs.Next ()) {out.println ("<! doctype html public/"-// w3c // dtd html 4.01 transitório // en/">"); out.println ("<html>"); out.println ("<head> <title> um servlet </ititle> </ad Head>"); out.println ("<body>"); // Digite o formulário da pontuação e envie -o para atualizar. out.print ("<tabela align = 'center'> <tr> <td> nome: <input type = 'text' value = '"+rs.getString ("nome")+"' nome = 'nome' tamanho = 20> </td> </tr> "); out.print (" <tr> <td> classe: <input type = 'text' value = '"+rs.getString (" calsSgrent ")+"' name = 'size' size = 20> </td> </tr> "); value = '' "+rs.getString (" resultado ")+" 'name =' resultado 'tamanho = 20> </td> </tr> "); // para ser usado como uma condição para consultar o banco de dados, o id deve ser passado aqui <bout.print (" <input Type =' hidden '=' "+id+" '' '' type = 'submite' value = 'modify'> <input type = 'reset' value = 'reset'> </td> </tr> </ table> </form> "); out.print (" </body> "); out.println (" </tml> "); TODO: lidar com a exceção}}} Update.java recebe os dados a serem modificados e atualiza o banco de dados
pacote org.lsy.servlet; importar java.io.ioException; importar java.io.printwriter; importar java.sql.connection; importar java.SQL.DriverManager; importar java.sql.statement; importar javax.servlet.servletexception; importar javax.servlet.http.httpServlet; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; A atualização da classe pública estende httpServlet {// O driver é o pacote JAR do driver JDBC configurado no caminho de classe antes // O endereço de conexão é fornecido separadamente por cada fabricante do banco de dados, para que você precise se lembrar separadamente de sequência estática pública separadamente dburl = "jdbc: oracle: fin: @localHost: 1521: lius;"; // o nome de usuário para conectar -se ao banco de dados Public Static Final String dbuser = "Scott"; // a senha para se conectar ao banco de dados public estático final string dbpass = "tiger"; public void Doget (solicitação httpServletRequest, httpServletResponse Response) lança servletexception, ioexception {try {request.Setcharacterencoding ("utf-8"); Response.Setcharacterencoding ("UTF-8"); Response.setContentType ("Texto/html; UTF-8"); PrintWriter out = Response.getWriter (); Conexão conn = null; // o objeto que representa a conexão com a instrução do banco de dados stmt = null; // a operação de atualização do banco de dados // obtenha o parâmetro string id = request.getParameter ("id"); System.out.println (id); Nome da string = request.getParameter ("nome"); String Grant = request.getParameter ("Grent"); String resultado = request.getParameter ("resultado"); // Atualize o SQL String SQLSTRING = "Atualize o conjunto do conjunto do aluno = '" "+nome+"', "+" calsSgrent = '"+Grent+"', resultado = '"+resultado+"' 'onde id =' "+id+" '"; // 1. Use a classe para carregar a classe do driver.Forname ("oracle.jdbc.driver.oracledriver"); // 2. Conecte -se ao banco de dados Conn = DriverManager.getConnection (DBurl, Dbuser, DBPass); // 3. A interface de instrução precisa ser instanciada através da interface de conexão sTMT = Conn.Createstatement (); int pd = stmt.executeUpdate (sqlString); if (pd! = 0) {out.println ("<! doctype html public/"-// w3c // dtd html 4.01 transitório // en/">"); out.println ("<html>"); out.println ("<head> <title> um servlet </ititle> </ad Head>"); out.println ("<body>"); out.print ("Atualizado com sucesso <br> <a href = mmc_01> Lista de visualização </a>"); out.println ("</body>"); out.println ("</html>"); } out.flush (); out.Close (); stmt.close (); Conn.Close (); } catch (Exceção e) {// TODO: lide a exceção}} public void DoPost (solicitação httpServletRequest, resposta httpServletResponse) lança servletexception, ioexception {doget (solicitação, resposta); }}AddPage .Java, adicione a página de dados
pacote org.lsy.servlet; importar java.io.ioException; importar java.io.printwriter; importar javax.servlet.servletexception; importar javax.servlet.http.httpServlet; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; classe pública AddPage estende httpServlet {public void Doget (solicitação httpServletRequest, httpServletResponse resposta) lança servletexception, ioexception {// defina a codificação da solicitação e resposta, caso contrário, o código contorno aparecerá facilmente na página. Response.Setcharacterencoding ("UTF-8"); Response.setContentType ("Texto/html; UTF-8"); PrintWriter out = Response.getWriter (); out.println ("<! doctype html public/"-// w3c // dtd html 4.01 transitório // en/">"); out.println ("<html>"); out.println ("<head> <title> um servlet </ititle> </ad Head>"); out.println ("<body>"); // Digite o formulário da pontuação e envie -o para adicionar.print ("<form ação = 'add' method = 'post'>"); out.print ("<tabela align = 'center'> <tr> <td> nome: <input type = 'text' name = 'name' size = 20> </td> </tr>"); out.print ("<tr> <td> classe: <input type = 'text' nome = 'grão' tamanho = 20> </td> </tr>"); out.print ("<tr> <td> pontuação: <input type = 'text' name = 'resultado' tamanho = 20> </td> </tr>"); out.print ("<tr> <td> <input type = 'submit' value = 'add'> <input type = 'reset' value = 'reset'> </td> </tr> </ table> </morm>"); out.println ("<tr> <Td> <a href = mmc_01> Lista de visualização </a> </td> </tr>"); out.println ("</body>"); out.println ("</html>"); out.flush (); out.Close (); }}Adicionar receba a transmissão do AddPage e atualize o banco de dados
pacote org.lsy.servlet; importar java.io.ioException; importar java.io.printwriter; importar java.sql.connection; importar java.SQL.DriverManager; importar java.SQL.PreparedStatement; importar java.sql.resultset; importar java.sql.statement; importar javax.servlet.servletexception; importar javax.servlet.http.httpServlet; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; import com.sun.org.apache.xerces.internal.impl.io.utf8reader; importar oracle.jdbc.oracore.tdspatch; classe pública ADD, estende HttpServlet {// O driver está no pacote JAR do driver JDBC configurado em ClassPath antes // O endereço de conexão é fornecido separadamente por cada fabricante do banco de dados, para que você precise se lembrar separadamente de sequência estática pública separadamente dburl = "JDBC: Oracle: Thin: @localHost: 1521: lius;"; // nome de usuário para conectar -se ao banco de dados Public Static Final String dbuser = "Scott"; // Senha para conectar -se ao banco de dados Public Static Final String dbpass = "Tiger"; @Override Protected void DoPost (httpServletRequest req, httpServletResponse resp) lança servletexception, ioexception {// TODO GONEGERATED METHON STUB DOGET (REQ, RESP); } public void Doget (solicitação httpServletRequest, httpServletResponse resposta) lança servletexception, ioexception {// Defina a codificação da solicitação e resposta, caso contrário, o código iluminado aparecerá facilmente no solicitação de página. Response.Setcharacterencoding ("UTF-8"); Response.setContentType ("Texto/html; UTF-8"); // PrintWriter de fluxo de saída out = Response.getWriter (); // Código de conexão do banco de dados tente {conexão conn = null; // objeto que representa a conexão com o banco de dados pstmt = null; // indica a operação de atualização da sequência de banco de dados namestring = request.getParameter ("nome"); String Grantstring = request.getParameter ("Grent"); String ResultsTring = request.getParameter ("resultado"); System.out.print (Namestring); String sql = "Inserir no aluno (id, nome, calssgrent, resultado) valores (Perseq.NextVal, '"+Namestring+"', '"+Grentstring+"', '"+Resulttring+"') "; // 1. Use a classe para carregar a classe Driver.ForName (" Oracle.jdbc.driver.oracledriver "); pstmt = conn.createstatement (); E.PrintStackTrace (); arquivo de configuração 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"> <lame> </dollamed> <lmed-list--list> <Verlet-name> mmc_01 </servlet-name> <Servlet-class> org.lsy.servlet.mmc_01 </servlet-class> </servlet> <ervlet> <ervlet-name> delete </servlet-name> <Verlet-class> org.llet.sertlet.delete <//<//Servlet> <Verlet-name> Adicionar </servlet-name> <Servlet-class> org.lsy.servlet.add </servlet-class> </servlet> <ervlet> <Servlet-name> AddPage </servlet-name> </servlet-class> org.lsy.servlet.addpage </sertlet-class> <//class> <servlet-class>org.lsy.servlet.UpdatePage</servlet-class> </servlet> <servlet> <servlet-name>Update</servlet-name> <servlet-class>org.lsy.servlet.Update</servlet-class> </servlet> <servlet-mapping> <servlet-mapping> <servlet-name>MMC_01</servlet-name> <url-Pattern>/mmc_01 </url-tattern> </servlet-mapping> <Servlet-mapping> <Servlet-Mapping> <Vertlet-Name> delete </servlet-nam </servlet-mapping> <Servlet-mapping> <Servlet-name> AddPage </servlet-name> <url-pattern>/addPage </url-tattern> </servlet-mapping> <ar Servlet-Mapping> <ervertlet--Mappage> <sutlet-name> updatepage </stetter-name> <url-Pattern>/atualize </updatepage> updatepage> <Verlet-mapping> <dom-name> update </servlet-name> <url-pattern>/update </url-tattern> </servlet-mapping> </web-app>
Eu não sou um pássaro velho, tenho aprendido. Por favor, prove se houver algum erro. O código acima possui muitas peças duplicadas e muitas peças irracionais. Comparado com as conexões do banco de dados estão diretamente expostas ao servlet da operação. Para ver mais intuitivamente, eu não mudei ...
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.