struts1.x完整实例

struts1.x完整实例

 

1、简介

        struts是WEB程序MVC分层架构中的C,属于控制层,主要进行处理用户的请求,基于请求驱动。获取用户的请求地址并将表单中的数据封装到Form对象后交给Action进行处理。在Action中进行条用业务层处理具体的请求后将结果通过ActionMapping封装跳转地址返回给用户。struts是对servlet的再次封装,使得更加灵活高效。下面以一个登录的实例讲解struts的开发过程。

2、在新建的web工程中添加以下struts1.x  jar包

        antlr-2.7.6.jar、commons-beanutils.jar、commons-digester.jar、commons-fileupload.jar、commons-logging-1.0.4.jar、commons-validator.jar、jakarta-oro.jar、struts.jar。

3、web.xml进行如下配置

[html] view plain copy
 
 print?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
  3.   <display-name>MyStruts1Prj</display-name>  
  4.     
  5.   <servlet>  
  6.     <servlet-name>action</servlet-name>  
  7.     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>  
  8.       
  9.     <init-param>  
  10.         <param-name>config</param-name>  
  11.         <param-value>/WEB-INF/conf/struts-config.xml</param-value>  
  12.     </init-param>  
  13.     <init-param>  
  14.         <param-name>debug</param-name>  
  15.         <param-value>3</param-value>  
  16.     </init-param>  
  17.     <init-param>  
  18.         <param-name>detail</param-name>  
  19.         <param-value>3</param-value>  
  20.     </init-param>  
  21.       
  22.     <load-on-startup>0</load-on-startup>  
  23.   </servlet>  
  24.     
  25.   <servlet-mapping>  
  26.     <servlet-name>action</servlet-name>  
  27.     <url-pattern>*.do</url-pattern>  
  28.   </servlet-mapping>  
  29.     
  30.   <welcome-file-list>  
  31.     <welcome-file>index.jsp</welcome-file>  
  32.   </welcome-file-list>  
  33. </web-app>  


4、新建登陆页面login.jsp

[html] view plain copy
 
 print?
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <%  
  7.     String basePath = request.getContextPath();  
  8. %>  
  9. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  10. <title>登陆页面</title>  
  11. </head>  
  12. <body>  
  13.     <h1>登陆页面</h1>  
  14.     <hr>  
  15.     <form action="<%=basePath %>/login.do" method="post" >  
  16.         userName:<input id="userName" name="userName" type="text" /><br>  
  17.         passWord:<input id="passWord" name="passWord" type="password" /><br>  
  18.         <input type="submit" id="submit" name="submit" value="submit" />  
  19.     </form>  
  20. </body>  
  21. </html>  


5、新建登陆成功后的跳转页面loginSucces.jsp

[html] view plain copy
 
 print?
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  7. <title>登陆成功页面</title>  
  8. </head>  
  9. <body>  
  10.     <h1>欢迎[<%=request.getAttribute("userName") %>]登陆成功!</h1>  
  11. </body>  
  12. </html>  


6、新建登陆失败后的跳转页面loginError.jsp

[html] view plain copy
 
 print?
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  7. <title>登陆失败页面</title>  
  8. </head>  
  9. <body>  
  10.     <h1>登陆失败!</h1>  
  11. </body>  
  12. </html>  


7、新建LoginActionForm.Java

[java] view plain copy
 
 print?
  1. package com.lanp.webapp.form;  
  2.   
  3. import org.apache.struts.action.ActionForm;  
  4.   
  5. /** 
  6.  * 封装登陆表单数据的FORM类 
  7.  * @author LanP 
  8.  * @since 2012年4月11日23:07:09 
  9.  * @version v1.0 
  10.  */  
  11. @SuppressWarnings("serial")  
  12. public class LoginActionForm extends ActionForm {  
  13.     private String userName;  
  14.       
  15.     private String passWord;  
  16.       
  17.     public String getUserName() {  
  18.         return userName;  
  19.     }  
  20.     public void setUserName(String userName) {  
  21.         this.userName = userName;  
  22.     }  
  23.     public String getPassWord() {  
  24.         return passWord;  
  25.     }  
  26.     public void setPassWord(String passWord) {  
  27.         this.passWord = passWord;  
  28.     }  
  29. }  


8、新建LoginAction.java

[java] view plain copy
 
 print?
  1. package com.lanp.webapp.action;  
  2.   
  3. import javax.servlet.http.HttpServletRequest;  
  4. import javax.servlet.http.HttpServletResponse;  
  5.   
  6. import org.apache.struts.action.Action;  
  7. import org.apache.struts.action.ActionForm;  
  8. import org.apache.struts.action.ActionForward;  
  9. import org.apache.struts.action.ActionMapping;  
  10.   
  11. import com.lanp.webapp.form.LoginActionForm;  
  12. /** 
  13.  * 处理登陆的Action类 
  14.  * @author LanP 
  15.  * @since 2012年4月11日23:07:09 
  16.  * @version v1.0 
  17.  */  
  18. public class LoginAction extends Action {  
  19.   
  20.     @Override  
  21.     public ActionForward execute(ActionMapping mapping, ActionForm form,  
  22.             HttpServletRequest request, HttpServletResponse response)  
  23.             throws Exception {  
  24.         String path = "error";  
  25.         LoginActionForm loginActionForm = (LoginActionForm)form;  
  26.         String userName = loginActionForm.getUserName();  
  27.         String passWord = loginActionForm.getPassWord();  
  28.           
  29.         if(null != userName && "admin".equals(userName) && null != passWord && "admin".equals(passWord)) {  
  30.             path = "success";  
  31.             request.setAttribute("userName", userName);  
  32.         } else {  
  33.             path = "error";  
  34.         }  
  35.         return mapping.findForward(path);  
  36.     }  
  37.       
  38. }  


9、配置struts-config.xml

[html] view plain copy
 
 print?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">  
  3.   
  4. <struts-config>  
  5.     <form-beans>  
  6.         <form-bean name="loginActionForm" type="com.lanp.webapp.form.LoginActionForm">  
  7.         </form-bean>  
  8.     </form-beans>  
  9.   
  10.     <action-mappings>  
  11.         <action path="/login"  
  12.             type="com.lanp.webapp.action.LoginAction"  
  13.             name="loginActionForm"  
  14.             scope="request">  
  15.             <forward name="success" path="/jsp/loginSucces.jsp" />  
  16.             <forward name="error" path="/jsp/loginError.jsp" />  
  17.         </action>  
  18.     </action-mappings>  
  19. </struts-config>  
原文地址:https://www.cnblogs.com/spiriter88/p/7038385.html