本帖最后由 陈文老师 于 2017-11-23 13:28 编辑
要毕业了?要找工作啦?开不开心?紧不紧张?回首黑马这半年,感觉自己是不是被自己的努力所感动,然而仔细想想学了很多,马上要出去找工作了却脑子一片空白。重庆JavaEE就业2期龙师兄毕业后在寝室闭关修炼半个月(当然不建议大家这样做,一定要趁着你刚毕业,什么都知道赶紧出去找工作,越到后面越忘得多)个人总结了咱们6个月以来所学的一些基础框架和淘淘项目的一些核心技能点,要复习的,赶紧看看吧!但是答应我,看完后赶紧出去面试哟~~~不要怂,就是干!!!
【基础框架篇】-【Struts2】
1 Struts2 1.1 什么是struts2? 1) Struts2是一个基于MVC设计模式的web应用框架,它本质上相当于一个servlet,在mvc设计模式中,struts2作为控制器来简历模型与视图的数据交互 2) Struts2的架构流程(重要*****):
3) 1.2 为什么要使用struts2? 1) Struts2的使用相对于原生的servlet,采用属性驱动、模型驱动接收参数,配置action代替原来的servlet完成逻辑操作,配置result返回页面。 2) 1.3 怎样使用struts2框架? 1) 导入架包 2) 配置web.xml,需要配置一个StrutsPrepareAndExecuteFilter(前端控制器)才可以使用struts2框架 3) Struts.xml配置<package><action> 4) 创建action来完成业务操作 5) Struts2的执行流程 1. 当通过浏览器发送一个请求 2. 会被StrutsPrepareAndExecuteFilter拦截 3. 拦截后会调用struts2框架默认的拦截器完成部分功能 4. 在执行action中操作 5. 根据action中方法的执行结果来选择页面跳转result视图 6) 创建一个action类(有三种方式) 1. 直接创建一个pojo,耦合低,但是所有的功能都需要自己实现 2. 创建一个action的实现类,耦合低,还是需要自己来完成功能 3. 创建一个类继承actionSupport,推荐使用,具有丰富的功能,耦合度高 7) 配置访问方式(三种) 1. 直接通过<action>标签来配置,需要指定method,默认是执行execute方法 2. 简化访问方式,可以使用*通配符类访问,缺点:使用过多的*导致代码难以阅读 3. 动态方法调用,需要自己开启<contentname=”DynamicMethodInvocation” value=”true”>。不推荐使用 8) 接收参数(两种) 1. 属性驱动:参数名和属性名一致,相应的set方法 2. 模型驱动:需要action实现modelDriven,重写getModel方法 9) 获取servletAPI的方式(两种) 1. 通过servletActionContext获取 2. 通过注入的方式获取 10) Ognl(对象导航图及语言)表达式:我们在struts2中使用ognl的作用是获取值栈中的数据,可以使用ognl+valueStack达到在页面上来获取相关的数据(需要再页面写<%@taglib%>标签,<s:property value=”表达式”>取值) 11) ValueStack(值栈):使用值栈的主要目的是为将我们的action中产生的数据携带到页面上 1. 原理:当客户端发送一个请求,服务器就会创建一个action来处理请求,struts2中的action是多例的,每一次请求都会创建一个新的action,所以它不存在线程安全问题,一个valueStack对应一个action,valueStack贯穿了整个action的生命周期。 2. 两个部分组成: a) compoundRoot,是一个ArrayList,用来存储action的相关数据 b) context,是一个map,主要用来存储一些引用,要从context中获取数据需要加“#” 12) 获取valueStack方式(两种) 1. 直接从request中获取 2. 从actionContext中获取 13) Action的拦截器 1. 基于Aop(面向切面)思想:通过代理来实现 2. Struts2的拦截器主要是拦截action的操作,在action的执行前或者执行后进行一些其他的功能操作,相当于是给其加强 3. 拦截器链:依次访问的连接器形成的一条链,执行过程: a) 请求访问action时,被strutsParpareAndExcute拦截, b) 执行其dofilter方法内执行execute.executeAction(), c) 再执行dispatcher.serviceAction(),在这个方法中会创建action的代理对象 d) 通过proxy去执行proxy.execute() e) 在execute方法里 return invocation.invoke() f) 在invoke()方法中回去加载我们配置文件,将配置文件中的所有拦截器得到进行遍历 g) 在每一个拦截器的interceptor方法内,又调用defaultActionInvocation的invoke()方法,其实就是一个递归调用。 14) Struts的文件上传 1. 注意事项(三个) a) 表单提交方式(method=“post”) b) 表单中必须要有一个<input type=”file”> c) 表单中必须设置enctype=”multipart/form-data” d) 服务端fileupload.jar 2. Struts上传文件有默认大小(2097152):修改在stuts.xml中配置<context name=”struts.multipart.maxtSize” value=””> 15) Struts2处理异步ajax请求 1. 通过httpservletresponse响应数据 2. 使用struts2的=框架的json插件来完成ajax操作 16) Struts2注解开发 1. 开启注解扫描<constantname=”locatord” value=””> 【基础框架篇】-【SpringMVC】 |