struts1.3总结

来源:互联网 发布:手机淘宝能开网店么 编辑:程序博客网 时间:2024/06/05 15:19

1.struts概述

struts是一种web层的框架,它封装了web层数据,使编写servlet容易了许多。

2.Struts原理

 

Struts将网页传过来的数据封装到from类中,使action之后获取数据直接从from中取得,并且也定义了简单的跳转关系。至于formaction的关系,需要在struts-config.xml中配置。至于web服务器怎么知道struts的存在,需要再web.xml中配置。

3.开发流程

 

4.例子:

手动配置流程(以登陆验证系统为例):

一、首先 在Eclipse下创建一个动态Web项目,将下载好的struts1.3.10的压缩包解压之后的lib目录下的jar文件全部拷贝到对应的Web项目 的WEB-INF下的lb目录下,此时在本项目的Web App Libraries可以看到我们引进去的包。WEB-INF用于存放一些驱动包。

二、在WEB-INF目录下编写简单的login.jsp页面,body标签中的主要代码如下。


 <span style="font-size: small;"><form action="/StrutsLogin/login.do" method="post">       用户名:<input type="text" name="username"/><br/>       密码:<input type="password" name="password"/><br/>       <input type="submit" value="登陆"/>   </form></span>  


三、创建用户表单类UserForm。表单类主要用来存放数据。代码和详细注释如下。

Java代码  

 package cn.yzz.forms;     import org.apache.struts.action.ActionForm;   /**  * 用户表单类,用于填充数据  */  public class UserForm extends ActionForm {      //在这里为了规范:定义属性名时应该和JSP页面的控件名称一样      //实际只需保证set和get方法和属性名有关联 set属性名      private String username;      private String password;      public String getUsername() {          return username;      }       public void setUsername(String username) {          this.username = username;      }       public String getPassword() {          return password;       }       public void setPassword(String password) {          this.password = password;      }   }


四、编写LoginAction,继承自Action,对应于分控制器,用于处理Form提交的表单数据。

Java代码  

package cn.yzz.actions;     import javax.servlet.http.HttpServletRequest;   import javax.servlet.http.HttpServletResponse;   import org.apache.struts.action.Action;   import org.apache.struts.action.ActionForm;   import org.apache.struts.action.ActionForward;   import org.apache.struts.action.ActionMapping;    import cn.yzz.forms.UserForm;   /**  * 登陆Action,用于处理登陆请求  */   public class LoginAction extends Action{      //execute自动调用,      @Override       public ActionForward execute(ActionMapping mapping, ActionForm form,              HttpServletRequest request, HttpServletResponse response)              throws Exception {          //将Form强转为UserForm           UserForm userForm = (UserForm)form;         String username = userForm.getUsername();          String password = userForm.getPassword();           //将用户名存入request表单域中           request.setAttribute("username", username);           if("888888".equals(password))              return mapping.findForward("welcome");           else             return mapping.findForward("error");      }   }</span>  


五、在WEB-INF下新建一个名为config的文件夹,在config文件夹里面创建名为struts-config.xml文件,这是struts的配置文件,在此文件中,详细配置struts。下面是struts的详细配置信息及其注释。

Xml代码  

 <span style="font-size: small;"><?xml version="1.0" encoding="UTF-8"?>   <!DOCTYPE struts-config PUBLIC "-Apache Software Foundation//DTD struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">   <struts-config>      <!-- 配置表单 -->       <form-beans>           <!-- name为表单名字,可以随意,建议取名:表单类名的小写 -->           <!-- type用于指定表单类的全路径 -->           <form-bean name="userForm" type="cn.yzz.forms.UserForm"></form-bean>       </form-beans>      <!-- 配置action -->       <action-mappings>          <!-- path:将来访问action的uri name必须和表单名相同,用于关联某个表单 type:指定action的全路径-->          <!-- scope:指定该action对应的表单对象的生命周期为request级别 =request.setAttribute("userForm",userForm),默认为session-->         <action path="/login" name="userForm" scope="request" type="cn.yzz.actions.LoginAction">               <!-- 这里配置跳转关系 name:结果名称 path:转发页面-->              <forward name="welcome" path="/WEB-INF/welcome.jsp"></forward>              <forward name="error" path="/WEB-INF/error.jsp"></forward>         </action>       </action-mappings>   </struts-config></span> 


 

六、配置WEB-INF目录下的web.xml文件,此文件主要存放服务器的配置信息。

Xml代码  

    <span style="font-size: small;"><servlet>          <servlet-name>action</servlet-name>          <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>          <init-param>            <param-name>config</param-name>            <param-value>/WEB-INF/config/struts-config.xml</param-value>          </init-param>      </servlet>      <servlet-mapping>          <servlet-name>action</servlet-name>          <url-pattern>*.do</url-pattern>      </servlet-mapping></span>  


七、最后在WEB-INF目录下编写weicome.jsp和error.jsp页面,填入简单的信息即可。在welcome.jsp页面中主要代码如下。

Html代码  

  1. <span style="font-size: small;"><body>  
  2. 恭喜<%=((UserForm)request.getAttribute("userForm")).getUsername()%>登陆成功!  
  3. <a href="/StrutsLogin/">返回重新登陆</a>  
  4. </body></span>

 

这样,最简单的一个Struts应用就搞定了,手动配置有助于初学者了解Struts的原理。熟悉了原理之后,就可以用相对简单的MyEclipse来开发Struts了!

 

0 0
原创粉丝点击