梁建全 [email protected] (不要使用qq)
--------------------------------------------------------
1.Struts2总结
--------------第一天--------------------
1)了解Struts2主要工作流程和体系结构
a.体系结构
Struts2框架是MVC设计模式的一种实现.
C控制器部分:StrutsPrepareAndExecuteFilter,Action
M模型部分:Action属性,拦截器组件(Service,DAO,POJO)
V视图部分:Struts2标签,Result组件,(JSP组件)
b.主要工作流程
--首先浏览器发送请求,请求到达Struts2 Filter主控制器.
--控制器进行请求的过滤,如果是Action请求(/login.actoin,/login).
根据struts.xml配置调用Action.
如果是其他请求,控制器放过,执行所需的JSP或Servlet等处理
--是Action请求,则调用拦截器,Action,Result组件等一系列处理
调用拦截器执行前期处理,例如将请求参数给Action属性赋值等
调用Action的execute业务方法处理,返回一个String视图标识
根据视图标识调用Result,利用JSP将标签和EL表达式等解析,
生成一个HTML响应信息
--控制器将生成的HTML响应信息输出
*2).掌握Struts2的基本使用
a.添加Struts2开发包
b.在web.xml配置StrutsPrepareAndExecuteFilter控制器
c.在src下添加struts.xml配置文件
d.根据需求编写以下组件
编写POJO类
编写DAO类
编写Action类
定义Action属性,根据需求判断出input和output
定义execute()方法,编写业务根据input计算output属性值
e.在struts.xml配置Action组件
f.在struts.xml配置Result组件
-----------------第二天-------------------
1)了解ValueStack结构和OGNL技术
ValueStack是Struts2中用于存储请求相关数据的对象.
在页面显示数据需要从ValueStack获取.Struts2标签利用OGNL
技术获取.
(参考图valuestack.jpg)
*2)掌握Struts2常用标签的使用
debug,property,iterator,if...else
form,radio,checkbox,checkboxlist,select,textfield,password等
<input type="text" value="${name}"/>
<s:textfield name="name"/>
Action--> List<Emp> emps--->id,name,salaray
<s:iterator value="emps" var="e">
<li>
<s:property value="#e.id"/>
</li>
</s:iterator>
<s:iterator value="emps">
//当前Emp对象当栈顶
<li>
<s:property value="id"/>
</li>
</s:iterator>
//当前Action对象当栈顶
----------------第三天-------------------
*1)掌握Action组件的相关使用
a.Action如何使用session,request,application等对象
利用ActionContext,ServletActionContext工具类(Action之外应用)
利用Aware接口方式注入(Action中推荐使用)
b.Action通配符配置
利用一个Action处理多个请求,简化struts.xml配置信息
c.Action属性注入
利用Action配置为Action属性指定一个值.
<action class="tarena.ListAction">
<param name="size">5</param>
</action>
--------------------第四天--------------------------
1)了解Result组件原理
public class DispatcherResult implements Result{
private String location;//jsp请求地址
//setter,getter
public void execute(ActionInvocation invocation){
ValueStack vs = invocation.getStack();
//Result处理逻辑
HttpServletRequest req = ServletActionContext.getRequest();
HttpServletResponse res = ServletActionContext.getResponse();
req.getRequestDispatcher(location).forward(req,res);
}
}
*2)掌握常用的几种Result
a.result使用格式
<result type="result类型">
</result>
b.常用result类型
--JSP响应
dispatcher:以转发方式调用JSP组件
redirect:以重定向方式调用JSP组件
--Action响应
chain:以转发方式调用下一个Action
redirectAction:以重定向方式调用下一个Action
--Stream响应
stream:以字节流方式将Action一个InputStream属性输出
<action name="image" class="tarena.ImageAction">
<result name="success" type="stream">
<param name="inputName">imageStream</param>
</result>
</action>
--JSON响应
json:可以将Action中的属性以json格式返回.用于响应ajax请求
使用前需要一些准备工作;
第一:需要引入struts-json-plugin.jar扩展包
第二:将package继承json-default
输出Action中的一个属性
<result type="json">
<param name="root">属性名</param>
</result>
输出Action中的多个属性
<result type="json">
<param name="includeProperties">属性名1,属性名2</param>
</result>
输出Action中的所有属性
<result type="json"></result>
---------------第五天-------------------------
1)了解拦截器原理
Struts2将一些共同或者重复利用功能,封装成一系列拦截器组件.
public class MyInterceptor implements Interceptor{
public String intercetpor(ActionInvocation invocation){
//拦截器功能代码
}
}
*2)学会自定义拦截器
a.编写一个拦截器实现类,实现Interceptor接口及其约定方法
b.在struts.xml中声明拦截器定义
c.引用拦截器
为某一个Action组件指定拦截器
<action ...>
<interceptor-ref name="拦截器名1"/>
<interceptor-ref name="拦截器名2"/>
</action>
为所有Action组件指定拦截器
<default-interceptor-ref name="拦截器名"/>
*3)学会内置拦截器使用(fileupload拦截器)
a.Action定义
public class UploadAction{
private File mf;//接收上传文件内容,路径和名字都是临时的
private String mfFileName;//接收上传文件真实名称
private String mfContentType;//接收上传文件真实类型
//setter,getter
public String execute(){
//将临时文件mf信息,复制到目标位置
}
}
b.JSP定义
<form method="post" enctype="multipart/form-data">
<input type="file" name="mf"/>
</form>
c.fileUpload拦截器原理
当请求提交表单信息后,控制器调用fileupload拦截器,该拦截器使用
commons-fileupload.jar组件,将上传文件信息解析出来,放到
服务器的一个临时目录下.并将数据给Action的属性赋值.
然后调用Action的execute方法.
最后再次调用fileupload拦截器,将临时目录下的文件删除.
注意:默认defaultStack以包含fileupload拦截器
============================================
2.Hibernate总结
--------------------第一部分------------------------
1)了解Hibernate框架原理
对JDBC技术的封装,基于ORM设计思想.
主要用于数据库操作,构建应用程序的数据访问层(持久层).
*2)掌握利用Hibernate对单表进行操作
添加:session.save(obj);
删除:session.delete(obj);
更新:session.update(obj);
session.saveOrUpdate(obj);
查询:按主键做条件查询
session.get(),session.load()
默认事务没有自动提交,需要手动控制.
-----------------第二部分----------------
*1)Hibernate基本特性
a.延迟加载
使用时注意避免no session or session closed异常.
session.load,query.iterator,关联属性getter
b.一级缓存
保持Session一致性.同一个session访问同一个对象多次.
采用ThreadLocal处理机制,将Session与当前线程绑定
c.对象持久性
持久对象在事务提交时,会自动与数据库同步数据.
与session发生关系的对象.
2)Hibernate高级特性
a.二级缓存
b.查询缓存
c.互斥锁
---------------第三部分-----------------
1)关系映射
一对多,多对一,多对多,继承,一对一
2)其他映射
组件映射
---------------第四部分---------------
1)Hibernate查询
*a.HQL查询
"from Emp" 返回List<Emp>
"select name,salary from Emp"返回List<Object[]>
"select name from Emp"返回List<String>
HQL与SQL相似,不同点如下:
--不支持select *
--不支持join... on语句
b.Criteria查询(了解)
c.Native SQL查询(了解)
==============当当项目描述=================
数据库dangdang.sql导入过程
a.进入mysql 控制台
b.create database dangdang
c.use d
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
达内项目 当当网 基本功能 (489个子文件)
Book.class 3KB
ImageUtil.class 3KB
Order.class 3KB
Category.class 3KB
BookListAction.class 3KB
User.class 3KB
Product.class 3KB
Cart.class 3KB
HibernateUtil.class 2KB
ReceiveAddress.class 2KB
TestItem.class 2KB
TestCategory.class 2KB
Item.class 2KB
HibernateProductDAO.class 2KB
CartListAction.class 2KB
ImageAction.class 2KB
UserServiceImpl.class 2KB
NewsAction.class 1KB
TransactionInterceptor.class 1KB
HibernateCategoryDAO.class 1KB
BaseAction.class 1KB
CategoryAction.class 1KB
HibernateUserDAO.class 1KB
RegisterAction.class 1KB
ValidEmailAction.class 1KB
MD5Util.class 1KB
BuyAction.class 1KB
CategoryProduct.class 1KB
CartFactory.class 1022B
CartItem.class 1005B
TestLog4j.class 907B
UUIDUtil.class 804B
Constant.class 733B
EmailUtil.class 627B
BaseDAO.class 526B
ProductDAO.class 447B
CartService.class 425B
CategoryDAO.class 302B
UserDAO.class 293B
UserService.class 225B
.classpath 2KB
book.css 29KB
book.css 25KB
unite_header20100419.css 20KB
second.css 20KB
comm_answer.css 19KB
register_login.css 14KB
book_head090107.css 13KB
login.css 13KB
list.css 10KB
shopping_vehicle.css 9KB
shopping_head.css 5KB
booksaleslist.css 5KB
page_bottom.css 3KB
dangdang.css 2KB
public_footer090310.css 2KB
public_footer.css 2KB
research.css 2KB
secBook_Show.css 1KB
navi.css 1KB
pubsug090107.css 555B
Thumbs.db 193KB
Thumbs.db 48KB
Thumbs.db 38KB
Thumbs.db 19KB
Thumbs.db 16KB
Thumbs.db 10KB
Thumbs.db 8KB
Thumbs.db 7KB
Thumbs.db 6KB
Thumbs.db 6KB
Thumbs.db 6KB
Thumbs.db 5KB
ancz081216_button05.gif 25KB
xssj_banner.gif 8KB
d_introduce.gif 5KB
ddnewhead_logo.gif 4KB
cheap4.gif 4KB
cheap3.gif 4KB
cheap2.gif 4KB
cheap1.gif 3KB
logo.gif 3KB
logo.gif 3KB
window_loading.gif 2KB
book_logo.gif 2KB
back_window.gif 2KB
title_bg.gif 2KB
pic_myshopping.gif 2KB
butt_balance.gif 2KB
ddb_1.gif 2KB
label3.gif 1KB
book_dangdang.gif 1KB
bang.gif 1KB
ddb_2.gif 1KB
r-r3new.gif 1KB
validate.gif 1KB
validate.gif 1KB
validate.gif 1KB
dot_sale.gif 1KB
button_write_first.gif 1KB
共 489 条
- 1
- 2
- 3
- 4
- 5
资源评论
kaka200902
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功