SSH三大框架的理解

1、Strus里面写Action相关的东西主要是负责界面的跳转(过滤功能)。

在WEB-INFO的src的struts.xml文件中进行配置

<?xml version="1.0" encoding="GBK"?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

<constant name="struts.custom.i18n.resources"

value="messageResource"/>

<constant name="struts.i18n.encoding" value="GBK"/>

<package name="lee" extends="struts-default">

<!-- 配置系统的拦截器 -->

<interceptors>

<!-- 定义系统的登录控制的拦截器 -->

<interceptor name="authority"

class="org.crazyit.auction.action.interceptor.AuthorityInterceptor"/>

<!-- 定义系统auctionStack拦截器栈 -->

<interceptor-stack name="auctionStack">

<!-- 引用系统的默认拦截器栈 -->

<interceptor-ref name="defaultStack"/>

<!-- 引用登录控制拦截器 -->

<interceptor-ref name="authority"/>

</interceptor-stack>

</interceptors>

<!-- 将自定义的拦截器栈定义成默认拦截器栈 -->

<default-interceptor-ref name="auctionStack"/>

<global-results>

<!-- 下面定义的结果对所有的Action都有效 -->

<result name="login">/WEB-INF/content/login.jsp</result>

<result name="exception">/WEB-INF/content/error.jsp</result>

</global-results>

<global-exception-mappings>

<!-- 指Action抛出AuctionException异常时,转入名为exception的结果。 -->

<exception-mapping exception="org.crazyit.auction.exception.AuctionException" result="exception"/>

<!-- 指Action抛出Exception异常时,转入名为exception的结果。 -->

<exception-mapping exception="java.lang.Exception" result="exception"/>

</global-exception-mappings>

<action name="index">

<result name="success">/WEB-INF/content/main.jsp</result>

</action>

<action name="viewItemSu" class="org.crazyit.auction.action.ViewSuAction">

<result name="success">/WEB-INF/content/viewSuccess.jsp</result>

</action>

<action name="viewFailItem" class="org.crazyit.auction.action.ViewFailAction">

<result name="success">/WEB-INF/content/viewFail.jsp</result>

</action>

<action name="viewBid" class="org.crazyit.auction.action.ViewBidAction">

<result name="success">/WEB-INF/content/viewBid.jsp</result>

</action>

<action name="mgrItem" class="org.crazyit.auction.action.MgrItemAction">

<result name="success">/WEB-INF/content/mgrItem.jsp</result>

</action>

<action name="mgrKind" class="org.crazyit.auction.action.MgrKindAction">

<result name="success">/WEB-INF/content/mgrKind.jsp</result>

</action>

<action name="viewKind" class="org.crazyit.auction.action.ViewKindAction">

<result name="success">/WEB-INF/content/viewKind.jsp</result>

</action>

<action name="viewItem" class="org.crazyit.auction.action.ViewItemAction">

<result name="input">viewKind.action</result>

<result name="success">/WEB-INF/content/viewItem.jsp</result>

</action>

<action name="viewDetail" class="org.crazyit.auction.action.ViewDetailAction">

<result name="error">/WEB-INF/content/error.jsp</result>

<result name="success">/WEB-INF/content/viewDetail.jsp</result>

</action>

<!-- 配置处理用户登录的Action -->

<action name="proLogin" class="org.crazyit.auction.action.LoginAction">

<!-- 配置处理用户登录后的Result -->

<result name="input">/WEB-INF/content/login.jsp</result>

<result name="success">/WEB-INF/content/main.jsp</result>

<result name="failure">/WEB-INF/content/login.jsp</result>

<!-- 显式引用系统默认拦截器栈 -->

<interceptor-ref name="defaultStack"/>

</action>

<action name="proAddItem" class="org.crazyit.auction.action.AddItemAction">

<result name="input"
type="chain">mgrItem</result>

<result name="success" type="chain">mgrItem</result>

</action>

<action name="proAddKind" class="org.crazyit.auction.action.AddKindAction">

<result name="input" type="chain">mgrKind</result>

<result name="success" type="chain">mgrKind</result>

</action>

<action name="bid" class="org.crazyit.auction.action.AddBidAction">

<result name="input" type="chain">viewDetail</result>

<result name="success" type="chain">viewBid</result>

</action>

</package>

</struts>

2、Servlet负责客户端和服务端的交互

复写service方法,service方法再通过请求方式进行分发。

3、H主要负责数据持久化操作

3.1对象与数据表对应

@Entity

@Table(name="auction_user")

public class AuctionUser

{

// 标识属性

@Id

@Column(name="user_id")

@GeneratedValue(strategy=GenerationType.IDENTITY)

private Integer id;

// 用户名属性

private String username;

// 密码属性

private String userpass;

// 电子邮件属性

private String email;

// 根据属主关联的物品实体

@OneToMany(targetEntity=Item.class ,

mappedBy="owner")

private Set<Item> itemsByOwner = new HashSet<Item>();

// 根据赢取者关联的物品实体

@OneToMany(targetEntity=Item.class ,

mappedBy="winer")

private Set<Item> itemsByWiner = new HashSet<Item>();

// 该用户所参与的全部竞价

@OneToMany(targetEntity=Bid.class ,

mappedBy="bidUser")

private Set<Bid> bids = new HashSet<Bid>();

// 无参数的构造器

public AuctionUser()

{

}

// 初始化全部成员变量的构造器

public AuctionUser(Integer id , String username

, String userpass , String email)

{

this.id = id;

this.username = username;

this.userpass = userpass;

this.email = email;

}

// id的setter和getter方法

public void setId(Integer id)

{

this.id = id;

}

public Integer getId()

{

return this.id;

}

// username的setter和getter方法

public void setUsername(String username)

{

this.username = username;

}

public String getUsername()

{

return this.username;

}

// userpass的setter和getter方法

public void setUserpass(String userpass)

{

this.userpass = userpass;

}

public String getUserpass()

{

return this.userpass;

}

// email的setter和getter方法

public void setEmail(String email)

{

this.email = email;

}

public String getEmail()

{

return this.email;

}

// itemsByOwner的setter和getter方法

public void setItemsByOwner(Set<Item> itemsByOwner)

{

this.itemsByOwner = itemsByOwner;

}

public Set<Item> getItemsByOwner()

{

return this.itemsByOwner;

}

// itemsByWiner的setter和getter方法

public void setItemsByWiner(Set<Item> itemsByWiner)

{

this.itemsByWiner = itemsByWiner;

}

public Set<Item> getItemsByWiner()

{

return this.itemsByWiner;

}

// bids的setter和getter方法

public void setBids(Set<Bid> bids)

{

this.bids = bids;

}

public Set<Bid> getBids()

{

return this.bids;

}

}

public interface AuctionUserDao extends BaseDao<AuctionUser>

{

/**

* 根据用户名,密码查找用户

* @param username 查询所需的用户名

* @param pass 查询所需的密码

* @return 指定用户名、密码对应的用户

*/

AuctionUser findUserByNameAndPass(String username , String pass);

}

public class AuctionUserDaoHibernate

extends BaseDaoHibernate4<AuctionUser> implements AuctionUserDao

{

/**

* 根据用户名,密码查找用户

* @param username 查询所需的用户名

* @param pass 查询所需的密码

* @return 指定用户名、密码对应的用户

*/

public AuctionUser findUserByNameAndPass(String username , String pass)

{

// 执行HQL查询

List<AuctionUser> ul = (List<AuctionUser>)find(

"from AuctionUser au where au.username=?0 and au.userpass=?1" ,

username , pass);

// 返回查询得到的第一个AuctionUser对象

if (ul.size() == 1)

{

return (AuctionUser)ul.get(0);

}

return null;

}

}

时间: 2024-11-02 23:36:29

SSH三大框架的理解的相关文章

对SSH三大框架的理解

SSH框架一般指的是Struts.Spring.Hibernate,后来Struts2代替了Struts.最近5年,Struts2已经被Spring MVC代替,而Hibernate基本也被iBatis/MyBatis代替. 所以真正需要了解的是Spring,Spring需要了解两个概念AOP和IOC,更进一步就是Spring的核心技术"动态代理". 持久层框架看看Hibernate/iBatis/MyBatis,研究一下Spring的数据库事务管理,各个持久层框架式如何实现ORM的,

ssh三大框架通俗理解

 一.谈谈你对Struts 的理解. 1. struts 是一个按MVC 模式设计的Web 层框架,其实它就是一个大大的servlet,这个 ervlet ActionServlet,或是ActionServlet 的子类.我们可以在web.xml 文件中将符合某种特征的 所有请求交给这个Servlet 处理,这个Servlet 再参照一个配置文件( 通常为 /WEB-INF/struts-config.xml)将各个请求分别分配给不同的action 去处理. 一个扩展知识点:struts

个人理解去搭建SSH三大框架spring管理配置文件(初学第一次接触SSH)

<bean id="dataSuorces" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="oracle.jdbc.OracleDirver"/>(oracle数据库) <property name="url"

SSH三大框架注解整合(一)

1.导入jar包,ssh的jar包一共是38个,此时还需要多加一个包,就是struts的注解插件jar. 2.在web.xml文件中配置struts filter 和spring 的listener.代码如下: <!-- spring 监听器 -->  <context-param>   <param-name>contextConfigLocation</param-name>   <param-value>classpath:applicat

SSH三大框架的整合

SSH三个框架的知识点 一.Hibernate框架 1. Hibernate的核心配置文件 1.1 数据库信息.连接池配置 1.2 Hibernate信息 1.3 映射配置 1.4 Hibernate核心配置文件 如果单纯使用Hibernate框架,核心配置文件名称hibernate.cfg.xml并且一定要放在src下面,而hibernate和spring整合的时候,hibernate核心配置文件名称和位置没有固定要求的(因为到时候会有一个参数指定其位置). 2. Hibernate映射配置文

SSH三大框架注解整合(二)

5.使用spring注解注入service,DAO action: @ParentPackage(value = "struts-default") @Namespace("/") @Controller @Scope("prototype") public class BookAction extends ActionSupport implements ModelDriven<Book>{ //模型驱动 public Book b

eclipse中SSH三大框架环境搭建&lt;三&gt;

相关链接: eclipse中SSH三大框架环境搭建<一> eclipse中SSH三大框架环境搭建<二> 引言:通过上两篇文章我们已经可以掌握struts2和spring的环境的搭建以及简单使用,但是在访问数据库层面使用的是传统的JDBC.在我们项目开发中使用JDBC确实是不太理想的,所以今天我给大家来讲解一下目前行业中比较流行的持久层框架——hibernate. 第1步:我们依旧需要引入hibernate的jar包 找到hibernate解压好的文件目录,在该目录下的lib目录下有

java ssh三大框架搭建整合

今天开个坑java ssh三大框架搭建整合(注解+XML 用全注解不是很好,有点地方需要用模板的时候XML直接可以复制一段) 1 所用框架.技术 编号 工具 版本 说明 Struts 2 2.3.20 Hibernate 4.3.9 实现持久化操作 Spring 4.1.5 Junit 4 单元测试 2.  开发环境 操作系统 Windows 7 开发工具 Eclipse Java EE 数据库 Oracle 11g Web容器 Tomcat 7.0.63 JAVA JDK 1.7 建立proj

【SSH三大框架】Hibernate基础第十二篇:load()懒加载分析以及一对一、一对多、多对一、多对多懒加载的分析

一.懒加载的定义: 懒加载:在WEB应用程序中,经常会需要查询数据库,系统的响应速度在很大程度上是与数据库交互的响应.因此,如果能够优化与数据库的交互速度,则能够大大提高WEB应用的响应速度. 例如:当有一个Student类和一个Teacher类.当我们加载一个学生的所有信息,包括:学号,姓名等属性后,此时Student类中的Teacher类型的属性为null,当我们需要知道这个Student对应的Teacher属性的时候,我们才去加载这个Teacher对象. 如果,我们只需要知道学生信息,我们