2017-05-07,周日整理

  上一周的总结任务被我犯拖延症给拖到了这一周,二期的测试考的很差,除了自己应试的技巧有问题之外,还有对已经学过的东西并没有形成一个很深刻的印象,导致动手答题时,只能得到一个模糊不准确的答案。吸取教训,确实在二期末尾这短时间很放松,没有去稳固知识点,没有去拓展知识点。上一周和这一周讲了设计模式,velocity、struts2、mybatis、spring四个框架,知识内容非常之多,学起来感觉到吃力,所以在之后,一定要继续认真对待,对于该记忆和理解的重点一定要能手写出来,一切为了面试能轻松!

1.Velocity

  velocity是一个基于java的模版引擎,将java代码和web页面分离。

  velocity引擎读取模版(.vm文件)时,直接输出模版文件中的所有文本,但以$字符开头的除外,$符号标识着一个模版变量的位置。

  模版引擎的最强大功能是内建的映像引擎查找对象信息。“.”操作符能够方便的提取任意加入到VelocityContext的对象的任何公有方法,或对象的任意属性。

  在编写模版时,可以使用VTL语言来辅助设计模版,VTL语句以#开头,变量以$开头。velocity应用于web中的步骤:1,加包。2,配置web.xml文件,添加一个<servlet>'设置VelocityViewServlet'</servlet> 和一个 <servlet-mapping>'设置相应的模版文件'</servlet-mapping>,模版文件中的数据搜索范围从page---servletContext。在使用时,将服务器端跳转到模版文件,就能在浏览器上显示已经导入好数据的页面了。

2.设计模式

  设计模式可以分为三类:创建型,结构型,对象行为型。

  mvc模式:从一开始学习java web项目编程,就是使用这种模式来编写,model是应用对象,view是视图即网页,controller是控制层即servlet,这样做可以将三者分离,提高灵活性和复用性。

  单例模式:保证一个类仅有一个实例对象,并提供访问这个实例的公有get方法。单例模式有懒汉、饿汉以及完美懒汉三种。

  工厂模式:对于要创建的类分成产品类,根据功能逐级抽象,然后创建实例的方法在工厂类中,也可逐级抽象,根据需求来产生实例。按照抽象程度可以分为:简单工厂、工厂方法、抽象工厂三种模式。

  组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。这种模式类似于N叉树的实现。即下一级的根节点是上一级的子节点。

  装饰模式:动态的给一些对象添加修饰的效果,因为是动态的添加,所以比子类更加丰富。

  代理模式:为一个对象提供一个代理,以控制对这个对象的访问。

  策略模式:定义一系列的算法,将它们封装起来,并且可以使他们相互转化。

  建造者模式:例:如果要造一个房子,房子的结构是固定的,但是却有茅草房和洋房的区别,所以房子为抽象类,具体房子的实现类继承房子类,最后由建造者来选择实现。

  观察者模式:定义对象间一对多的依赖关系,当一个对象变化时,所有依赖他的对象都得到通知而更新。

  java中的设计模式多达23种,这需要持续学习理解和在应用中熟练。

3.Struts2

  作为JAVA框架的三剑客ssh(struts2,spring,hibernate)中的一个,其中的主要特点是controller层用action来替代了servlet,并且通过配置文件来实现资源的跳转。struts2框架是一个单层框架,完成的是web前端页面和后端控制层的数据互通,核心组件是Action,拦截器等,struts2框架使用包来管理action和interceptor。action中一般可以继承ActionSupport类(有验证validate的方法),来辅助我们更好的完成action的开发。ActionContext类(当前Action的上下文)非常重要,有许多重要的方法,来获取页面数据。struts2在包配置文件中设置逻辑视图和物理视图的映射关系,<exception-mapping>设置当异常发生时,跳转到哪个逻辑视图中。

  struts2的数据流是:HttpServletRequest--->ActionContextCleanUp--->(other filters)--->ActionMapper--->FilterDispatcher--->ActionProxy--->ActionInovaction--->Interceptors--->Action--->Result--->Interceptors--->HttpServletResponse--->

  在struts2中基于表单的文件上传:必须是post方法,而且enctype="multipart/form-data",既可以利用<input type="file" name="uploadFile">来选择文件,也可以利用<s:>标签中的文件选择器。上传之后struts2会将文件保存在临时目录下,然后用io将文件输出到指定的位置。

  struts2中<result type="stream">可以用来提供下载文件。

  总之这些内容都值得去深究,先暂时了解常用的功能和概念,以后用到再去查阅相应的资料。

  

原文地址:https://www.cnblogs.com/lg-study/p/6841888.html