毕设之每天总结 二

原创 2012年03月28日 11:29:24

突然发现原来request中设置的属性可以是对象属性...然后在网页上用object.属性就能调用了...

那以后获取detail的entity只需要request.setAttribute('entity',entity);就行了


问题:

1.java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]

	解决方法:数据库中的时间类型改成datetime
	

学习:

模板方法设计模式

模板方法模式(Template Method Pattern),定义一个操作中的算法骨架,而将一些实现步骤延迟到子类当中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。

模板方法模式是比较简单的一种设计模式,但是它却是代码复用的一项基本技术,在类库中尤其重要,它遵循“抽象类应当拥有尽可能多的行为,应当拥有竟可能少的数据“的重构原则。作为模板的方法要定义在父类中,在方法的定义中使用抽象的方法,而只看父类的抽象方法是根本不知道怎样处理的,实际具体处理的是子类,在子类中实现具体功能,因此不同的子类执行将会得出不同的实现结果,但是处理流程还是按照父类定制的方式。这就是模板方法的要义所在,定制算法骨架,让子类具体实现。

--------------------------------《软件秘籍--设计模式那点事》

今天,因为需要把论文信息以表格的形式一条一条的列举出来,于是就用到了老师提供的GenericListAction,看了下源码继承的是AbstractController类。看过源码之后发现AbstractController就是模板方法模式的一个例子。

AbstractController是WebContentGenerator的子类,并实现了Controller接口。AbstractController是最重要的Controller接口实现之一 ,它提供了一些很基本的功能特征,例如生成HTTP协议的缓存头标数据,设定GET/POST动作等等。
    考察一下AbstratorController所在的类层次:

java.lang.Object
|_ org.springframework.context.support.ApplicationObjectSupport
  |_ org.springframework.web.context.support.WebApplicationObjectSupport
    |_   org.springframework.web.servlet.support.WebContentGenerator
        |_ org.springframework.web.servlet.mvc.AbstractController 

    AbstratorController从其超类中继承许多属性,这些属性可以通过配置文件注入:
* supportedMethods :指明本Controller应该接受的方法,缺省值“GET,POST”,开发人员也可以自己修改本属性以反应欲支持的方法。若一个请求带有该方法设定,但Controller并不支持,那么这个信息将被通知客户。
* requiresSession:指明本Controller是否需要一个HTTP会话以完成它的工作,若Contrller在接收一个请求时并没有HTTP会话存在,那么将抛出一个ServletException。本属性的缺省值是false。
* synchronizeSession:若在客户的HTTP会话中,需要以同步方式处理Controller,则使用本属性。
* cacheSeconds:当需要Controller为客户的HTTP响应生成一个缓存指令时,可以为cacheSeconds指定一个正整数。本属性缺省值为-1,即不设定缓存。
* useExpiresHeader:指示Controller为客户的HTTP响应指定一个兼容HTTP 1.0版本中的"Expires"头标数据。本属性缺省值是true。
* useCacheHeader:指示Controller为客户的HTTP响应指定一个兼容HTTP 1.1版本中的"Cache-Control"头标数据。本属性缺省值是true。
   阅读一下AbstractController的源代码:


package org.springframework.web.servlet.mvc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.support.WebContentGenerator;
import org.springframework.web.util.WebUtils;
public abstract class AbstractController extends WebContentGenerator implements Controller {
    private boolean synchronizeOnSession = false;
    public final void setSynchronizeOnSession(boolean synchronizeOnSession) {
        this.synchronizeOnSession = synchronizeOnSession;
    }
    public final boolean isSynchronizeOnSession() {
        return synchronizeOnSession;
    }
    public final ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
              throws Exception {
        checkAndPrepare(request, response, this instanceof LastModified);
        if (this.synchronizeOnSession) {
              HttpSession session = request.getSession(false);
              if (session != null) {
                  Object mutex = WebUtils.getSessionMutex(session);
                  synchronized (mutex) {
                      return handleRequestInternal(request, response);
                  }
              }
        }
        
        return handleRequestInternal(request, response);
    }
    protected abstract ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
      throws Exception;
}     


从上述代码可以看出,AbstractorController的工作流程如下:
1.DispatcherServlet调用handleRequest方法;
2.检查被支持的方法(GET/POST/PUT之一),若不支持则抛出ServletException;
3.若需要发起一个session,则尝试获取一个session,若获取不到,则抛出ServletException; 
4.根据cacheSeconds属性,设定缓存头标的数据;
5.调用受保护的抽象方法handleRequestInternal,这个方法应由AbstractController的子类提供实际的功能实现,并返回ModelAndView对象。
    
    当开发人员使用AbstractController作为自己所设计的控制器的基类时,只需覆盖handleRequestInternal(HttpServletRequest, HttpServletResponse)方法即可,并返回一个ModelAndView对象,示例如下:
package samples;
public class SampleController extends AbstractController {
public ModelAndView handleRequestInternal(
HttpServletRequest request,
HttpServletResponse response) throws Exception {
    ModelAndView modelAndView = new ModelAndView("hello");
    modelAndView.addObject("message", "Hello World!");
    return modelAndView;
}
} 
父模板多行为,少数据,具体实现handleRequest方法交给继承自己的子类去完成。处理逻辑又父模板控制,定制算法骨架,让子类具体实现。

典型的模板方法模式。SimpleFormController也是同样的原理。只不过需要子类实现的方法不一样而已

Python数据分析之pandas学习(二)

有关pandas模块的学习与应用主要介绍以下8个部分: 1、数据结构简介:DataFrame和Series 2、数据索引index 3、利用pandas查询数据 4、利用pandas的DataFram...
  • xx5595480
  • xx5595480
  • 2017年04月15日 11:29
  • 707

毕设 cocos2d-x的总结

今天答辩结束。毕设题目是基于cocos2d-x的消除游戏的实现。 cocos2d是一个开源的游戏引擎,而cocos2d-x是其中一个由触控科技主导的分支。其中x代表跨平台。跨平台 初始化cocos...
  • u010743187
  • u010743187
  • 2016年06月08日 03:12
  • 279

Java 学习经验总结

1 开始阶段第一阶段主要就是补充基础知识,这一块没有什么好办法,基础知识就是得多看基础书籍,多看教学视频,多敲敲代码,尽管不能将每个小例子都得手敲一遍,起码得把一些关键的例子敲一遍,其他的可以拷贝然后...
  • lllliulin
  • lllliulin
  • 2016年06月21日 23:15
  • 489

毕设之每天总结 三【12.03.30】

A类: /** * @author zfss Email: zfss2012@gmail.com * @version Date: 2012-3-19,Time: 下午09:30:23 *...
  • BXFTYT
  • BXFTYT
  • 2012年03月30日 16:57
  • 473

android毕设(1)

1.android 入门 1. Android状态学习 Activity是由Activity栈进管理,当来到一个新的Activity后,此Activity将被加入到Activity栈顶,之前的Acti...
  • u014698349
  • u014698349
  • 2017年04月19日 10:28
  • 248

毕设之每天总结 四

问题: _1.java.io.FileNotFoundException: c:\piec.www.log (拒绝访问。)   解决方法:在c盘下创建piec.www.log 买...
  • BXFTYT
  • BXFTYT
  • 2012年04月07日 23:00
  • 335

2017/6/6日-本科毕设那些事

6月6日第五组第一个答辩,我的本科毕业设计答辩结束了,它和我预想的差距很大,答辩结束后整个人都不好了,它甚至影响了毕业晚会、聚餐、拍照的心情。为什么这样说?因为自己想拿优秀毕设,这也是导师所期望的。至...
  • Bluechalk
  • Bluechalk
  • 2017年05月11日 20:22
  • 865

java毕设项目源码

本人整理了一些学习过程中开发的java项目,项目名称如下: 1.客户关系管理系统          工作区间:D:\develop\MyEclipse10\ProjectDemo          ...
  • HuaSir004
  • HuaSir004
  • 2017年12月28日 00:12
  • 218

Android毕设总结(基于Android的金融软件系统)

界面上: 1,界面采用了一贯的viewpager+radiogroud。通过寻找滑动到边缘的规律设置滑动到边际时,弹出DrawerLayouy(侧边导航栏)。代码一中是如何实现侧滑出现导航栏。 2,在...
  • sinat_20259781
  • sinat_20259781
  • 2017年06月15日 12:22
  • 494

2014 android毕设代做 代做Android毕设 安卓毕设

最近略有闲暇。 看到部分老友帮忙做毕业设计。 一来可以锻炼下小技能,二来可以得点零花小钱。 心遂小动,跃跃欲试。 毕设这件事情,个人认为还是自己做的好。 不过每个人都有各种各样的原因不能自己完...
  • Singleton1900
  • Singleton1900
  • 2014年04月23日 16:18
  • 5248
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:毕设之每天总结 二
举报原因:
原因补充:

(最多只允许输入30个字)