struts1+ hibernate3
TRANSCRIPT
第 4页
邓文俊 ([email protected]) 清华大学教育技术研究所
Struts 是一个基于 MVC 的框架。
An open source framework for building Servlet/JSP based web applications based on the Model-View-Controller (MVC) design paradigm
第 7页
邓文俊 ([email protected]) 清华大学教育技术研究所
Struts 是一个基于 MVC 的
现场报名处
报名网站
学校封装
考试
1
2
3
框架:
1 、完成一项工作;
2 、定义一个流程;
3 、包含若干组件。
框架
第 8页
邓文俊 ([email protected]) 清华大学教育技术研究所
Struts 是一个基于 MVC 的
现场报名处
报名网站
学校封装
考试
1
2
3
框架:
1 、完成一项工作;
2 、定义一个流程;
3 、包含若干组件。
框架
考研
网报,现场报,考试
网站,报名处,学校
第 10页
邓文俊 ([email protected]) 清华大学教育技术研究所
Struts 是一个基于 MVC 的
现场报名处
报名网站
学校封装
考试
1
2
3
框架
框架 代码框架
工作 程序
流程 设计模式
组件 对象
第 11页
邓文俊 ([email protected]) 清华大学教育技术研究所
Struts 是一个基于 MVC 的
现场报名处
报名网站
学校封装
考试
1
2
3
框架
+网上报名()+现场报名()+考试()
考研
+提供个人信息()
-个人信息
人
+安排考场()+监考()+改卷()
学校
+照相()+收费()+封装并快递报名信息()
报名点
+审核个人信息()+安排考点()+安排报名点()
国家行政部门
应届 非应届
1
1
1
*
1
*
1
*
框架 代码框架
工作 程序
流程 设计模式
组件 对象
第 13页
邓文俊 ([email protected]) 清华大学教育技术研究所
Struts 是一个基于 的框架MVC
MVC :
•View 显示
•Control 控制、分发
•Model 内容、数据
第 14页
邓文俊 ([email protected]) 清华大学教育技术研究所
Struts 是一个基于 的框架MVC
MVC :
•View 显示
•Control 控制、分发
•Model 内容、数据
V吃
M食物
C分发食物
食堂
你菜 厨师
打饭打菜的师傅
打饭打菜的师傅
打饭打菜的师傅
窗口一
窗口二
窗口三
第 15页
邓文俊 ([email protected]) 清华大学教育技术研究所
Struts 是一个基于 的框架MVC
MVC :
•View 显示
•Control 控制、分发
•Model 内容、数据
MVC 框架:
•工作:根据浏览器要求,获取并显示数据。
•流程:访问请求流分发请求分获取数据获显示数据
•组件
●View
●Control
●Model
第 16页
邓文俊 ([email protected]) 清华大学教育技术研究所
Struts 如何实现 MVC 框架
ClientBrowse
ActionServlet
JSP
Action
Data
ActionForm
Request
Response
填充
获取/填充
Request
获取
获取
Request
1
2
3
4
5
8
6
9
返回
7
V
C
M
第 17页
邓文俊 ([email protected]) 清华大学教育技术研究所
我需要做什么?
ClientBrowse
ActionServlet
JSP
Action
Data
ActionForm
Request
Response
填充
获取/填充
Request
获取
获取
Request
1
返回
Web.xml
2
Struts-config.xml3
4
第 19页
邓文俊 ([email protected]) 清华大学教育技术研究所
我需要做什么?①……
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/home/struts/config/struts-config.xml
</param-value>
</init-param>
</servlet>
……
<servlet-mapping>
<servlet-name> action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
……
第 20页
邓文俊 ([email protected]) 清华大学教育技术研究所
我需要做什么?
ClientBrowse
ActionServlet
JSP
Action
Data
ActionForm
Request
Response
填充
获取/填充
Request
获取
获取
Request
1
返回
Web.xml
2
Struts-config.xml3
4
第 22页
邓文俊 ([email protected]) 清华大学教育技术研究所
我需要做什么?②<struts-config>
<form-beans>
<form-bean
name="edanForm"
type="org.edanwade.EdanForm"/>
</form-beans>
<action-mappings >
<action
path="/edanPath2“ name="edanForm"
validate = "false“ scope="request"
type=" org.edanwade.EdanAction" >
<forward name="forward"
path="/default.jsp" />
<forward name="transform"
path="/edanPath1.do" redirect="true"/>
</action>
</action-mappings >
</struts-config>
第 23页
邓文俊 ([email protected]) 清华大学教育技术研究所
我需要做什么?
ClientBrowse
ActionServlet
JSP
Action
Data
ActionForm
Request
Response
填充
获取/填充
Request
获取
获取
Request
1
返回
Web.xml
2
Struts-config.xml3
4
第 25页
邓文俊 ([email protected]) 清华大学教育技术研究所
我需要做什么?③
public class EdanAction extends Action{
public ActionForward execute(
ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) throws Exception {
……
……
}
}
第 26页
邓文俊 ([email protected]) 清华大学教育技术研究所
我需要做什么?
ClientBrowse
ActionServlet
JSP
Action
Data
ActionForm
Request
Response
填充
获取/填充
Request
获取
获取
Request
1
返回
Web.xml
2
Struts-config.xml3
4
第 28页
邓文俊 ([email protected]) 清华大学教育技术研究所
我需要做什么?④
<td>
<spring:message code="label.edanwade.title"/>
<span class="select">
<html:select property=“propName" onchange="changeAction()">
<html:optionsCollection property=“propList" label="name" value="id"/>
</html:select>
</span>
</td>
第 29页
邓文俊 ([email protected]) 清华大学教育技术研究所
Struts 不是全部。还需要什么知识和技能?
1. Request 与 Response
2. JSP 页面
● EL 表达式
● JSTL 标签
● 自定义标签
3. Valuelist
4.国际化
第 30页
邓文俊 ([email protected]) 清华大学教育技术研究所
Struts 小结
• 核心
● MVC
● M: javaBean
● V: JSP
● C: Action + struts-config.xml
第 32页
邓文俊 ([email protected]) 清华大学教育技术研究所
Hibernate 是关系数据库持久化方案。Hibernate - Relational Persistence for Idiomatic Java
第 36页
邓文俊 ([email protected]) 清华大学教育技术研究所
Hibernate 是关系数据库 方案。
持久化
持久化:
1 、持久:断电后仍有。
2 、持久化
● 从内存到硬盘。
● 从对象到关系。
第 38页
邓文俊 ([email protected]) 清华大学教育技术研究所
Hibernate 的核心:对象 - 关系的映射对象 - 关系 的映射:2. 映射: HBM.XML 文件3. 查询: HQL 和 SQL4. 操作: update 、 saveOrUPdate() 、 delete()
第 39页
邓文俊 ([email protected]) 清华大学教育技术研究所
public class Customer { private int id; private String username; private String password;
public int getId() { return id; } public void setId(int id) { this.id = id; } …… }
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping> <class name="Customer" table="CUSTOMER"> <id name="id" column="CID"> <generator class="increment" /> </id> <property name="username" column="USERNAME" /> <property name="password" column="PASSWORD" /> </class></hibernate-mapping>
1. 映射:基础
CREATE TABLE CUSTOMER( CID INTEGER NOT NULL PRIMARY KEY, USERNAME VARCHAR(12) NOT NULL, PASSWORD VARCHAR(12) );
第 40页
邓文俊 ([email protected]) 清华大学教育技术研究所
HQL:
Query query = session.createQuery("from Customer as c");
List customers = query.list();
2. 查询: HQL 与 SQL
SQL:
Query query = session.createSQLQuery(“select * from customer");
List customers = query.list();
第 41页
邓文俊 ([email protected]) 清华大学教育技术研究所
3. 操作
临时状态
持久化状态
游离状态
New()
get()load()
query.list
save()saveOrUpdate()
persist()merge()
evict()close()clear()
save()saveOrUpdate()
delete()
第 42页
邓文俊 ([email protected]) 清华大学教育技术研究所
public class Customer { private int userid; private String username; private String password; private Set orders = new HashSet();
public int getId() { return id; } public void setId(int id) { this.id = id; } …… }
<hibernate-mapping> <class name="Customer" table="CUSTOMER"> <id name=“userid" column=“USERID"> <generator class="increment" /> </id> <property name="username" column="USERNAME" /> <property name="password" column="PASSWORD" /> <set name="orders"> <key column=“userid "/> <one-to-many class=“order"/> </set> </class></hibernate-mapping>
4. 映射:关系CREATE TABLE CUSTOMER( USERID INTEGER NOT NULL PRIMARY KEY, USERNAME VARCHAR(12) NOT NULL, PASSWORD VARCHAR(12));