Algumas pessoas podem pensar que o struts não é fácil de aprender. Parece que alguns conceitos nele confundem pessoas que nunca foram expostas a ele. Escrevi este artigo para permitir que pessoas que nunca foram expostas a ele. Os struts têm uma introdução simples. É claro que a orientação é necessária para estudar os struts sistematicamente. Há muitas coisas fascinantes nisso, mas isso é uma história para outro dia.
Este caso inclui a página inicial, o login do usuário e as páginas do assistente do site. É simples assim. Não existe um conceito profundo de Struts. Ele depende principalmente da experiência prática e da compreensão do coração.
Servidor WEB usa tomcat4. Vá para http://jakarta.apache.org para baixar o struts1.1, libere o arquivo zip em c:struts, copie C:strutswebappsstruts-example.war para c:tomcat4webapps e inicie tomcat. O pacote war é lançado na pasta struts-example, exclua o pacote war e renomeie a pasta struts-example para test.
1. Altere WEB-INFweb.xml para:
<?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 -aplicativo>
<!—Este é o controlador no struts. A classe ActionServlet é responsável pela transferência de comandos do sistema. Ele lê as informações de configuração do struts-config.xml e inicia automaticamente um thread no background do servidor. Se não houver requisitos especiais (como adicionar funções de edição de linguagem), os programadores podem ignorar esta parte e simplesmente usá-la. -->
<servlet>
<servlet-name>ação</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<parâmetro de inicialização>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<carregar na inicialização>1</carregar na inicialização>
</servlet>
<!--O servlet deste sistema pode ser mapeado para um arquivo com o sufixo cool, em vez do .jspdo comum, etc. O nome do sufixo pode ser alterado para qualquer nome, é claro que o nome deve ser saudável #◎¥% ! -->
<mapeamento de servlet>
<servlet-name>ação</servlet-name>
<url-pattern>*.cool</url-pattern>
</servlet-mapping>
<!--A página inicial padrão deste sistema é index.jsp, pode haver vários, o sistema irá encontrá-lo em ordem, semelhante ao IIS-->
<lista de arquivos de boas-vindas>
<arquivo de boas-vindas>index.jsp</arquivo de boas-vindas>
</welcome-file-list>
</web-app>
2. Altere testWEB-INF struts-config.xml para:
<?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 é um conceito de struts. É essencialmente um JavaBean. Ele é usado para armazenar automaticamente os valores de cada campo no formulário da página e preencher os campos do formulário no momento apropriado. para request.getParameter ("fieldName") como o tradicional, frequentemente usado por ações em mapeamentos de ações -->
<form-feijão>
<!—Adicionaremos uma classe UserForm posteriormente para armazenar informações do usuário. -->
<form-bean name="userForm" type="test.UserForm"/>
</form-beans>
<!--Isso armazena o endereço de encaminhamento global que pode ser usado por todo o sistema, semelhante a window.location('index.jsp') e também semelhante a vários botões no controlador de TV, cor. ajuste, etc. são o fluxo de controle de aplicações web baseadas em Struts. Em circunstâncias normais, após o processamento de uma ação, ela será encaminhada para uma página JSP para exibição. Este também é o ponto chave da implementação do MVC em JSP. -->
<global-forwards>
<!--failed.cool será tratado como uma solicitação de servlet e o processamento de ação correspondente será encontrado em mapeamentos de ação. -->
<forward name="failed" path="/failed.cool"/>
<forward name="regist" path="/regist.jsp"/>
</global-forwards>
<!--Lembra da solicitação com o sufixo cool em web.xml? Eles são tratados aqui. Isso é equivalente à parte Model dos struts. A parte Model é um local mais flexível nos struts. -->
<mapeamentos de ação>
<!--Para processar a solicitação de Register.cools, o FormBean utilizado é o userForm, que é a classe test.UserForm. Quando ocorrer um erro durante o processamento, será retornado index.jsp-->.
<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. Adicione um FormBean com o caminho de classe test.UserForm A seguir está o conteúdo desta classe:
package test;
importar org.apache.struts.action.ActionForm;
classe pública UserForm estende ActionForm
{
private String name="lpw";//Nome de usuário private String ps="1111";//Senha public UserForm(){}
public void setNome(String s) {nome=s;}
public String getName() {nome de retorno;}
public void setPs(String s) {ps=s;}
string pública getPs() {return ps;}
}
4. Adicione uma subclasse de Action, o caminho da classe é testAction, o seguinte é o conteúdo desta classe:
package test;
importar java.lang.reflect.InvocationTargetException;
importar java.util.Locale;
importar javax.servlet.ServletException;
importar javax.servlet.http.HttpServletRequest;
importar javax.servlet.http.HttpSession;
importar javax.servlet.http.HttpServletResponse;
importar org.apache.struts.action.Action;
importar org.apache.struts.action.ActionError;
importar org.apache.struts.action.ActionErrors;
importar org.apache.struts.action.ActionForm;
importar org.apache.struts.action.ActionForward;
importar org.apache.struts.action.ActionMapping;
importar org.apache.struts.util.MessageResources;
importar teste.UserForm;
classe final pública RegistAction estende Action
{
execução pública ActionForward (mapeamento ActionMapping, formulário ActionForm, solicitação HttpServletRequest, resposta HttpServletResponse)
lançaException
{
Locale locale = getLocale(solicitação);
MessageResources mensagens = getResources(solicitação);
Sessão HttpSession = request.getSession();
UserForm userform = (UserForm) formulário;
//Aqui você pode chamar outras classes para realizar escrita no banco de dados ou outros julgamentos lógicos //Se o valor do nome do parâmetro passado pelo UserForm for o lpw padrão, ele encaminhará para failed.
// Este nome será pesquisado pelo endereço de url mapeado em <global-forwards> de struts-config.xml // (pode ser um caminho absoluto ou relativo).
//Lembrar? Todas as solicitações com o sufixo "cool" vão para mapeamentos de ação para encontrar // o processamento da ação correspondente. O diretório final é wuwu.jsp*/.
if("lpw".equals(userform.getName()) )
return (mapping.findForward("falhou"));
outro
return (mapping.findForward("regist"));
}
}
5. Todas as páginas novas ou modificadas a seguir são equivalentes à parte View do struts. Altere a página inicial index.jsp para:
<%@ page contentType="text/html;charset=GBK" language="java" %>.
<%@ importação de página = "teste.*" %>
<a href="overview.cool">Navegação no site</a><br>
<form action="regist.cool" método="post">
<!—O nome do campo no formulário deve ser igual ao parâmetro no UserForm, para que os dados possam ser obtidos automaticamente sem usar request.getParameter("param");-->
Usuário:<input type="text" name="name"><br>
Senha:<input type="password" name="ps"><br>
<input type=submit value="Adicionar usuário">
</form>
6. Adicione hello.jsp para navegação no site:
<h1>mapa do site</h1>A seguir está o conteúdo preenchido pelo leitor
. 7. Adicione wuwu.jsp Quando nenhum novo usuário fizer login, eles serão redirecionados para este. Página:
<%@ page contentType="text/html;charset=GBK" idioma="java" %>
<jsp:useBean id="beanlpw" class="test.UserForm" escopo="sessão"/>
Usuários existentes: <%=beanlpw.getName()%><br>
Senha: <%=beanlpw.getPs()%><br>
Nenhum novo usuário foi obtido!
8. Adicione register.jsp Quando um novo usuário fizer login, ele será redirecionado para esta página:
<%@ page contentType="text/html;charset=GBK" language="java" %>.
<jsp:useBean id="beanlpw" class="test.UserForm" escopo="sessão"/>
Nova conta de usuário: <%=beanlpw.getName()%><br>
Senha: <%=beanlpw.getPs()%>
9. Inicie o Tomcat4, digite http://localhost:8080/test/index.jsp no navegador, opere-o, você pode ver os resultados e inicialmente entender o M de As partes struts, V e C funcionam juntas. Claro, esta é a boa intenção do autor. Se os leitores estiverem confusos, aponte o erro :)