Um exemplo de desenvolvimento usando JSP + JAVABEAN + XML
Autor:Eve Cole
Data da Última Atualização:2009-07-02 17:12:18
Este exemplo refere-se a documentos relevantes sobre operações JSP em XML em alguns websites e combina algumas experiências pessoais. O exemplo envolve o desenvolvimento de parte do código para o gerenciamento backend do sistema interno de pedidos de uma empresa. A função está voltada principalmente para o gerenciamento de informações básicas sobre restaurantes.
O exemplo em si foi desenvolvido como parte de uma piada que contei com colegas da minha antiga empresa. Gostaria também de expressar minha saudade daqueles amigos que trabalharam juntos.
O exemplo em si é um programa estruturado B/S executado na plataforma TOMCAT4.01. A configuração do TOMCAT não será explicada aqui. Apenas explique a estrutura de diretórios de arquivos e pastas relacionados.
Descrição da estrutura de diretório:
/tomcat/webapps/canyin/ -----Diretório inicial
/tomcat/webapps/canyin/jsp/ -----Diretório de arquivo JSP
/tomcat/webapps/canyin/jsp/admin/ -----O diretório de armazenamento para arquivos JSP que implementam gerenciamento em segundo plano
/tomcat/webapps/canyin/WEB-INF/classes/canyin/ ------O diretório de armazenamento de arquivos javabean
/tomcat/webapps/canyin/data/ -----diretório de armazenamento de arquivos xml
/tomcat/webapps/ROOT/ -----Pasta de armazenamento do arquivo de inicialização do Tomcat, apenas o arquivo index.html é armazenado
Breve descrição do arquivo:
/tomcat/webapps/canyin/data/users.xml -----Registre informações do usuário
/tomcat/webapps/canyin/data/restaurants.xml -----Registre informações básicas de restaurantes
/tomcat/webapps/ROOT/index.html -----Página inicial, uma caixa de entrada aparece na página, exigindo que o usuário insira um nome de usuário e uma senha.
/tomcat/webapps/canyin/jsp/loginjudge.jsp -----Página de julgamento de identidade do usuário Com base no nome de usuário e senha, é decidido se a página será transferida para o terminal de gerenciamento em segundo plano ou para o cliente front-end. . Neste exemplo, uma vez confirmada a identidade do usuário com direitos de gestão, ele pode entrar no terminal de gerenciamento backend e ir diretamente para a página de gerenciamento de informações básicas do restaurante, simplificando o processo de explicação.
/tomcat/webapps/canyin/jsp/admin/admin_rest.jsp -----Página básica de gerenciamento de informações do restaurante, gerencia o nome, número de telefone, endereço e outras informações do restaurante
/tomcat/webapps/canyin/WEB-INF/classes/canyin/checkSessionBean.class ----- O terminal de gerenciamento em segundo plano detecta o valor da sessão que indica a identidade do usuário. Se não for um administrador, ele retornará para o. página de login.
/tomcat/webapps/canyin/WEB-INF/classes/canyin/connXmlBean.class -----Conecte o arquivo xml
/tomcat/webapps/canyin/WEB-INF/classes/canyin/writeXmlBean.class -----Escrever arquivo xml
Introdução detalhada ao arquivo e descrição do código que o acompanha.
/tomcat/webapps/canyin/data/users.xml
Código:
<?xml versão="1.0" codificação="UTF-8" ?>
- <usuários>
<nome de usuário="joard" senha="joard" papéis="admin" />
<nome de usuário="joard01" senha="joard01" papéis="usuário" />
<nome de usuário="joard02" senha="joard02" papéis="usuário" />
</usuários>
Descrição: O significado dos campos é nome de usuário, senha e identidade do usuário
/tomcat/webapps/canyin/data/restaurants.xml
Código:
<?xml versão="1.0" codificação="UTF-8" ?>
- <restaurantes num="10">
- <id do restaurante = "1">
<name>Restaurante Fast Food Shanghai Ting</name>
<telefone>021-76546726</telefone>
<endereço>Broadway Plaza Torre B</endereço>
</restaurante>
- <id do restaurante = "8">
<name>Shangri-La Hotel</name>
<telefone>021-2312134</telefone>
<endereço>Nº 1023, Estrada Nanjing</endereço>
</restaurante>
</restaurantes>
Nota: O atributo <num> registra o número total de registros no arquivo dining.xml Cada vez que um novo registro é adicionado, o valor aumentará em 1, independentemente de ele ser excluído posteriormente, assim como o id usado para. aumenta automaticamente em 1 no item do banco de dados. Usado para atribuir um valor exclusivo ao atributo <id> do <restaurante> recém-adicionado. O significado de outros campos é mais óbvio.
/tomcat/webapps/ROOT/index.html (código HTML puro)
Código:
<html>
<cabeça>
<title>Sistema de Catering oddWorld</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body onload="javascript:dataform.username.focus()">
<div alinhar="centro">
<table width="100%" border="0" cellpacing="0" cellpadding="0" height="22">
<tr>
<td width="1"><img src="images/top_r1.GIF" width="62" height="22"></td>
<td width=150 align="center"> Login no sistema de catering </td>
<td><img src="images/top_r2.GIF" width="294" height="22"></td>
</tr>
</tabela>
<br>
<br>
<table width="300" border="0" cellpacing="1" cellpadding="0" >
<tr>
<td height="200" valign="top" align="center">
<p alinhar="centro">
<table width="100%" border="0" cellpacing="1" cellpadding="5" bgcolor=#999999 class=a9px>
<tr>
<td bgcolor="#efefef">Login no sistema de catering</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" valign="top" align="center">
<table width="100%" border="0" cellpacing="0" cellpadding="0">
<nome do formulário=método dataform=post action=''canyin/jsp/loginjudge.jsp''>
<tr>
<td width="100"><b>Nome de login:</b></td>
<td>
<comprimento máximo de entrada=16
name="nome de usuário" class=stedit value="joard">
</td>
</tr>
<tr>
<td width="100"><b>Senha:</b></td>
<td>
<classe de entrada=stedit maxlength=16
name="userpass" type=senha value="oddworld">
</td>
</tr>
</form>
</tabela>
<br>
<borda da tabela=0 cellpadding=0 cellpacing=0>
<corpo>
<tr>
<td>
<input class=stbtm name=update onClick="javascript:if (checkform()==false);" type=button value="Login">
</td>
<td> </td>
<td>
<input class=stbtm name=Enviar onClick="javascript:window.location.href=''index.asp?myjoke=1'';" type=button value="Alterar senha">
</td>
<td> </td>
</tr>
</tbody>
</tabela>
<br>
</td>
</tr>
</tabela>
</td>
</tr>
</tabela>
</div>
</body>
</html>
<linguagem SCRIPT=javascript>
<!--
formulário de verificação de função()
{
var Checkblank = /^(s*|( )|(.))*$/;
if (Checkblank.test(dataform.nomedeusuário.valor))
{
alert("O nome de login não pode ficar vazio!");
retornar falso;
}
if (Checkblank.test(dataform.userpass.value))
{
alert("A senha não pode estar vazia!");
retornar falso;
}
window.dataform.submit();
}
-->
</SCRIPT>
Instruções: Envie o nome de usuário e a senha do usuário para /tomcat/webapps/canyin/jsp/loginjudge.jsp
/tomcat/webapps/canyin/WEB-INF/classes/canyin/checkSessionBean.class (o código é o arquivo java correspondente)
pacote canyin;
importar javax.servlet.http.HttpSession;
importar javax.servlet.http.HttpServletRequest;
classe pública checkSessionBean {
booleano privado bolCheckPass=false;
solicitação HttpServletRequest privada = null;
public boolean checkSessionBean(solicitação HttpServletRequest,String strSessionName,String strCheckValue){
public boolean checkSessionBean(solicitação HttpServletRequest){
Sessão HttpSession = request.getSession(false);
return(bolCheckPass);
if (strSessionName==null || strCheckValue==null){
return(bolCheckPass);
}outro{
if (sessão!=null && session.getValue(strSessionName)!=null){
bolCheckPass=session.getValue(strSessionName).equals(strCheckValue);
}
return(bolCheckPass);
}
}
}
Descrição: Verifique se o valor do nome da sessão passado como parâmetro e o valor do campo passado como parâmetro são iguais.
/tomcat/webapps/canyin/WEB-INF/classes/canyin/connXmlBean.class
Código:
pacote canyin;
importar javax.xml.parsers.*;
importar javax.xml.transform.*;
importar javax.xml.transform.dom.DOMSource;
importar javax.xml.transform.stream.StreamResult;
importar org.w3c.dom.*;
classe pública connXmlBean {
private DocumentBuilderFactory fábrica = null;
construtor privado do DocumentBuilder=null;
Documento privado doc=null;
conexão públicaXmlBean(){}
public String connXml(String xmlFileName){
String strExc="";
tentar{
fábrica = DocumentBuilderFactory.newInstance();
construtor=fábrica.newDocumentBuilder();
doc=builder.parse(xmlNomeArquivo);
doc.normalize();
}catch(Exceção e){
strExc=e.toString();
}
return(strExc);
}
Documento público getXmlDoc(){
retornar(doc);
}
}
Descrição: Abra um arquivo xml especificado
/tomcat/webapps/canyin/WEB-INF/classes/canyin/writeXmlBean.class
Código:
pacote canyin;
importar javax.xml.parsers.*;
importar javax.xml.transform.*;
importar javax.xml.transform.dom.DOMSource;
importar javax.xml.transform.stream.StreamResult;
importar java.io.File;
importar org.w3c.dom.*;
classe pública writeXmlBean {
writeXmlBean público(){}
public String writeXml(Documento documento,String xmlFileName){
String strExc="";
tentar{
TransformerFactory tfactory = TransformerFactory.newInstance();
Transformador transformador = tfactory.newTransformer();
Fonte DOMSource = new DOMSource(doc);
Resultado StreamResult = new StreamResult(new File(xmlFileName));
transformer.transform(fonte,resultado);
}catch(Exceção e){
strExc=e.toString();
}
return(strExc);
}
}
Descrição: Grave o conteúdo do dom em um arquivo xml especificado.
/tomcat/webapps/canyin/jsp/loginjudge.jsp
Código:
<%-- oddWorld Catering Management System (versão em chinês simplificado) 1º de dezembro de 2002
copy right por joard ast
Função loginjudge.jsp: verificação de identidade do usuário, com base nas diferentes identidades dos usuários marcados no arquivo /data/user.xml
Decida ir para a página de gerenciamento de back-end ou para a página de pedidos do cliente.
--%>
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page idioma="java" import="javax.xml.parsers.*" %>
<%@page import="org.w3c.dom.*" %>
<%@ page import="canyin.*" %>
<jsp:useBean id="xmlBean" class="canyin.connXmlBean" escopo="page" />
<%
sessão.setMaxInactiveInterval(1800);
Documento do documento;
Usuários do NodeList;
String strExc="";
String strNomeUsuário,strSenha;
strUsername=(String)request.getParameter("nome de usuário");
strPassword=(String)request.getParameter("userpass");
//Verifica se os dados estão vazios
if (strNomeUsuário=="" || strSenha=="" ){
out.println("<linguagem de script=''javascript''>");
out.println("alert(''Nome de usuário ou senha possui valor nulo!'');");
out.println("window.location.href=''/index.html'';");
out.println("</script>");
retornar;
}
xmlBean.connXml("webapps/canyin/data/users.xml");
doc=xmlBean.getXmlDoc();
tentar{
usuários =doc.getElementsByTagName("usuário");
for (int i=0;i<users.getLength();i++){
Elemento usuário=(Elemento) usuários.item(i);
String strAtrNameValue=user.getAttributeNode("nome").getNodeValue();
String strAtrPassWordValue=user.getAttributeNode("senha").getNodeValue();
String strAtrRoleValue=user.getAttributeNode("roles").getNodeValue();
if (strAtrNameValue.equals(strUsername) && strAtrPassWordValue.equals(strPassword)){
if (strAtrRoleValue.equals("admin")){
out.println("<linguagem de script=''javascript''>");
out.println("alert(''Bem-vindo administrador ao efetuar login no sistema!'');");
out.println("</script>");
//Defina a sessão (sesUserRole) indicando a identidade do usuário, e a identidade do administrador é admin
session.setAttribute("sesUserRole","admin");
//Ir para a página de gerenciamento
resposta.sendRedirect("admin/admin_rest.jsp");
retornar;
}outro{
//Define a sessão (sesUserRole) indicando a identidade do usuário, e a identidade do administrador é usuário
session.setAttribute("sesUserRole","usuário");
//Ir para a página normal do usuário
resposta.sendRedirect("index.jsp");
retornar;
}
}outro{
out.println("<linguagem de script=''javascript''>");
out.println("alert(''Nome de usuário ou senha errados!'');");
out.println("history.go(-1);");
out.println("</script>");
retornar;
}
}
}catch(Exceção e){
strExc=e.toString();
}
%>
ilustrar:.......
/tomcat/webapps/canyin/jsp/admin/admin_rest.jsp
Código:
<%-- oddWorld Catering Management System (versão em chinês simplificado) 1º de dezembro de 2002
cópia direita por joard ast
Função admin_rest.jsp: página de gerenciamento de back-end, página de gerenciamento de restaurante.
--%>
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page idioma="java" import="javax.xml.parsers.*" %>
<%@page import="javax.xml.transform.*" %>
<%@page import="org.w3c.dom.*" %>
<%@ page import="canyin.*" %>
<%@ include file="../../include/sys_dialog.jsp" %>
<jsp:useBean id="checkSessionBean" class="canyin.checkSessionBean" escopo="page" />
<jsp:useBean id="xmlBean" class="canyin.connXmlBean" escopo="page" />
<jsp:useBean id="writeXmlBean" class="canyin.writeXmlBean" escopo="page" />
<%//Verifique a identidade do usuário para determinar se ele ou ela é um administrador
if(!checkSessionBean.checkSessionBean(request,"sesUserRole","admin")){
out.print(showDialog("Você não tem direitos administrativos!","/index.html"));
retornar;
}
//Obter dados relevantes do arquivo de informações do restaurante rest.xml
Documento do documento;
Restaurantes NodeList;
String strAct;
int intId=0;
String strOperation="mostrar";
//Aceita parâmetros externos passados
strAct=(String)request.getParameter("agir");
xmlBean.connXml("webapps/canyin/data/restaurantes.xml");
doc=xmlBean.getXmlDoc();
restaurantes =doc.getElementsByTagName("restaurante");
//Determina o funcionamento do arquivo restaurant.xml com base nos parâmetros externos passados
if (strAct!=nulo){
if(strAct.equals("addnewDo")){
String strNome;
String strPhone;
String strEndereço;
Texto de texto, por exemplo;
strNome=(String)request.getParameter("nome").trim();
strPhone=(String)request.getParameter("telefone").trim();
strAddress=(String)request.getParameter("endereço").trim();
//Verificação de dados
if(strNome==nulo){
out.print(showDialog("O nome do restaurante não pode ficar vazio!"));
retornar;
}
if(strTelefone==null){
out.print(showDialog("O número de telefone do restaurante não pode ficar vazio!"));
retornar;
}
/*if(strEndereço==nulo){
out.print(showDialog("O endereço do restaurante não pode estar vazio!"));
retornar;
}*/
//Verifica a exclusividade dos dados
for(int i=0;i<restaurantes.getLength();i++){
Elemento restaurante=(Elemento) restaurantes.item(i);
if(((String)restaurant.getElementsByTagName("nome").item(0).getFirstChild().getNodeValue()).equals(strName)){
out.print(showDialog("Nome do restaurante duplicado!"));
retornar;
}outro{
if(((String)restaurant.getElementsByTagName("nome").item(0).getFirstChild().getNodeValue()).equals(strPhone)){
out.print(showDialog("Repita o número de telefone do restaurante!"));
retornar;
}
}
}
//Obtém o número de registros existentes e define um atributo de id incremental exclusivo para o novo registro do restaurante
int intNum=0;
Elemento restNum=(Elemento)doc.getElementsByTagName("restaurantes").item(0);
intNum=Integer.parseInt(restNum.getAttributeNode("num").getNodeValue());
intNum+=1;
//Adiciona 1 ao valor do atributo do restaurante num
restNum.getAttributeNode("num").setNodeValue(String.valueOf(intNum));
//Adiciona nó
Elemento newRestaurant=doc.createElement("restaurante");
Attr newArrId=doc.createAttribute("id");
//Atributo newArrId = new Attribute("id",String.valueOf(intNum));
textseg=doc.createTextNode(String.valueOf(intNum));
newArrId.setValue(String.valueOf(intNum));
newRestaurant.setAttributeNode(newArrId);
Elemento newName=doc.createElement("nome");
textseg=doc.createTextNode(strNome);
novoNome.appendChild(textseg);
novoRestaurante.appendChild(novoNome);
Elemento newPhone=doc.createElement("telefone");
textseg=doc.createTextNode(strPhone);
newPhone.appendChild(textseg);
novoRestaurante.appendChild(novoTelefone);
Elemento newAddress=doc.createElement("endereço");
textseg=doc.createTextNode(strAddress);
novoAddress.appendChild(textseg);
novoRestaurante.appendChild(novoEndereço);
doc.getDocumentElement().appendChild(newRestaurant);
//Chama o bean para escrever o arquivo xml correspondente
writeXmlBean.writeXml(doc,"webapps/canyin/data/restaurants.xml");
resposta.sendRedirect(request.getRequestURI());
retornar;
}
if(strAct.equals("modiDo")){
String strNome;
String strPhone;
String strEndereço;
Texto de texto, por exemplo;
int modId;
//Registra qual item(i) é o registro a ser modificado
int intI=0;
strNome=(String)request.getParameter("nome").trim();
strPhone=(String)request.getParameter("telefone").trim();
strAddress=(String)request.getParameter("endereço").trim();
modiId=Integer.parseInt(request.getParameter("recordId").trim());
//Verificação de dados
if(strNome==nulo){
out.print(showDialog("O nome do restaurante não pode ficar vazio!"));
retornar;
}
if(strTelefone==nulo){
out.print(showDialog("O número de telefone do restaurante não pode ficar vazio!"));
retornar;
}
if(modId==0){
out.print(showDialog("O registro do restaurante que deseja modificar não existe!"));
retornar;
}
/*if(strEndereço==nulo){
out.print(showDialog("O endereço do restaurante não pode estar vazio!"));
retornar;
}*/
// Flag mostra que o registro existe
booleano recordExist=false;
//Verifica a exclusividade dos dados
for(int i=0;i<restaurantes.getLength();i++){
Elemento restaurante=(Elemento) restaurantes.item(i);
if(Integer.parseInt(restaurant.getAttributeNode("id").getNodeValue())==modiId){
recordExist=true;
intI=i;
}
if(((String)restaurant.getElementsByTagName("nome").item(0).getFirstChild().getNodeValue()).equals(strName) && Integer.parseInt(restaurant.getAttributeNode("id").getNodeValue() )!=modId ){
out.print(showDialog("Nome do restaurante duplicado!"));
retornar;
}outro{
if(((String)restaurant.getElementsByTagName("nome").item(0).getFirstChild().getNodeValue()).equals(strPhone) && Integer.parseInt(restaurant.getAttributeNode("id").getNodeValue() )!=modId ){
out.print(showDialog("Repita o número de telefone do restaurante!"));
retornar;
}
}
}
if(!recordExist){
out.print(showDialog("O registro do restaurante que deseja modificar não existe!"));
retornar;
}outro{
//Executa alterações nos registros
tentar{
Elemento modiRestaurant=(Elemento) restaurantes.item(intI);
modiRestaurant.getElementsByTagName("nome").item(0).getFirstChild().setNodeValue(strName);
modiRestaurant.getElementsByTagName("telefone").item(0).getFirstChild().setNodeValue(strPhone);
modiRestaurant.getElementsByTagName("endereço").item(0).getFirstChild().setNodeValue(strAddress);
//Chama o bean para escrever o arquivo xml correspondente
writeXmlBean.writeXml(doc,"webapps/canyin/data/restaurants.xml");
resposta.sendRedirect(request.getRequestURI());
retornar;
}catch(Exceção e){}
}
}
//Executa operação de exclusão
if(strAct.equals("del")){
int delId;
//Registra qual item(i) é o registro a ser modificado
int intI=0;
delId=Integer.parseInt(request.getParameter("recordId").trim());
if(delId==0){
out.print(showDialog("O registro do restaurante que deseja modificar não existe!"));
retornar;
}
O sinalizador file:// mostra que o registro existe
booleano recordExist=false;
//Verifica a exclusividade dos dados
for(int i=0;i<restaurantes.getLength();i++){
Elemento restaurante=(Elemento) restaurantes.item(i);
if(Integer.parseInt(restaurant.getAttributeNode("id").getNodeValue())==delId){
recordExist=true;
intI=i;
}
}
if(!recordExist){
out.print(showDialog("O registro do restaurante que você deseja excluir não existe!"));
retornar;
}outro{
//Executa operação de exclusão de registro
tentar{
Nó delNode=(Nó)restaurantes.item(intI);
doc.getElementsByTagName("restaurantes").item(0).removeChild(delNode);
//Chama o bean para escrever o arquivo xml correspondente
writeXmlBean.writeXml(doc,"webapps/canyin/data/restaurants.xml");
resposta.sendRedirect(request.getRequestURI());
retornar;
}catch(Exceção e){}
}
}
}
//O status de processamento correspondente da página é determinado por parâmetros externos.
if (strAct==nulo){
strOperação="mostrar";
}outro{
if (strAct.equals("modi")){
strOperation="modi";
intId=Integer.parseInt(request.getParameter("recordId"));
}outro{
if(strAct.equals("addnew")){
strOperação = "adicionar novo";
}outro{
strOperation="mostrar";
}
}
}
//Se o registro estiver vazio, altere o status da página para "Novo"
if (restaurantes.getLength()==0){
strOperação = "adicionar novo";
}
%>
<html>
<cabeça>
<title>Sistema de Catering oddWorld</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="expires" content="0">
<link rel="stylesheet" href="../../include/itsp.css" type="text/css">
</head>
<corpo>
<div alinhar="centro">
<table width="100%" border="0" cellpacing="0" cellpadding="0" height="22">
<tr>
<td width="1"><img src="../../images/top_r1.GIF" width="62" height="22"></td>
<td width=150 align="center"> Gerenciamento de sistema de catering - gerenciamento de restaurante</td>
<td><img src="../../images/top_r2.GIF" width="294" height="22"></td>
<td width=100 align="center"><a href="/index.html">[Sair do sistema]</a></td>
</tr>
</tabela>
<br>
<br>
<table bgcolor="#999999" align=center border=0 cellpadding=1 cellpacing=1
largura="90%">
<corpo>
<tr bgcolor="#efefef" align="center" valign="middle">
<td class=ttTable height=30 width="20"> </td>
<td class=ttTable height=30 width="0">Nome do restaurante</td>
<td class=ttTable height=30 width="0">Número de telefone do restaurante</td>
<td class=ttTable height=30 width="0">
<div align="center">Endereço do restaurante</div>
</td>
<td class=ttTable height=30 width="30">
<div align="center">Modificar</div>
</td>
<td class=ttTable height=30 width="30">
<div align="center">Excluir</div>
</td>
</tr>
<%
for(int i=0;i<restaurantes.getLength();i++)
{
Elemento restaurante=(Elemento) restaurantes.item(i);
if (strOperation=="modi" && Integer.parseInt(restaurant.getAttributeNode("id").getNodeValue())==intId){
%>
<%//Mostrar formato modificado%>
<tr align="center" bgcolor="#ffffff" valign="middle">
<form name=dataform action="<%=request.getRequestURI()%>?act=modiDo" method="post" onSubmit=''return checkform(this);'' >
<td class=tdsmall height=25 width="20">
<input type="hidden" name="recordId" value="<%=restaurant.getAttributeNode("id").getNodeValue()%>">
<%=(i+1)%></td>
<td class=tdsmall height=25>
<input nome="nome" classe=stedit
style="ALTURA: 22px; LARGURA: 150px" value="<%if(restaurant.getElementsByTagName("nome").item(0).hasChildNodes()){
out.print(restaurant.getElementsByTagName("nome").item(0).getFirstChild().getNodeValue());
}%>
"comprimento máximo="40" >
</td>
<td class=tdsmall height=25>
<input name="phone" class=stedit
style="ALTURA: 22px; LARGURA: 100px" value="<%if(restaurant.getElementsByTagName("phone").item(0).hasChildNodes()){
out.print(restaurant.getElementsByTagName("telefone").item(0).getFirstChild().getNodeValue());
}%>" maxlength="20" >
</td>
<td class=tdsmall height=25>
<input name="endereço" class=stedit
style="ALTURA: 22px; LARGURA: 200px" valor="<%
if(restaurante.getElementsByTagName("endereço").item(0).hasChildNodes()){
out.print(restaurant.getElementsByTagName("endereço").item(0).getFirstChild().getNodeValue());
}%>" maxlength="100" >
</td>
<td class=tdsmall height=25 width="25"><a href="javascript:if (checkform()==false);"><img border=0
altura=15 src="../../images/editok.gif" largura=15></a></td>
<td class=tdsmall height=25 width="25"> </td>
</form>
</tr>
<% }outro{
//Exibir formato normal %>
<tr align="center" bgcolor="#ffffff" valign="middle">
<td class=tdsmall height=25 width="20"><%=(i+1)%></td>
<td class=tdsmall height=25 width="0"><%if(restaurant.getElementsByTagName("name").item(0).hasChildNodes()){
out.print(restaurant.getElementsByTagName("nome").item(0).getFirstChild().getNodeValue());
}%>
</td>
<td class=tdsmall height=25 width="0"><%if(restaurant.getElementsByTagName("phone").item(0).hasChildNodes()){
out.print(restaurant.getElementsByTagName("telefone").item(0).getFirstChild().getNodeValue());
}%></td>
<td class=tdsmall height=25 width="0">
<%
if(restaurante.getElementsByTagName("endereço").item(0).hasChildNodes()){
out.print(restaurant.getElementsByTagName("endereço").item(0).getFirstChild().getNodeValue());
}%>
</td>
<td class=tdsmall height=25 width="30"><a href="<%=request.getRequestURI()%>?act=modi&recordId=<%=restaurant.getAttributeNode("id").getNodeValue()% >"><img borda=0
altura=15 src="../../images/edit.gif" largura=15></a></td>
<td class=tdsmall height=25 width="30"><img border=0
altura=15
onClick="javascript:if(confirm(''Tem certeza de que deseja excluir este registro? A exclusão tornará o registro inutilizável?'')){window.location.href=''<%=request.getRequestURI()%> ? act=del&recordId=<%=restaurant.getAttributeNode("id").getNodeValue()%>'';}"
src="../../images/delete.gif" style="CURSOR: mão" width=15> </td>
</tr>
<%}
}%>
<% if (strOperation=="addnew"){
//Mostra o novo formato%>
<tr align="center" bgcolor="#ffffff" valign="middle">
<form name=dataform2 action="<%=request.getRequestURI()%>?act=addnewDo" method="post" onSubmit=''return checkform2(this);'' >
<td class=tdsmall height=25 width="20"></td>
<td class=tdsmall height=25>
<input nome="nome" classe=stedit
style="ALTURA: 22px; LARGURA: 150px" value="" maxlength="40" >
</td>
<td class=tdsmall height=25>
<input name="phone" class=stedit
style="ALTURA: 22px; LARGURA: 100px" value="" maxlength="20" >
</td>
<td class=tdsmall height=25>
<input name="endereço" class=stedit
style="ALTURA: 22px; LARGURA: 200px" valor="" maxlength="100" >
</td>
<td class=tdsmall height=25 width="25"><a href="javascript:if (checkform2()==false);"><img border=0
altura=15 src="../../images/editok.gif" largura=15></a></td>
<td class=tdsmall height=25 width="25"> </td>
</form>
</tr>
<% } %>
</tbody>
</tabela>
<br>
<table align=center border=0 cellpadding=0 cellpacing=2 width="95%">
<corpo>
<tr valign=centro>
<td alinhar=meio> <br>
<borda da tabela=0 cellpadding=0 cellpacing=0>
<tr>
<td>
<% if (strOperation=="addnew"){
%>
<input class=stbtm name=update onClick="javascript:if (checkform2()==false);" type=button value="Atualizar registro">
<% }outro{
if(strOperation=="modi"){
%>
<input class=stbtm name=update onClick="javascript:if (checkform()==false);" type=button value="Atualizar registro">
<%
}outro{
%>
<input class=stbtm type="button" name="Button" value="New" onClick="javascript:window.location.href=''<%=request.getRequestURI()%>?act=addnew'' ; "><%
}
} %>
</td>
<td>
<input class=stbtm type="button" name="Button" value="Return" onClick="javascript:window.location.href=''index.jsp'';">
</td>
</tr>
</tabela>
</td>
</tr>
</tabela>
<p> </p>
</div>
</body>
</html>
<LINGUAGEM DO SCRIPT=javascript>
<!--
função formulário de verificação2()
{
var Checkblank = /^(s*|( )|(.))*$/;
if (Checkblank.test(dataform2.nome.valor))
{
alert("O nome do restaurante não pode ficar vazio!");
dataform2.nome.focus();
retornar falso;
}
if (Checkblank.test(dataform2.phone.value))
{
alert("O número de telefone do restaurante não pode ficar vazio!");
dataform2.phone.focus();
retornar falso;
}
window.dataform2.submit();
}
formulário de verificação de função()
{
var Checkblank = /^(s*|( )|(.))*$/;
if (Checkblank.test(dataform.nome.valor))
{
alert("O nome do restaurante não pode ficar vazio!");
dataform.nome.focus();
retornar falso;
}
if (Checkblank.test(dataform.phone.value))
{
alert("O número de telefone do restaurante não pode ficar vazio!");
dataform.phone.focus();
retornar falso;
}
window.dataform.submit();
}
-->
</SCRIPT>
Nota: A redação deste documento não é concisa em muitos lugares, pois no processo de desenvolvimento do programa, programas excessivamente concisos muitas vezes trazem dificuldades na manutenção posterior.
Experiência de desenvolvimento:
O valor de retorno de doc.getElementsByTagName("restaurants").item(int i) é do tipo de nó. Se você não deseja chamar seu valor de atributo, não há necessidade de convertê-lo para o tipo Element. Pode ser operado diretamente. Devido a erros no desenvolvimento de materiais de referência, este sistema utiliza transformação forçada. Você pode considerar o uso do node para operar diretamente no desenvolvimento futuro.
Nem as funções trim() nem Interger.parseInt() aceitam valores nulos.
Os arquivos esquerdo e direito no Tomcat são diretórios começando no TOMCAT. Para obter detalhes, consulte webappscanyinjspuserjudge.jsp para escrever o caminho xml.
Amigos interessados no código original, entrem em contato comigo através do seguinte endereço de e-mail, [email protected]