JAVA三大框架知识.docx

上传人:b****6 文档编号:7582718 上传时间:2023-01-25 格式:DOCX 页数:21 大小:22.63KB
下载 相关 举报
JAVA三大框架知识.docx_第1页
第1页 / 共21页
JAVA三大框架知识.docx_第2页
第2页 / 共21页
JAVA三大框架知识.docx_第3页
第3页 / 共21页
JAVA三大框架知识.docx_第4页
第4页 / 共21页
JAVA三大框架知识.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

JAVA三大框架知识.docx

《JAVA三大框架知识.docx》由会员分享,可在线阅读,更多相关《JAVA三大框架知识.docx(21页珍藏版)》请在冰豆网上搜索。

JAVA三大框架知识.docx

JAVA三大框架知识

************************************************************************************************

Sturts2

************************************************************************************************

配置struts2的步骤:

1.找到struts-2.1.8.1夹

2.在\struts-2.1.8.1\apps\struts2-blank-2.1.8.1\WEB-INF\lib下所有的jar文件导入到你自己的项目中

(1)拷贝所有的jar文件,放到项目中的一个文件夹中

(2)把拷贝过来的所有jar文件构建路径导入项目中。

也可以把所有的jar文件拷贝到\web-inf/lib目录下

3.修改你自己项目中的web.xml文件添加以下代码

struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

struts2

/*

以上的这些代码是从struts2-blank-2.1.8.1例子中的web.xml文件中拷贝过来的。

4.从struts2-blank-2.1.8.1例子中把struts.xml文件拷贝到自己项目类路径下并进行修改。

5.部署启动,访问。

************************************************************************************************

通常每个包都应该继承struts-default包,struts-default包是由struts内置的,它定义了struts2内部的众多拦截器和Result类型。

************************************************************************************************

struts2的处理流程

FilterDispatcher---》Interceptor---》Action---》Result---》Jsp/html

Struts2内置的一些拦截器或用户自定义拦截器用户编写的action类,类似struts1中的Action************************************************************************************************

struts中action后如果没有class则默认访问ActionSupport类的excute()方法,该方法的返回值与其下方的result中的name值进行比较,如果result后没有写name则默认为name=“success”,如果excute()方法的返回值与name的值相等则跳转到result后对象的相应JSP页面。

************************************************************************************************

如果struts中action后写相应的类那么此类需要继承ActionSupport这个类,并覆写其中excute()方法,excute()方法的返回值为字符串类型,返回值与result中的值进行比较,然后跳转到后边相应的JSP页面。

************************************************************************************************

jar包拷贝到项目中构建路径之后,部署程序,点击浏览,如果struts21\WEB-INF\lib路径下没有相关的jar包那么解决办法为:

将jar包直接拷贝到本项目中的web-inf/lib下。

************************************************************************************************

访问项目的时候访问路径要根据struts的配置中命名空间进行访问,访问是逐层往回访问的,只要访问路径最前面的路径是命名空间的路径就可以访问成功。

例如:

明明空间是/aaa,则访问的时候输入/aaa/bbb/ccc也可以访问成功。

************************************************************************************************

action接口定义了5个字符串常量:

publicstaticStringSUCCESS="success";

publicstaticStringNONE="none";

publicstaticStringERROR="error";

publicstaticStringINPUT="input";

publicstaticStringLOGIN="login";

在excute()方法中return值可以直接写常量

例如:

returnSUCCESS;

************************************************************************************************

result配置:

struts2中提供了多种结果类型,如:

dispatcher(默认值):

表示转发。

redirect:

表示重定向。

redirectAction:

重定向到其他的action。

plainText:

页面以源码的形式展现。

************************************************************************************************

struts配置中action有method属性,method属性值是所访问的类的一个方法名,method属性值是什么,访问类的时候就调用哪个方法。

************************************************************************************************

struts中要修改访问时的后缀名,语句为:

************************************************************************************************

如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。

如:

************************************************************************************************

如果Action中存在多个方法时,我们可以使用!

+方法名调用指定方法。

************************************************************************************************

全局变量,访问的时候如果在action中没用找到result值那么会到全局变量中去寻找

/message.jsp

************************************************************************************************

通过这种方式,我们就可以将Struts2的Action按模块配置在多个配置文件中。

************************************************************************************************

struts2中表单提交的属性名可以直接在类中定义成变量,并必须为变量设置get和set方法。

表单的action就可以直接提交到struts的配置文件的action访问路径。

************************************************************************************************

struts2标签:

<%@taglibprefix="s"uri="/struts-tags"%>

************************************************************************************************

************************************************************************************************

Hibernate

************************************************************************************************

hibernate项目的创建流程:

1.将hibernate的jar包以及mysql的jar包拷贝的项目中

2.将user.hbm.xml拷贝到实体类中并将名字改为对应的类名

3.配置user.hbm.xml中的内容配置要生成表的相应的字段以及主键:

4.将hibernate的配置文件hibernate.cfg.xml导入到src路径下,并配置:

com.mysql.jdbc.Driver

jdbc:

mysql:

//localhost:

3306/hibernate

root

root

org.hibernate.dialect.MySQLDialect

************************************************************************************************

regedit搜索注册表

************************************************************************************************

hibernate中创建一个学生对象,把学生对象保存到数据库中的步骤:

1.读取hibernate.cfg.xml配置文件

Configurationcfg=newConfiguration().configure();

2.创建一个会话工厂

SessionFactorysf=cfg.buildSessionFactory();

3.从会话工厂取得会话

Sessionsession=sf.openSession();

4.开启事务

session.beginTransaction();

5.持久化学生对象

6.提交事务

session.getTransaction().commit();

7.释放资源

session.close();

************************************************************************************************

在查询数据的时候用session.load()方法会形成懒加载,在输出的时候才会发出SQL语句,而session.get()方法则不会形成,使用session.get()方法会直接发出sql语句解决懒加载的办法是在session资源关闭之前输出所要查询的对象,那么session资源关闭之后仍然可以输出所要查询的对象。

************************************************************************************************

表示的是多对一的关系在多的那个类的配置文件中加入

************************************************************************************************

一对一的关系中在只有主键的那个类中加入

一对一的关系在有外键和主键的类中加入

person

************************************************************************************************

在一对一的外键唯一

在只有主键的类中加入

在有主键和外键的类中加入

************************************************************************************************

在一对多的关系中

在一端配置文件中加入:

如果要双向关联需要在多端加入:

特别注意的是:

两端指定的外键列名要相同要不然会出现两列都是外键

************************************************************************************************

在多对多的关系中

两端的配置文件:

两端的配置是相反的 

************************************************************************************************

组件映射:

映射文件:

其中contact不会被创建成表,它里面的这些属性会自动创建成相应的字段,因为它不是实体类,它只是实体类的一个组成部分。

************************************************************************************************

复合主键也称之为联合主键,就是多个字段构成唯一性。

复合(联合)主键映射

通常将复合主键相关的属性,单独放到一个类中:

此类必须实现序列化接口覆写hashcode和equals方法

************************************************************************************************

hibernate中hql查询语句:

1.单一属性查询

//返回结果集属性列表,元素类型和实体类中相应的属性类型一致

Listcourses=session.createQuery("selectnamefromCourse").list();

for(Iteratoriter=courses.iterator();iter.hasNext();){

Stringname=(String)iter.next();

System.out.println(name);

}

2.多个属性查询

//查询多个属性,其集合元素是对象数组

//数组元素的类型和对应的属性在实体类中的类型一致

//数组的长度取决与select中属性的个数

Listcourses=session.createQuery("selectid,namefromCourse").list();

for(Iteratoriter=courses.iterator();iter.hasNext();){

Object[]obj=(Object[])iter.next();

System.out.println(obj[0]+","+obj[1]);

}

3.返回实体对象

//如果认为返回数组不够对象化,可以采用hql动态实例化Course对象

//此时list中为Course对象

Listcourses=session.createQuery("selectnewCourse(id,name)fromCourse").list();

for(Iteratoriter=courses.iterator();iter.hasNext();){

Coursecourse=(Course)iter.next();

System.out.println(course.getId()+","+course.getName());

}

但是此时在类中必须有相应的构造函数

4.使用别名

//可以使用别名

Listcourses=session.createQuery("selectc.id,c.namefromCoursec").list();

for(Iteratoriter=courses.iterator();iter.hasNext();){

Object[]obj=(Object[])iter.next();

System.out.println(obj[0]+","+obj[1]);

}

5.使用as命名别名

//可以使用as命名别名

Listcourses=ses

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1