zoukankan      html  css  js  c++  java
  • 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>  
  • 相关阅读:
    MFC9.0 Outlook控件的标题显示无法修改
    VS2010 单文档+多视图+Outlook风格
    在VS2010中使用Outlook工具栏
    在MFC中添加用户自定义消息
    读书笔记——Windows环境下32位汇编语言程序设计(13)关于EXCEPTION_DEBUG_INFO结构体
    读书笔记——Windows环境下32位汇编语言程序设计(9)ANSII字符大小写转大写
    读书笔记——Windows环境下32位汇编语言程序设计(6)使用浮点指令进行64位除法
    读书笔记——Windows环境下32位汇编语言程序设计(5)模态对话框
    读书笔记——Windows环境下32位汇编语言程序设计(3)一些基础知识
    设置自己的RadASM颜色
  • 原文地址:https://www.cnblogs.com/spiriter88/p/7038385.html
Copyright © 2011-2022 走看看