当前位置:文档之家› ssh整合案例很不错

ssh整合案例很不错

ssh整合案例很不错
ssh整合案例很不错

二、建立公共类

1、AbstractAction类

Struts2和Struts1.x的差别,最明显的就是Struts2是一个pull-MVC架构。Struts1.x 必须继承org.apache.struts.action.Action或者其子类,表单数据封装在FormBean中。Struts 2无须继承任何类型或实现任何接口,表单数据包含在Action中,通过Getter和Setter获取。

虽然,在理论上Struts2的Action无须实现任何接口或者是继承任何的类,但是,在实际编程过程中,为了更加方便的实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并且重载(Override)

https://www.doczj.com/doc/de18220228.html,mons.AbstractAction.java

参考JavaDoc,可知ActionSupport类实现了接口:

com.opensymphony.xwork2.Action

com.opensymphony.xwork2.LoaleProvider

com.opensymphony.xwork2.TextProvider

com.opensymphony.xwork2.Validateable

com.opensymphony.xwork2.ValidationAware

com.uwyn.rife.continuations.ContinuableObject

java.io.Searializable

https://www.doczj.com/doc/de18220228.html,ng.Cloneable

2、Pager分页类

为了增加程序的分页功能,特意建立共用的分页类。package https://www.doczj.com/doc/de18220228.html,mons;

import java.math.*;

public class Pager {

private int totalRows; //总行数

private int pageSize = 5; //每页显示的行数

private int currentPage; //当前页号

private int totalPages; //总页数

private int startRow; //当前页在数据库中的起始行

public Pager() {

}

public Pager(int _totalRows) {

totalRows = _totalRows;

totalPages=totalRows/pageSize;

int mod=totalRows%pageSize;

if(mod>0){

totalPages++;

}

currentPage = 1;

startRow = 0;

}

public int getStartRow() {

return startRow;

}

public int getTotalPages() {

return totalPages;

}

public int getCurrentPage() {

return currentPage;

}

public int getPageSize() {

return pageSize;

}

public void setTotalRows(int totalRows) {

this.totalRows = totalRows;

}

public void setStartRow(int startRow) {

this.startRow = startRow;

}

public void setTotalPages(int totalPages) {

this.totalPages = totalPages;

}

public void setCurrentPage(int currentPage) {

this.currentPage = currentPage;

}

public void setPageSize(int pageSize) {

this.pageSize = pageSize;

}

public int getTotalRows() {

return totalRows;

}

public void first() {

currentPage = 1;

startRow = 0;

}

public void previous() {

if (currentPage == 1) {

return;

}

currentPage--;

startRow = (currentPage - 1) * pageSize;

}

public void next() {

if (currentPage < totalPages) {

currentPage++;

}

startRow = (currentPage - 1) * pageSize;

}

public void last() {

currentPage = totalPages;

startRow = (currentPage - 1) * pageSize;

}

public void refresh(int _currentPage) {

currentPage = _currentPage;

if (currentPage > totalPages) {

last();

}

}

}

https://www.doczj.com/doc/de18220228.html,mons.Pager.java

同时,采用PagerService类来发布成为分页类服务PagerService,代码如下:

同时,采用PagerService类来发布成为分页类服务PagerService,代码如下:

package https://www.doczj.com/doc/de18220228.html,mons;

public class PagerService {

public Pager getPager(String currentPage,String pagerMethod,in t totalRows) {

// 定义pager对象,用于传到页面

Pager pager = new Pager(totalRows);

// 如果当前页号为空,表示为首次查询该页

// 如果不为空,则刷新pager对象,输入当前页号等信息

if (currentPage != null) {

pager.refresh(Integer.parseInt(currentPage));

}

// 获取当前执行的方法,首页,前一页,后一页,尾页。

if (pagerMethod != null) {

if (pagerMethod.equals("first")) {

pager.first();

} else if (pagerMethod.equals("previous")) {

pager.previous();

} else if (pagerMethod.equals("next")) {

pager.next();

} else if (pagerMethod.equals("last")) {

https://www.doczj.com/doc/de18220228.html,st();

}

}

return pager;

}

}

https://www.doczj.com/doc/de18220228.html,mons.PagerService.java

三、建立数据持久化层

1、编写实体类Books及books.hbm.xml映射文件。

package com.sterning.books.model;

import java.util.Date;

public class Books {

// Fields

private String bookId;//编号

private String bookName;//书名

private String bookAuthor;//作者

private String bookPublish;//出版社

private Date bookDate;//出版日期

private String bookIsbn;//ISBN

private String bookPage;//页数

private String bookPrice;//价格

private String bookContent;//内容提要

// Constructors

public Books(){}

// Property accessors

public String getBookId() {

return bookId;

}

public void setBookId(String bookId) {

this.bookId = bookId;

}

public String getBookName() {

return bookName;

}

public void setBookName(String bookName) {

this.bookName = bookName;

}

public String getBookAuthor() {

return bookAuthor;

}

public void setBookAuthor(String bookAuthor) {

this.bookAuthor = bookAuthor;

}

public String getBookContent() {

return bookContent;

}

public void setBookContent(String bookContent) {

this.bookContent = bookContent;

}

public Date getBookDate() {

return bookDate;

}

public void setBookDate(Date bookDate) {

this.bookDate = bookDate;

}

public String getBookIsbn() {

return bookIsbn;

}

public void setBookIsbn(String bookIsbn) {

this.bookIsbn = bookIsbn;

}

public String getBookPage() {

return bookPage;

}

public void setBookPage(String bookPage) {

this.bookPage = bookPage;

}

public String getBookPrice() {

return bookPrice;

}

public void setBookPrice(String bookPrice) {

this.bookPrice = bookPrice;

}

public String getBookPublish() {

return bookPublish;

}

public void setBookPublish(String bookPublish) {

this.bookPublish = bookPublish;

}

}

com.sterning.books.model.Books.java

接下来要把实体类Books的属性映射到books表,编写下面的books.hbm.xml文件:

"https://www.doczj.com/doc/de18220228.html,/hibernate-mapping-3.0.dtd">

com.sterning.books.model.books.hbm.xml

2、hibernate.cfg.xml配置文件如下:(注意它的位置在

scr/hibernate.cfg.xml)

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"https://www.doczj.com/doc/de18220228.html,/hibernate-configuration-3.0.d td">

true

Com.sterning.bean.hibernate.hibernate.cfg.xml

四、建立DAO层

DAO访问层负责封装底层的数据访问细节,不仅可以使概念清晰,而且可以提高开发效率。

1、建立DAO的接口类:BooksDao

package com.sterning.books.dao.iface;

import java.util.List;

import com.sterning.books.model.Books;

public interface BooksDao {

List getAll();//获得所有记录

List getBooks(int pageSize, int startRow);//获得所有记录

int getRows();//获得总行数

int getRows(String fieldname,String value);//获得总行数

List queryBooks(String fieldname,String value);//根据条件查询

List getBooks(String fieldname,String value,int pageSize, int s tartRow);//根据条件查询

Books getBook(String bookId);//根据ID获得记录

String getMaxID();//获得最大ID值

void addBook(Books book);//添加记录

void updateBook(Books book);//修改记录

void deleteBook(Books book);//删除记录

}

com.sterning.books.dao.iface.BooksDao.java

2、实现此接口的类文件,BooksMapDao

package com.sterning.books.dao.hibernate;

import java.sql.SQLException;

import java.util.Iterator;

import java.util.List;

import org.hibernate.HibernateException;

import org.hibernate.Query;

import org.hibernate.Session;

import org.springframework.orm.hibernate3.HibernateCallback;

import org.springframework.orm.hibernate3.support.HibernateDaoSuppo rt;

import com.sterning.books.dao.iface.BooksDao;

import com.sterning.books.model.Books;

import https://www.doczj.com/doc/de18220228.html,mons.PublicUtil;

/**

* @author cwf

*

*/

public class BooksMapDao extends HibernateDaoSupport implements Bo oksDao {

public BooksMapDao(){}

/**

* 函数说明:添加信息

* 参数说明:对象

* 返回值:

*/

public void addBook(Books book) {

this.getHibernateTemplate().save(book);

}

/**

* 函数说明:删除信息

* 参数说明:对象

* 返回值:

*/

public void deleteBook(Books book) {

this.getHibernateTemplate().delete(book);

}

/**

* 函数说明:获得所有的信息

* 参数说明:

* 返回值:信息的集合

*/

public List getAll() {

String sql="FROM Books ORDER BY bookName";

return this.getHibernateTemplate().find(sql);

}

/**

* 函数说明:获得总行数

* 参数说明:

* 返回值:总行数

*/

public int getRows() {

String sql="FROM Books ORDER BY bookName";

List list=this.getHibernateTemplate().find(sql);

return list.size();

}

/**

* 函数说明:获得所有的信息

* 参数说明:

* 返回值:信息的集合

*/

public List getBooks(int pageSize, int startRow) throws Hibern ateException {

final int pageSize1=pageSize;

final int startRow1=startRow;

return this.getHibernateTemplate().executeFind(new Hiberna teCallback(){

public List doInHibernate(Session session) throws Hibe rnateException, SQLException {

// TODO 自动生成方法存根

Query query=session.createQuery("FROM Books ORDER B Y bookName");

query.setFirstResult(startRow1);

query.setMaxResults(pageSize1);

return query.list();

}

});

}

/**

* 函数说明:获得一条的信息

* 参数说明: ID

* 返回值:对象

*/

public Books getBook(String bookId) {

return (Books)this.getHibernateTemplate().get(Books.class,b ookId);

}

/**

* 函数说明:获得最大ID

* 参数说明:

* 返回值:最大ID

*/

public String getMaxID() {

String date=PublicUtil.getStrNowDate();

String sql="SELECT MAX(bookId)+1 FROM Books ";

String noStr = null;

List ll = (List) this.getHibernateTemplate().find(sql);

Iterator itr = ll.iterator();

if (itr.hasNext()) {

Object noint = itr.next();

if(noint == null){

noStr = "1";

}else{

noStr = noint.toString();

}

}

if(noStr.length()==1){

noStr="000"+noStr;

}else if(noStr.length()==2){

noStr="00"+noStr;

}else if(noStr.length()==3){

noStr="0"+noStr;

}else{

noStr=noStr;

}

return noStr;

}

/**

* 函数说明:修改信息

* 参数说明:对象

* 返回值:

*/

public void updateBook(Books pd) {

this.getHibernateTemplate().update(pd);

}

/**

* 函数说明:查询信息

* 参数说明:集合

* 返回值:

public List queryBooks(String fieldname,String value) {

System.out.println("value: "+value);

String sql="FROM Books where "+fieldname+" like '%"+value+ "%'"+"ORDER BY bookName";

return this.getHibernateTemplate().find(sql);

}

/**

* 函数说明:获得总行数

* 参数说明:

* 返回值:总行数

*/

public int getRows(String fieldname,String value) {

String sql="";

if(fieldname==null||fieldname.equals("")||fieldname==null|| fieldname.equals(""))

sql="FROM Books ORDER BY bookName";

else

sql="FROM Books where "+fieldname+" like '%"+value+"%'" +"ORDER BY bookName";

List list=this.getHibernateTemplate().find(sql);

return list.size();

}

/**

* 函数说明:查询信息

* 参数说明:集合

* 返回值:

public List getBooks(String fieldname,String value,int pageSiz e, int startRow) {

final int pageSize1=pageSize;

final int startRow1=startRow;

final String queryName=fieldname;

final String queryValue=value;

String sql="";

if(queryName==null||queryName.equals("")||queryValue==null| |queryValue.equals(""))

sql="FROM Books ORDER BY bookName";

else

sql="FROM Books where "+fieldname+" like '%"+value+"%'" +"ORDER BY bookName";

final String sql1=sql;

return this.getHibernateTemplate().executeFind(new Hiberna teCallback(){

public List doInHibernate(Session session) throws Hibe rnateException, SQLException {

// TODO 自动生成方法存根

Query query=session.createQuery(sql1);

query.setFirstResult(startRow1);

query.setMaxResults(pageSize1);

return query.list();

}

});

}

com.sterning.books.dao.hibernate.BooksMapDao.java

五、业务逻辑层

在业务逻辑层需要认真思考每个业务逻辑所能用到的持久层对象和DAO。DAO 层之上是业务逻辑层,DAO类可以有很多个,但业务逻辑类应该只有一个,可以在业务逻辑类中调用各个DAO类进行操作。

1、创建服务接口类IBookService

1、创建服务接口类IBookService

package com.sterning.books.services.iface;

import java.util.List;

import com.sterning.books.model.Books;

public interface IBooksService {

List getAll();//获得所有记录

List getBooks(int pageSize, int startRow);//获得所有记录

int getRows();//获得总行数

int getRows(String fieldname,String value);//获得总行数

List queryBooks(String fieldname,String value);//根据条件查询

List getBooks(String fieldname,String value,int pageSize, int s tartRow);//根据条件查询

Books getBook(String bookId);//根据ID获得记录

JAVA Web课程设计--注册登录系统-- 用SSH框架整合实现注册登录系统

用SSH框架整合实现注册登录系统 注册登录系统几乎是每一个web程序必须拥有的功能,因此,在本次课程设计中将其单独提取出来,并使用SSH框架的整合来实现这个系统。虽然注册和登录系统并不复杂,但这两个子系统却拥有一个完整系统的必要功能,如验证客户端输入、数据库访问等。因此,通过本次课程设计的练习,大家可以基本上了解使用SSH框架整合开发一个完整系统的一般步骤。 本次课程设计的主要内容有: ●系统概述 ●设计数据库 ●SSH三大框架的整合 ●MD5加密的实现(选做) ●注册系统的实现 ●登录系统的实现

1、系统概述 本次课程设计练习了一个简单的Web系统,该系统实现了用户注册、用户登录两个功能。本系统的实现是基于SSH框架整合技术的。本系统功能单一,业务逻辑简单。主要用于大家练习如何使用SSH框架整合技术开发一个完整的Web 系统。 1.1系统功能简介 本系统分为两个功能:注册和登录,当用户注册一个新用户时(可以使用英文和中文用户名),就是向数据库的user表中添加一条记录。 当用户输入注册信息时,本系统提供了基本的客户端验证,来判断用户输入的合法性,只有当用户的输入满足系统的要求时,才会将用户输入的数据提交到服务器端负责处理注册信息的Action。在注册Action成功处理完用户提交的注册信息后,客户端仍然会回到注册页面。如果用户想使用已经注册的用户名来登录,可以通过单击“登录”超链接转到登录页面进行登录。 当用户在登录页面正确输入在数据库中已经存在的用户名和密码时,就可以成功登录了。在用户登录页面也拥有和用户注册页面类似的客户端验证机制。也就是说,只有当用户名和密码都输入时,系统才会向服务器端负责登录的Action 提交信息。通过验证用户名和密码都正确,系统才允许登录。 1.2系统总体结构 本系统的注册系统和登录系统是相互独立的,但可以通过使用注册和登录系统的相应超链接导航到另一个系统中。每一个系统分别由一个处理业务逻辑的Action、DAO层代码和若干个JSP页面组成。其中注册系统的Action是RegisterAction类,另外还有一个用于显示用户注册页面的register.jsp文件和一个负责显示处理结果的result.jsp文件。登录系统的Action是LoginAction类,另外还有一个login.jsp文件和一个表示用户已经成功登录的success.jsp文件。用户注册登录系统的工作流程图如下图所示:

SSH框架搭建实例教程,课程设计

. SSH的理解及其应用实践

1.SSH是什么 (3) 2 Spring 介绍理解: (3) 2.1简单介绍 (3) 2.2各种特性 (3) 2.2.1轻量 (3) 2.2.2控制反转 (4) 2.2.3面向切面 (4) 2 .2.4容器 (4) 2.2.5框架 (4) 2.3总结 (4) 3.Hibernate介绍理解: (4) 3.1简单介绍 (4) 3.2核心接口 (5) .3.2.1 Session接口 (5) 3.2.2 .SessionFactory接口 (5) 3.2.3.Configuration接口 (5) 3.2.4.Transaction接口 (5) 3.2.5 Query和Criteria接口 (5) 4. Struts (6) 4.1什么是Struts框架 (6) 4.2 Struts 概览 (6) 4.2.1Client browser(客户浏览器) (6) 4.4 Struts中的Controller(控制器)命令设计模式的实现 (7) 4.5 在Struts框架中控制器组件的三个构成部分 (7) 4.7 Struts中的Model(模型) (8) 5.SSH整合步骤 (8) 5.1安装所需软件环境: (8) 5.1.1、首先安装JDK,配置Java环境变量 (8) 5.1.2安装MyEelipse (8) 5.1.3 数据库 (9) 5.1.4、 (9) 5.2环境配置好了就可以做SSH整合的项目 (9) 6.搭建框架并简单应用 (11) 6.1准备工作 (11) 6.2(建立项目,包结构,导入所需jar文件) (12) 6.3撰写资源文件 (15) 6.4在https://www.doczj.com/doc/de18220228.html,m 包下添加下列文件 (19) 6.5添加hibernate DAO 模板 (20) 6.6以上的工作还不够,我们还需要进行WEB方面的配置 (20) 7.测试: (23)

JAVAWeb课程设计--注册登录系统--用SSH框架整合实现注册登录系统

用SSH框架整合实现注册登录系统注册登录系统几乎是每一个web程序必须拥有的功能,因此,在本次课程设计中将其单独提取出来,并使用SSH框架的整合来实现这个系统。虽然注册和登录系统并不复杂,但这两个子系统却拥有一个完整系统的必要功能,如验证客户端输入、数据库访问等。因此,通过本次课程设计的练习,大家可以基本上了解使用SSH框架整合开发一个完整系统的一般步骤。 本次课程设计的主要内容有: ●系统概述 ●设计数据库 ●SSH三大框架的整合 ●MD5加密的实现(选做) ●注册系统的实现 ●登录系统的实现

1、系统概述 本次课程设计练习了一个简单的Web系统,该系统实现了用户注册、用户登录两个功能。本系统的实现是基于SSH框架整合技术的。本系统功能单一,业务逻辑简单。主要用于大家练习如何使用SSH框架整合技术开发一个完整的Web系统。 1.1系统功能简介 本系统分为两个功能:注册和登录,当用户注册一个新用户时(可以使用英文和中文用户名),就是向数据库的user表中添加一条记录。 当用户输入注册信息时,本系统提供了基本的客户端验证,来判断用户输入的合法性,只有当用户的输入满足系统的要求时,才会将用户输入的数据提交到服务器端负责处理注册信息的Action。在注册Action成功处理完用户提交的注册信息后,客户端仍然会回到注册页面。如果用户想使用已经注册的用户名来登录,可以通过单击“登录”超链接转到登录页面进行登录。 当用户在登录页面正确输入在数据库中已经存在的用户名和密码时,就可以成功登录了。在用户登录页面也拥有和用户注册页面类似的客户端验证机制。也就是说,只有当用户名和密码都输入时,系统才会向服务器端负责登录的Action 提交信息。通过验证用户名和密码都正确,系统才允许登录。 1.2系统总体结构 本系统的注册系统和登录系统是相互独立的,但可以通过使用注册和登录系统的相应超链接导航到另一个系统中。每一个系统分别由一个处理业务逻辑的

SSH整合

MyEclipse6.0的SSH整合 Version 1.1 2010-6-20 目录 0.概述 (2) 1.准备环境 (2) 2.创建工程 (10) 3.添加Struts支持 (11) 4.添加Spring支持 (13) 5.配臵数据源 (17) 6.添加Hibernate支持 (28) 7.添加Hibernate反转工程 (35) 8.修改目录结构 (39) 9.测试Spring和Hibernate的整合 (41) 10.整合Struts和Spring (51) 11.测试SSH的整合 (52) 0.概述 MyEclipse 是 Eclipse 的一个优秀插件,用于 Java EE 的开发,提供了诸如数据库管理、文件配臵管理等的一站式服务。然而对

于 SSH 的整合,仅仅使用 MyEclipse 是无法成功实现的。这或许是MyEclipse 的 Bug,因为它自带的部分库文件并不能按照预期进行整合,需要我们手工干预。因此,我们编写这个这个文档,希望对以后的 SSH 整合技术有一定的帮助。 本公司使用 MyEclipse6.0 构建 SSH 项目。对公司开发部开会讨论,开发工具MyEclipse6.0。另外需要指出的是,SSH 的整合有很多方法,这里只介绍其中的一种。作为 Java EE 的开发,我们使用Tomcat5.5 作为 Web 容器,使用 MySQL 作为数据库。 1.准备环境 下面是我们需要使用的软件开发环境: MyEclipse6.0 Tomcat5.5 MySQL5.1 JDK6.0 需要指出的是,各个软件的版本号并不一定需要和上面列出的相同。但是,由于我们编写本教程时的 实验环境是由上述各版本系统搭建的,因此不能确保其它版本的软件是不是能够正常运行。另外由于 MyEclipse 中已经附带了 SSH 所需要的各种库文件,所以我们一般不再需要另外的准备。 对于软件的设臵,我们将 MySQL 数据库编码设臵为 UTF-8。具体方法为: 安装好 MySQL 后,打开 MySQL Server Instance Config Wizard,请根据下面的图示进行设臵: 1) 启动 MySQL 配臵向导界面,点击 Next 继续;

myEclipse8.5整合SSH步骤(基于操作和配置文件)

一、准备工作: myEclipse 整合 SSH 步骤(基于操作和配置文件) 1. JDK -> jdk1.6.0_17 安装(环境变量配置): JAVA_HOME = C:\ jdk1.6.0_17; PATH = %JAVA_HOME%\bin; %JAVA_HOME%\jre\bin; CLA SSPATH = .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar; 在 Cmd -> java –version 查看 JDK 的版本是否与刚配好的版本一致。 2. apache-tomcat-6.0.24:解压即可; 3. myEclipse 8.5:安装(略): 最高可提供: 框架:Java EE 5 Spring 3.0 Hibernate 3.3 Struts 2.1 4. DB :以 MySQL 5.1 为例。 二、打开 myEclipse 先配置好 Tomcat 服务器和 JDK 操作好下图所示: 1. Window -> Preferences -> Java: Installed JREs 在这里可以不使用 myEclipse 自带的 JDK ,得 Add…自己安装好的 JDK : 2. Window -> Preferences -> MyEclipse -> Servers: Tomcat 6.x 在这里配置 Tomcat 服务器,我们这里是选择 6.x 。Browse…自己将 Tomcat 解压放的目 录,再选择 Enable ,将它启用,然后 Apply 应用一下就 Ok 了。

3. Window -> Preferences: Tomcat 6.x -> JDK 选择前面我们配好的JDK 版本。

SSH三大框架整合(详细版)

1:构建WEB项目 2:构建数据库 3:加入依赖包 尽量不要依赖IDE,通过自己手动加包完成 访问数据库需要的包:mysql的驱动包 Hibernate的包:hibernate3.jar 核心包 依赖的必须包:antlr-2.7.6.jar 用于解析成HQL语句的包 commons-collections-3.1.jar apache提供的包,提供对集合框架的增强 dom4j-1.6.1.jar 解析XML文件的包 javassist-3.9.0.GA.jar 动态修改字节码需要用到的包 jta-1.1.jar 用于JTA事务的包 slf4j-api-1.5.8.jar 日志接口包---》依赖一定的实现包 slf4j-log4j12-1.5.0.jar log4j.jar 另外一种实现包:slf4j-simple-1.5.10.jar 可选的包:c3p0-0.9.1.jar 用于创建C3P0连接池的包 ehcache-1.2.3.jar :用于缓存实现的包 cglib-2.2.jar 动态修改字节码的包 Spring的包:spring.jar 核心包 aopalliance.jar 使用Aop功能可以用到的包 aspectjrt.jar aspectjweaver.jar 使用ASPECTJ表达式需要用到的包 如果是使用DBCP连接池的话,需要两个jar包 commons-dbcp.jar commons-pool.jar 如果需要用到commons增加包的话,可以加入以下包 commons-beanutils.jar commons-lang.jar commons-logging.jar Struts2的包:commons-fileupload-1.2.1.jar commons-io-1.3.2.jar freemarker-2.3.13.jar :在Struts2 中默认使用的是FreeMarker模板引擎 ognl-2.6.11.jar :Struts2中使用OGNL表达式 struts2-core-2.1.6.jar 核心包 xwork-2.1.2.jar 核心包 struts2-spring-plugin-2.1.6.jar Struts2跟Spring整合需要的插件包 4:构建项目分包结构 5:放置配置文件 6:创建POJO和相对应的hbm.xml 7:修改空白的Hibernate.cfg..xml并创建表结构 8:创建DAO,SERVICE,ACTION 9:修改配置文件

SSH2_增删查改实例

SSH2 增删查改实例 (0)软件和框架版本: MyEclipse 6.0.1 Tomcat 6.0.14 Sturts2 1.8 Hibernate 3 Spring 2.0 Mysql 5.1 (一)引入包(共73个,不一定都需要,但是我的项目是这么多,经过调试,有没包冲突)

(二)创建数据库表 建立数据库octtest,并创建user表,表里面一共4个字段:id,姓,名,年龄。 语句如下: create database octtest; user octtest; DROP TABLE IF EXISTS `users`; CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL, `firstname` varchar(50) NOT NULL, `lastname` varchar(50) NOT NULL, `age` int(10) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; (三)用myeclipse 中自带的hibernate reverse engineering 工具,根据刚才创建的user表,自动生成实体User 和相应的User.hbm.xml配置文件。 1)在myeclipse中的视图中创建连接数据库连接,如下图:

填入mysql数据库相应的路径,用户名,密码等信息。注意:这里要引入mysql-connector-java的jar包,需要从外部导入。 2)连接数据库正常后,选择octtest数据库中的user表,右键-》hibernate reverse engineering。自动生成实体User 和相应的User.hbm.xml配置文件。(正常情况下可以生成,但是笔者生成engineer有问题,所以只能够手动创建User类和相应的User.hbm.xml,,所以如果读者顺利创建,可跳过2a,2b两部) 2a)创建User实体类 User.java package com.bean; public class User { public Integer id; public String firstname; public String lastname; public int age;

Java三大框架(ssh)总结

Hibernate框架 第一章数据结构 1.1认识数据结构 数据:是信息的载体,是能够被计算机识别、存储、计算的符号集合是计算机处理的对象的总称; 数据元素:也称为结点,是组成数据的基本单位; 数据项:是数据的最小单位; 数据对象:是具有相同特征的数据元素的集合,它是数据的子集; 数据结构:计算机存储、组织数据的方式; ●逻辑结构:指从逻辑关系上描述数据,与数据的存储无关,且独立于语言; ?线性结构:有且仅有一个开始结点和一个终端结点,所有结点最多只有一个前驱 结点和一个直接后继结点; ?非线性结构:指一个结点可能有多个直接前驱和直接后继结点。 ●存储结构:指数据元素及其关系在计算机存储时如何表示,依赖于语言; ●数据运算:通茶昂贵定义在数据的逻辑结构上。 1.2算法 是为求解一个问题需要遵循的,被清晰的制定的简单指令的集合;正确的算法有如下特点: ●用待处理问题的相关信息作为输入数据 ●对一个既定的合法输入,多次执行同一算法,总返回同一个结果(随机算法除外) ●算法中的指令是可行的,即每个指令都可以实现 ●算法中指令的数量是有限的 ●算法执行完毕后,能够输出正确的数据集合 1.3算法分析 目的在于选择合适的算法,算法分析是从复杂度来考虑的。复杂度:衡量一个算法好坏的重要手段; ●时间复杂度:以算法执行时间长短来衡量 ●空间复杂度:以算法执行占用的存储空间来衡量

第二章算法 第三章设计模式 3.1面向对象设计原则 单一职责原则:要求每个对象应该只有一种责任; 开闭原则:设计程序时对扩展开放,对修改关闭; 里氏替换原则:任何情况下,子类替换父类,不会影响程序运行; 依赖倒置原则:提倡高层不依赖底层,二者都依赖抽象; 接口隔离原则:把多个功能分开声明,不强迫客户实现不需要的功能; 迪米特原则:最少只是原则尽可能的降低访问级别; 组合/聚合复用原则:尽量不用继承达到复用类的目的,而是使用组合和聚合。 3.2设计模式分类 创建型模式:如何创建对象以及何时创建对象,工厂模式,单例模式 结构型模式:对象该如何组织以及采用什么样的结构更合理 行为型模式:规定了各个对象应该具备的职责以及对象间的通信模式 3.3什么是框架 应用程序骨架;框架技术的优势在于: ●不用再考虑公共问题,框架已经帮我们做好了 ●可以专心在业务逻辑上,保证核心业务逻辑的开发质量 ●结构统一,便于学习、维护 ●框架集成的前人的经验有助于写出稳健、性能优良并且结构优良的高质量程序 3.4主流框架 3.4.1 Struts框架 最早的Java开源框架之一,定义了通用的Controller(控制器),通过配置文件(一般是struts-config.xml)隔离了Model(模型)和View(视图),以Action的概念对用户请求进行了封装,是代码更清晰易读。 3.4.2 Struts2框架 新的框架特性: ●从逻辑中分离出横切关注点的拦截器 ●减少或者消除配置文件 ●贯穿整个框架的强大表达式语言 ●支持可变更和可重用的基于MVC模式的标签API

ssh2实例(带截图)

Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 在JavaEE企业级开发中,以SSH2框架为核心的应用非常广,大象根据项目实践经验,通过一个实例,详细的为大家讲解如何实现全注解式的开发。 开发环境 JDK1.6.0_18 Eclipse3.2.1 MyEclipse5.1.0 Tomcat6.0.10 MySQL5.0.27 Navicat Lite for MySQL 8.1.20 每个人的开发环境可能会有差异,但有一点我需要说明的是,JDK的版本不得低于1.5,因为用到了很多1.5版才支持的新特性。Tomcat和MySQL请不要低于我所用的版本,因为我没在其它的版本上进行测试。Navicat则是MySQL数据库的图形化操作工具。我在这里假定各位目前已经设置好了开发环境,下面就开始详细的说明。 由于要阐述的内容比较多,大象决定将它们划分成个几章节来讲,这一章就主要来说说jar包的选择。 第一部分:选择必须的jar包 新建一个web项目,然后将必要的jar包COPY到lib里面。根据本文实例demo,大象给出下图中的最少jar包配置。 我对这些jar包进行一下说明,方便大家理解。

解压Struts2.1.6的lib文件夹,从中选出上面7个jar包添加到我们的工程库中。commons-logging、freemarker、ognl、struts2-core、xwork这5个还是struts2的核心包。但在Struts2.1.6这个版本中,还需要加上commons-fileupload包。如果没有,则启动就会报错,不过不需要像网上传言的那样还得加上commons-io的jar包,这些大象都亲自做过测试。在本实例中,我将对struts2也采取注解的方式,所以用到了struts2-convention-plugin-2.1.6.jar这个插件。因为要与spring整合,所以struts2-spring-plugin-2.1.6.jar也必不可少。 大象在这里偷个懒,直接将spring的完整jar包加了进来,如果各位想精简类库的话,就选取它的分类jar包吧。比如本例使用struts2作为MVC框架,所以spring的webmvc就不可能用到了。有想改的朋友请自己动手改下。另外有点我想说下,如果采取完整spring的jar包,还需要Spring2.5.6\lib\concurrent文件夹中的backport-util-concurrent.jar,如果不加这个,spring会报错。但是采取spring分类jar包的形式,这个可以不用加,至于具体使用什么需要依赖这个包,大象还没去测试过,这个有待验证。还有lib\slf4j下的日志包,目前很多都开始采用基于slf4j 接口的日志器,它的好处就是日志器是根据slf4j的接口来进行实现,可以在不改变代码的情况下更换日志器。最后Spring的源代码中使用的是commons-logging记录日志,因此这个包不能少,不过因为struts2也用到了,所以这里就省了。 Hibernate从3.3版开始,对jar包结构做了一次大的调整,我们只需要加入lib\required文件夹下面的6个jar包。请注意这6个jar包都是使用Hibernate所必须的。另外再加上hibernate 核心包。这里我将slf4j-api-1.5.2.jar换成了1.5.0,这是因为slf4j是一个通用日志接口,不提供任何实现,我在demo里面使用的是log4j,而hibernate包里面没有log4j的slf4j实现。而且如果版本不一致,会有异常,因此我就采用Spring2.5.6\lib\slf4j里面提供的配套版本。另外我将commons-collections-3.1.jar换成了Struts2.1.6里面的3.2版。

图解SSH框架配置步骤

图解SSH框架配置步骤 核心提示:现在开发的一个项目使用S2SH框架,配置环境用了一两天,现在把当时配置环境时写的文档整理下发出来,也算加强点记忆。 1 开发环境 MyEclipse5.5 JDK 1.6 Java EE 5.0 Tomcat6.0 Struts2.1.6 Spring2.5.6 Hibernate3.3.1 2 为 ssh 做好准备 2.1 下载包 Struts2 现在开发的一个项目使用S2SH框架,配置环境用了一两天,现在把当时配置环境时写的文档整理下发出来,也算加强点记忆。 1 开发环境 MyEclipse5.5 JDK 1.6 Java EE 5.0 Tomcat6.0 Struts2.1.6 Spring2.5.6 Hibernate3.3.1 2 为ssh做好准备 2.1下载包 Struts2.1.6包下载: https://www.doczj.com/doc/de18220228.html,/download.cgi#struts216 Full Distribution: o struts-2.1.6-all.zip (110mb) [PGP] [MD5] Hibernate3.3包下载: https://https://www.doczj.com/doc/de18220228.html,/6.html Spring2.5下载: https://www.doczj.com/doc/de18220228.html,/download

2.2搭建开发环境 打开MyEclipse,新建一个web project,如图: 注意:J2ee版本设为java ee 5.0

点击Finish完成,建好的工程如图: 如果你的myeclipse还没有配置一个web服务器,那就进行下面的步骤,这里以tomcat6为例:

使用 Spring 框架的 ActionSupport组件整合 Struts 框架和 Spring框架的应用实例

1.1通过代码实例跟我学SSH三大框架相互整合的应用技术(第3部分)——使用 Spring 框架的 ActionSupport组件整合 Struts框架和Spring框架的应用实例 1、ActionSupport 类 (1)org.springframework.web.struts.ActionSupport 类的主要功能 它为org.apache.struts.action.Action类的子类,提供如下方面的功能(参考Spring API 文档说明) Convenience class for Spring-aware Struts 1.1+ Actions; Provides a reference to the current Spring application context, e.g. for bean lookup or resource loading. Auto-detects a ContextLoaderPlugIn context, falling back to the root WebApplicationContext. For typical usage, i.e. accessing middle tier beans, use a root WebApplicationContext. For Struts DispatchActions or Lookup/MappingDispatchActions, use the analogous DispatchActionSupport or LookupDispatchActionSupport / MappingDispatchActionSupport class, respectively. (2)继承关系 (3)实现的方法和要求

SSH项目的实现步骤

第1步、导入页面 将页面资料复制到项目的“WebRoot”文件夹下。注:确保每个页面的字符符合JSP的编码方式(GBK或UTF-8) 第2步、导入数据库驱动 将“mysql-connector-java-5[1].1.12-bin.jar”复制到项目的“WebRoot\WEB-INF\lib”文件夹下,刷新项目后出现。 第3步、添加Struts框架 1、添加Struts:在项目名字上点右键选择如下图 2、在“Base package for new classes”里填上“web”,点击Finish。

3、在web.xml文件里: <1>删除下面的配置 config /WEB-INF/struts-config.xml debug 3 detail 3 index.jsp <2>加上字符过滤器:

filter filter.CharFilter charSet gbk filter /* 4、在上点右键,新键一个filter包,然后下这个包下编写一个为CharFilter.java的文件,文件代码如下: package filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class CharFilter implements Filter { private String charSet=null; public void destroy() {} public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding(charSet); response.setCharacterEncoding(charSet); chain.doFilter(request, response);//向后传递控制权 } public void init(FilterConfig config) throws ServletException {

整合SSH三大框架介绍

一.在MyEclipse里先建立一个Web project 的项目,选最新版本的java ee。 二.添加struts2框架支持 1.引入struts2必须得几个jar包,放在WebRoot->WEB-INF->lib 目录下。 2.将WEB应用部署到tomcat服务器上:找到tomacat的安装目录Tomcat6.x\apache-tomcat-6.0.33\conf,打开其中的server.xml文件,在文件末尾上面加入例如 这样的句子,其中path的值为你需要访问网站的上下文,docBase的值为该web项目的WebRoot所在的目录,最后一个readloadable最好选true。 3.在WebRoot->WEB-INF->web.xml中加入struts2的过滤

器将部署好的应用纳入到struts2的管辖范围类,具体代码如下 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPre pareAndExecuteFilter struts2 /* 4.在web项目的src目录下,建一个struts.xml文件,这里是处理struts整个流程的文件。在其中加入 上面的name随便取,extends绝对不能变。 5.这样以后,启动tomcat服务器看看能不能正常启动,如果正常启动后,在浏览器上访问,http://localhost/上下文/index.jsp看能不能进入,若能进入则表示struts2的框架已经成功加到web项目中了,可以开始下一步了。

SSH2整合

Spring+Hibernate+Struts2整合文档 一、Spring+Struts2整合: 1、spring配置在web.xml文件中的上下文监听器: contextConfigLocation /WEB-INF/applicationContext*.xml org.springframwork.web.content.ContextLoaderListener 2、struts2配置在web.xml文件中的过滤器: struts2 org.apache.struts2.dispatcher.FilterDispatcher org.springframework.web.context.ContextLoaderListener struts2 /* 3、设置struts.xml文件,就可以使用spring的IOC来管理struts的Action:

SSH三大框架开发案例

jdk6+myeclipse8.5+tomcat6+oracle+spring2.0+hibernate3+struts2 好了,开始我们的第一个ssh2之旅吧。 首先先分析一下我们的第一个ssh2项目的需求,简单的说就是有一张表单,让你填写用户名和密码,提交后存入数据库。就这么简单,呵呵。 第一步:。我们首先新建一张mysql数据表。 Sql如下: Create table t_employee( Id integer not null primary key, Name varchar(20), Age varchar(20), Sex varchar(20), Tel varchar(20), Address varchar(20))

数据创建好后结构如下: 第二步 打开myeclipse,新建一个web项目,命名为ssh2-2, java ee规范我们选择5,如图 第三步务必小心的一步 导入ssh2的各个jar,步骤如下: 选中当前的项目后,点击菜单烂的myeclipse---project capablities----add hibernate项,跳

出如图 务必按照图示选择,尤其是copy checkde……一项,然后点击next,默认next,去掉specify database……复选框,next,去掉create session……复选框,finish。 再次选中选中当前的项目后,点击菜单烂的myeclipse---project capablities----add spring 项,跳出如图

依然务必按照如是选择,jar文件选择如下5个:

SSH框架开发起步的最好例子

一、添加商品到购物车 开发步骤: 1) 创建数据库表及进行反向工程 2) 创建购物车模型 3) 编写DAO 层 4) 编写Service 层 5) 编写Action 层 6) 编写struts 和Spring 配置文件 7) 编写JSP 页面 具体操作如下: 1. 创建数据库表 订单表(orders),包含3 个字段:orderid(订单编号),userid(用户表的关联字段),orderdate(订单日期) 订单项表(orderitem),包含4 个字段:orderitemid(订单项编号),

orderid(与订 单表关联字段),bookid(与图书表关联字段),quantity(数量) 进行两张表的反向工程,生成响应的POJO 和hbm.xml 文件。 2. 创建购物车模型 创建购物车模型购物车模型Cart

Cart.java 代码如下: package com.sxjiang.bookstore.model; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import com.sxjiang.bookstore.vo.Orderitem; public final class Cart { protected Map items; public Cart(){ if(items==null) { items=new HashMap(); } } public void addBook(Integer bookid,Orderitem orderitem){ if(items.containsKey("bookid")){

交换机ssh典型配置案例

交换机SSH应用配置: 网络连接: SSH终端与交换机建立本地连接,能ping通交换机即可。 交换机及终端配置过程: 在交换机上,SSH支持的认证方式有两种,分别为口令认证和RSA认证。此处采用的SSH客户端为免费的putty程序。 1、口令认证方式: 交换机上的配置: [Quidway] rsa local-key-pair create [Quidway] user-interface vty 0 4 [Quidway-ui-vty0-4] authentication-mode scheme [Quidway-ui-vty0-4] protocol inbound ssh [Quidway] local-user ssh1 [Quidway-luser-ssh1] password simple huawei [Quidway-luser-ssh1] service-type ssh [Quidway] ssh user ssh1 authentication-type password 注:此时添加的ssh用户ssh1的级别为默认的级别1,如果想要管理交换机还需在交换机上配置super password;也可以直接配置ssh1的级别为最高的level 3: [Quidway-luser-ssh1] service-type ssh level 3 客户端的配置: 在Host Name处输入交换机的ip地址:

交换机支持的SSH版本只能为1:

在下面的界面里面选择验证方式为SSH1,不选择验证参数:

单击Open按钮,出现登陆提示框,输入用户名及密码即可:

SSH集成spring-Struts2整合详细步骤

搭建SSH框架spring与struts2的集成 1:单独配置struts 一:导入struts包 二:编写Action public class JboaEmployeeAction extends ActionSupport { public String login(){ System.out.println("login.............."); return SUCCESS; } }

三:配置struts.xml index.jsp 四:配置web.xml ---struts2的核心控制器 index.jsp

一个完整的SSH的例子源代码

一个完整的SSH的例子源代码 各个文件齐全 各个文件都是我从项目中一个一个拷贝出来的,一个都不少 Web.xml contextConfigLocation classpath:beans.xml org.springframework.web.context.ContextLoaderListener struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /*

相关主题
文本预览
相关文档 最新文档