黑马程序员技术交流社区
标题: 【重庆校区】JavaEE要毕业的看过来,基础框架总结,拿走..... [打印本页]
作者: 陈文老师 时间: 2017-11-22 10:42
标题: 【重庆校区】JavaEE要毕业的看过来,基础框架总结,拿走.....
本帖最后由 陈文老师 于 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】
作者: 854222332 时间: 2017-11-22 11:30
写得不错,赞![](static/image/smiley/yct/em36.gif)
作者: 渝鱼鱼 时间: 2017-11-22 11:58
很实用哟,收藏起来!
作者: xiongliu 时间: 2017-11-22 13:18
看起来好厉害的样子
作者: Port 时间: 2017-11-22 13:46
![](http://bbs.itheima.com//mobcent//app/data/phiz/default/26.png)
作者: 蓉妹妹 时间: 2017-11-22 16:33
学长带带我呀!!!!!
作者: 陈文老师 时间: 2017-11-22 17:16
谢谢啦,哈哈哈
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |