struts.* 基础(by cju)

      自己一星期总结:2008-10-26 04:45下午
struts
1.Struts的基本流程MVC2(model-view-contrller)

                        from(数据业务model)
                          |
   IE(浏览器)----总调(ActionListener)----Action(C2)----Service(javabean)
                          |                  |
                          |               回到总调(ActionListener)
                      config.xml和.jsp

    model分为业务model、数据model
    Struts开发
           (1)、 创建表单   extends  ActionForm
           (2)、 登记表单   struts-config.xml
           (3)、 创建分管经理 extends  Action(覆盖 execute() 方法)
           (4)、 定义流程 struts-config.xml

   scope="request"  解释 把表单缓存在仓库Request中
 
   ***注意用struts开发时要配置web.xml 配置如下
 
        <web-app>
            <servlet>
                <servlet-name>controller</servlet-name>
                <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
            </servlet>
            <servlet-mapping>
                <servlet-name>controller</servlet-name>
                <url-pattern>*.do</url-pattern>
            </servlet-mapping>
        </web-app>

2.文件上传
     用到FormFile
     具体的操作:
                FormFile photo = user.getPhoto();//获取user中的图片流
  InputStream is=photo.getInputStream();
  
  String path = application.getRealPath("photo");//路径
  FileOutputStream fos = new FileOutputStream(path+"/"+user.getName()+".gif");
  
                int i;
  while ((i=is.read())!=-1){
   fos.write(i);
  }
  
  fos.close();
  is.close();
    
3.中文乱码处理方案
     (1)利用filter过滤器
     (2)利用request.setCharacterEncoding("GBK");进行强转
     (3)利用Struts进行转换(模板模式)(例子留言板3)
              方法:继承类RequestProcessor
              原因:RequestProcessor是在Form时会调用的九个方法之一,覆盖这个方法可以进行转换
         注:在运用图片等上传时request.setCharacterEncoding("GBK");进行中文转换
    
4.设计模式
     java设计模式一共有23种
     1,模板模式(由父类定义流程,子类去覆盖)应用很广

5.动态表单(重点)
     有人建议所有的表单都可以做成动态表单,可以不要Form
      动态表单DynaActionForm
      <form-beans>
        <form-bean  name="loginForm"  type="org.apache.struts.action.DynaActionForm">
        <!—在下面制定Form的属性 -->
        <form-property  name="email"  type="java.lang.String "/>
        <form-property  name="password"  type="java.lang.String "/>
        <!—可以为属性设置默认值 -->
        <form-property  initial="false"  name="rememberMe"  type="java.lang.Boolean "/>
      </form-bean>
  <form-beans>

6.程序设计应尽量降低耦合度,
     最好能使程序片分开互不影响,

    构架的目的:降低层与层之间的依赖性,容易变化的依赖稳定的。

7.校验
   校验有两种(1)用Form.validate()服务器端的校验
             (2)配置文件脚本
   注:一般的校验都交由客户端处理(javascript)

8.实体关系(重点)
   实体关系分为   1:1 /1:n/m:n  三种,注意体会,学会利用关系进行建sql表和处理对象
    
9.表达式和jstl(重点自学)
   1.表达式语言EL
        基本             获取本javabean中的对象的值   ${user.name}
                         Empty操作符  ${empty a}  a不存在返回true
                         判断   ${A?B:C}
                         page内的属性名和它的值进行映射   ${pageScope.user}
                         对请求范围内的属性名和值进行映射 ${requestScope.name}
                         对会话范围内的属性名和值进行映射 ${sessionScope.name}
   2.标准标签库jstl
       Core标签库
          一般用途<c:out><c:set><c:remove><c:catch>
          条件标签<c:if><c:choose><c:when><c:otherwise>
          迭代标签<c:forEach><c:forTokens>
       URL相关的标签<c:import><c:url><c:redirect><c:param>
       I18N标签库和国际化标签(不太熟的)
           

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值