SSH框架开发起步的最好例子
- 格式:doc
- 大小:1.59 MB
- 文档页数:23
题目:基于SSH的微博系统的开发摘要在计算机软件普遍应用的今天,更多的软件应运而生,最火的当属是微博,微信等等。
不同的软件除了给大家带来便利的同时,更是给大家一种足不出户就可以与好朋友交流的机会。
该系统的核心是一个微博式的交友平台,然后以微博用户群为基础,逐渐拓展其他功能。
从生活的条件方面来看,基本上大学生每个人手里都会准备一台电脑;从软件条件来说,大学生是接受能力最强的群体,一套新的系统在大学生中更易推广;从需求来说,一个微博式的校内交友平台正是当今大学生所急需的。
当前的系统使用的是普遍适用的B/S架构,并且框架选择的是大家熟知的SSH 框架,前端则使用的是html+jsp+ajax来进行展现,实现了收发微博信息模块,关注模块,收藏模块,好友管理模块,趣点模块,评论模块,覆盖了微博系统绝大多数的功能。
SSH框架当中,Spring的部分主要是用来整合框架,降低框架之间的排斥程度,Struts在过滤内容,过滤请求方面广泛使用,Hibernate目前主要在数据库这一方面使用,它的内部有很多利于我们更加方便快捷使用数据库的内置函数。
由于SSH框架封装完善,语句与逻辑较为清晰。
因此操作简单,管理容易,方便用户和管理员使用。
另外在文中列举了较为详细的功能以及相应的流程图等用于说明,并且对每一部分系统都进行了详细的测试。
当前开发的这个微博系统可以使得学生在学习和生活两方面交流更加顺畅,为大学生在校的学习生活增添不少的乐趣关键词:SSH复合框架,JSP+Html,MySql,B/S模式北京联合大学毕业论文ABSTRACTToday. The most popular ones are micro-blog, WeChat and so on. Different software not only brings convenience to everyone, but also gives you an opportunity to communicate with good friends without leaving home. The core of the system is a micro-blog style dating platform, and then gradually expand other functions based on micro-blog user group. From the hardware conditions, college students almost havea computer; from the software conditions, and a new system is easier to promote among college students; from demand, a micro-blog type of campus dating platform is the urgent need for today's college students.The current system uses a widely used B/S architecture, and the framework selects the known SSH framework, and the front end uses html+jsp+ajax to display, realizes the micro-blog information module, focuses on module, collection module, friend management module, interest point block, review module, covering the absolute micro-blog system. In the SSH framework, Spring integrates and encapsulates frameworks, Struts is used for filtering files and processes, and Hibernate is used to manage databases. Because SSH framework is packaged perfectly, statements and logic are clearer. Therefore, the operation is simple and the management is easy, which is convenient for users and administrators to use. In addition, the detailed functions and corresponding flow charts are listed for illustration, and each part of the system is tested in detail. The system is close to university life, can help college students get to know more like-minded friends, and make college students more relaxed and colorful in their school life.KEY WORDS: Zhaiqingsong,SSH, JSP,MySql,B/S Model目录引言 (2)第1章相关技术及工具介绍 (3)1. SSH框架简介 (3)1.Struts2 (3)2.Hibernate (3)3.Spring (3)第2章系统需求分析 (5)1.主要业务流程 (5)2. 设计目标/目的 (5)3. 需求分析 (6)第3章总体概况设计 (12)4. 架构设计 (12)5. 功能设计 (12)6. 数据库结构设计 (13)1. 概念结构设计 (13)2. 逻辑设计 (14)3. 数据库实现 (14)4. 关于框架间的类和接口设计 (18)第4章系统设计实现 (23)5. 功能设计部分 (23)6. 类相关部分的设计 (29)第5章系统测试 (46)5.1 测试目标 (46)5.2 测试系统与设备 (46)5.3 测试范围相关 (47)5.4 测试相关 (47)结论 (51)致谢 (52)参考文献 (53)引言现在的大学生活绝对少不了网络,各个学校也因此在校园当中开设了自己的校园网,使得大学的学习生活方式更加的多种多样。
第一步,创建WEB工程,添加struts支持第二步,分包第三步,添加spring支持第四步,添加spring配置文件第五步,在web.xml文件中配置初始化读取参数(spring的配置文件)<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml</param-value> </context-param>第六步,配置spring监听器<listener><listener-class>org.springframework.web.context.ContextLoaderL istener</listener-class></listener>第七步,在struts-config.xml文件中配置请求处理器,将struts请求委托给spring代理,达到控制反转的目的<controller processorClass=“org.springframework.web.struts.DelegatingRequestProcessor"></controller>第八步,添加hibernate支持第九步,配置好hibernate以后,在applicationContext.xml文件中会自动生成“数据源”,“sessionFactory”,代码如下:<!-- 配置数据源 --><bean id="dsid" class="org.apachemons.dbcp.BasicDataSource"> <!-- 方法注入 --><property name="driverClassName"value="com.microsoft.jdbc.sqlserver.SQLServerDriver"> </property><property name="url"value="jdbc:microsoft:sqlserver://localhost:1433;databaseName= pubs"></property><property name="username" value="sa"></property><property name="password" value="sa"></property> </bean><!-- 将hib中的sessionFactory封装 --><bean id="sfid"class="org.springframework.orm.hibernate3.LocalSessionFactoryB ean"><!-- 引用实例化好的数据源 --><property name="dataSource"><ref bean="dsid" /></property><property name="hibernateProperties"><props><!-- 设置数据库方言 --><prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop><prop key="show_sql">true</prop></props></property></bean>第十步,通过表,反向生成”实体类”,”配置文件”第十一步,当正确添加实体后,在appilcationContext.xml文件中会自动添加实体类的映射<!-- 将hib中的sessionFactory封装 --><bean id="sfid"class="org.springframework.orm.hibernate3.LocalSessionFactoryB ean"><!-- 映射表对象 --><property name="mappingResources"><list><value>com/alex/ssh/entity/Root58.hbm.xml</value> </list></property></bean>第十二步,修改DAO类的位置,修改配置文件属性值<bean id="Root58DAO" class="com.alex.ssh.dao.Root58DAO"> <property name="sessionFactory"><ref bean="sfid" /></property></bean>第十三步,添加service类,反转service Class<!-- 反转service --><bean id="rootService"class="com.alex.ssh.service.RootService"><property name="dao"><ref bean="Root58DAO"/></property></bean>public void save(RootForm root) {Root58 r = new Root58();r.setUsername(root.getName());r.setUsercity(root.getCity());this.getDao().save(r);第十四步,添加struts部分(添加jsp,form,action)第十五步,将struts-config.xml文件中action节点的type属性去掉<action name="rootForm"path="/root"/>第十六步,在acpplicationContext.xml文件中代理action类,也是一种控制反转的实现<!-- 反转action name属性的取值与struts配置中的path="/root"一致 --> <bean name="/root" class="com.alex.ssh.action.RootAction" > <property name="service"><ref bean="rootService"/></property></bean>第十七步,运行调试SSH生命周期Struts,Hibernate,Spring经典面试题收藏关键字: struts, hibernate, springHibernate工作原理及为什么要用?原理:1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory3.打开Sesssion4.创建事务Transation5.持久化操作6.提交事务7.关闭Session8.关闭SesstionFactory为什么要用:1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
1创建Web工程2添加struts点击“Finish”3添加spring注意:要选择前四项及“Spring Web Libraries”库点击“Finish”3.1 手工添加库org.springframework.orm*.jar 注意,如果按照教材的顺序,则不需要手工添加。
4添加Hibernate 4.1 建立数据库连接点击“Finish”4.2 创建包“dao”4.3 对各表Hibernate反向工程下为对myuser表进行示例4.3.1切换到Database Explorer开发视图5在dao包下创建测试类5.1 实现main函数6部署及启动tomcat7测试8创建Service类8.1 创建service包8.2 在service包下创建MyUserService类(普通的Class)8.2.1定义私有成员变量private MyuserDAO myUserDAO;8.2.1.1 将该类作为一个Bean配置到application.xml中8.2.1.2为该私有成员定义getter/setter,以便当该类作为Bean使用时方便时读取/设置该属性8.2.1.3 添加相当服务方法addUser和getAllUserListpublic void addUser(Myuser user){myUserDAO.save(user);}public List<Myuser> getAllUserList(){return myUserDAO.findAll();}8.3 测试在MyUserService类中添加man函数用于测试。
类似于DAO的测试,不再重复。
9表现层的实现示例表现层将完成对User.jsp所提交的用户myUser的名字(username)进行验证,如果通过则通过MyUserService类成员变量myUserService以该名字添加一个新的用户并转到成功提示页面,提示welcome消息,否则返回原JSP(用result转向input表示)。
搭建SSH框架:Struts1.* + Spring2.5 + Hibernate3.0 一,项目结构:图(1)Jsp页面省略,主要是一些添删改查的页面;二,开始搭建项目环境,步骤如下:使用平台:MyEclipse6.0/6.5框架版本:Struts1.* + Spring2.5 + Hibernate3.0;1,添加过程:1>,新建项目: 打开MyEclipse,在Package Explorer视图下,右键单击New-> Web Project;注意:在新建项目时,JDK的版本最好要选择Java EE 5.0;因为版本过低,可能有些JSP方面的功能不支持;新建玩项目之后,把该导的包导入到下面,下图为SS H 框架所需要的Jar包,注意,该项目用的是ORACLE数据库;其中,activation与mail这两个包为Java发邮件的包;classes12为Oracle数据库的驱动包,如果不是Oracle数据库,可更换该Jar包;dwe为Ajax dwr 框架中的包;2>,接着就开始用MyEclipse辅助开发Struts,Spring,Hibernate了;3>,首先MyEclipse辅助开发Struts,方法:右键单击你所建的项目,出现一级菜单,选择Myeclipse,选择Myeclipse之后会出现二级菜单,接着选择Add Struts Capabilities;;接着具体操作如下面图示:点击Finish按钮完成;完成之后,可将包删除;在上图中,如果那个勾没有去掉的话,就会自动生产如下标签:当然,如果你觉得标签对你没什么用的话,可以删除;如果该勾去掉的话,就只生成标签,这是Struts的核心标签;4>,MyEclipse辅助开发Spring,方法跟上面的一样,选择Add Spring apabilities;;接着具体操作如下面图示:然后点击Next,具体操作如下图:接着点击 Finish按钮,完成此项操作;5>,,最后MyEclipse辅助开发Hibernate,在执行和上面类似方法之前,Hibernate 需要先做另外一件事情,那就是和数据建立连接,具体操作如下图:点击上图位置的或者右边的>> ,然后再选择MyEclipse Database Explorer切换到如下图页面:,然后右键单击,新建一个Database Driver;如下图:下面这个截图是该项目的数据库链接图:如图所示,测试数据库链接成功;然后可直接点击Finish完成;接着切换到窗口,按照上面第三小步的方法,选择Add Hibernate apabilities;;接着具体操作如下面图示:点击下一步:点击下一步:点击下一步:点击下一步:点击 Finish 完成;6>,最后一步,就是运用Hibernate的映射机制,把数据库的表与JAVA的对形成一个关系映射;在此之前,首先应该在项目SRC的目录下面新建一个包,如该项目所示,用来存放映射生成的POJO对象以及映射文件;如下图:有一点说一下,你生成的*.hbm.xml文件可能不止一个,对,你可以把它们整合到一个文件中;然后新建按第五小步的方法,把窗口切换到MyEclipse Database Explorer界面,然后打开右键刚才所建立的链接,选择属于你自己的用户;然后选择Tble;右键选择如上图的属性:接下来的操作如下图:点击 Next,进入下一步:点击 Next,进入下一步:至此,项目环境己经搭建完成;三,项目搭建完成,SSH各个部分配置文件的说明,以及它们之间存在的关系:1,首先是Struts的核心配置文件,即struts-config.xml:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN""/dtds/struts-config_1_2.dtd"><struts-config><data-sources /><form-beans><!—建立Form表单,在此处进行登记 -→<form-bean name="userForm"type="erForm" /> </form-beans><global-exceptions /><global-forwards /><!—各个Action对应与之相对应的表单 -→<action-mappings><!-- 用户管理 --><action parameter="opers" attribute="userForm" name="userForm"path="/doUser" scope="request"><forward name="login_ok" path="/welcome.jsp"></forward><forward name="login_no" path="/index.jsp"></forward> </action></action-mappings><controllerprocessorClass="org.springframework.web.struts.DelegatingRequestProc essor"></controller><message-resourcesparameter="ermanagerview.struts.ApplicationResources"> </message-resources><!—Spring辅助Struts管理Struts-→<plug-inclassName="org.springframework.web.struts.ContextLoaderPlugIn"><set-property property="contextConfigLocation"value="/WEB-INF/action-servlet.xml" /></plug-in></struts-config>2,其次就是Springd的applicationContext.xml文件和action-servlet.xml文件:applicationContext.xml文件:<?xml version="1.0" encoding="UTF-8"?><beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.5.xsd"><!-- Session 工厂 --><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"value="classpath:hibernate.cfg.xml"><!-- 可以不要配置文件(hibernate.cfg.xml),直接写在这个Spring的配置文件中 --></property></bean><!-- 模板 --><bean id="hibernateTemplate"class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory" /> </bean><!-- 事务器 --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManage r"><property name="sessionFactory" ref="sessionFactory" /> </bean><!-- 对外代理 --><!-- 1,用户管理 --><bean id="userDaoImp"class="erDaoImp"><property name="hibernateTemplate" ref="hibernateTemplate" /> </bean><bean id="userServiceTarget"class="erServiceImp"> <property name="userdao"><ref local="userDaoImp" /></property></bean><bean id="userService"class="org.springframework.transaction.interceptor.TransactionProxyF actoryBean"><property name="transactionManager"><ref local="transactionManager" /></property><property name="target"><ref local="userServiceTarget" /></property><property name="transactionAttributes"><props><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean></beans>action-servlet.xml文件:<!—Spring辅助Struts管理Struts-<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.0.xsd"> <bean name="/doUser"class="erAction"scope="prototype"></bean></beans>3,最后就是Hibernate的hibernate.cfg..xml文件:<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. --><hibernate-configuration><session-factory><property name="ername">wangxiaodong</property><property name="connection.url">jdbc:oracle:thin:@192.168.0.2:1521:ALIZEEDB</property><property name="dialect">org.hibernate.dialect.Oracle9Dialect</property><propertyname="myeclipse.connection.profile">Test</property><property name="connection.password">donny</property><property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property><mappingresource="com/ygkq/usermanager/model/entity/User.hbm.xml" /></session-factory></hibernate-configuration>该文件基本上不用动,都是自动生成的代码;当然,你也可以根据自己的需要添加代码,例如,你想在执行HQL语句的时候让它显示SQL语句,可将<property name="hibernate.show_sql">true</property>插入代码中;另外在图(1)中还有两个配置文件没有提到,那就是log4j.properties 与mytag.tld;其中log4j.properties是配置日志信息的;而mytag.tld主一个自定义标签;四,SSH框架搭建完成:SSH框架基本搭建完成,如果有不对或者不妥之处,请随时指教!~E-mail:jerry8059@。
《软件开发与项目管理》课程案例—-基于SSH框架的学工管理系统的设计与实现一、项目简介(一)项目来源XXX学院是集教学研究、技术培训、项目开发、技术服务为一体的完善体系二级管理单位,以前的办公管理,存在着管理复杂、烦琐及信息冗余等弊端,而且由于不可避免的人为原因,总存在一些误差,存在很大的不科学性。
随着电脑的普及和学院对协同办公要求的提高,协同办公的定义随之扩展,将其提升到了智能化办公的范畴.学院不仅需要解决日常办公、基础信息管理、信息交流等常规协同的功能,并且在即时沟通、数据共享、移动办公等方面提出了更进一步的需求,以提高他们工作效益和管理水平。
根据学院本身的需要,设计了一个学工管理系统,该统融合最新的企业OA办公自动化管理理念,支持智能查找,动态报表,及时交流等功能,容纳大量数据的OA办公系统,提供低成本的,无纸化,可视化的自动化解决方案。
该系统采用模块化结构设计、可扩展性强、易于维护、操作简便为全院教职工提供良好的办公手段和环境,使之准确、高效、心情愉快地工作。
(二)项目功能学工办自动化管理系统主要包括:日常管理、班主任管理、公寓管理、团委管理、党务管理、系统管理这6个模块。
本案例主要说明系统管理模块,该模块在整个系统中及其的重要,该模块主要有:人员角色管理、角色管理、权限管理、角色权限管理、分栏管理、部门管理、学生登录信息管理这七个小功能,不同用户由于权限不同属于不同的角色,角色与权限相对应.增加一个用户时同时设置该用户的角色,有了角色就具备了一定的权限。
二、系统开发技术SSH2框架将服务器端应用分为DAO层、Service层、Action控制层、Spring容器层、视图层,各层之间通过接口联系。
DAO层完成数据库增加、删除、修改等细节,DAO层将底层数据库访问操作和业务逻辑分开,对业务层提供面向对象的访问接口。
Service业务层提供了处理应用程序的业务逻辑和业务校验.控制层的控制器Action接受用户的输入并调用业务层的业务方法和表示层的组件去完成用户的请求。
MyEclipse开发SSH框架搭建(Struts+Spring+Hibernate)1.1. 新建工程操作:[Menu] File/New/Web Project工程名:school2. Struts 部分2.1. 添加Struts 功能支持操作:选1.3将Base package for new classes改为com.dp.school 2.2. 创建ActionForm 类操作:[Ctrl+N] MyEclipse/Web-Struts/Struts 1.3 Form 类名:LoginFormuserCase:LoginForm type: com.dp.school.actionForm.LoginForm在“Form Properties” 选项卡为loginForm 新增两个属性:userName、password;在“JSP” 选项卡钩选“Create JSP form” 选项,将新建路径改为“/user/login.jsp”(login.jsp文件将被自动创建)。
2.3. 创建Action 类操作:[Ctrl+N] MyEclipse/Web-Struts/Struts 1.3 Action类名:LoginActionuserCase loginform选项卡的name点Browse…选loginFormInput Source点Browse…选user文件夹下的login.jsp2.4. 创建index.jsp 文件如果没有,创建index.jsp 文件,并添加一个指向login.jsp 的链接:<a href=”user/login.jsp”>Login</a>。
(user/login.jsp是school下路径,/user/login.jsp是绝对路径,直接http://localhost:8080/user/login.jsp)<%@page language="java"import="java.util.*"pageEncoding="GB2312"%> <%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma"content="no-cache"><meta http-equiv="cache-control"content="no-cache"><meta http-equiv="expires"content="0"><meta http-equiv="keywords"content="keyword1,keyword2,keyword3"> <meta http-equiv="description"content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><a href="user/login.jsp">登陆</a></body></html>2.5. 创建Forword类操作:[Ctrl+N] MyEclipse/Web-Struts/Struts 1.3 Forword类名:indexForwordName: indexPagePath: /index.jsp2.6. 修改LoginAction.java 文件修改LoginAction 类的execute 方法:/** Generated by MyEclipse Struts* Template path: templates/java/JavaClass.vtl */package com.dp.school.action;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.dp.school.actionForm.LoginForm;/*** MyEclipse Struts* Creation date: 11-06-2009** XDoclet definition:* @struts.action path="/login" name="loginForm" input="/user/login.jsp" scope="request" validate="true"*/public class LoginAction extends Action {/** Generated Methods*//*** Method execute* @param mapping* @param form* @param request* @param response* @return ActionForward*/public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stubString userName = loginForm.getUserName();String password = loginForm.getPassword();if(userName.equals("test")||password.equals("test")){return mapping.findForward("indexPage");}else{return mapping.getInputForward();}}}2.7. 修改login.jsp 文件修改<html:form> 标签:<html:form action=”/login”>。
SSH框架搭建教程SSH(Spring + Spring MVC + Hibernate)是一种JavaEE开发的框架组合,被广泛应用于企业级Web应用的开发。
本教程将详细介绍如何搭建SSH框架。
第一步:环境准备第二步:创建Spring项目在搭建SSH框架之前,我们需要先创建一个Spring项目。
在Eclipse中,选择“File -> New -> Project”菜单项,然后选择“Spring -> Spring Project”。
在创建项目的对话框中,选择Maven作为构建工具,并且勾选上“Create a simple project (skip archetype selection)”选项。
填写项目的基本信息后,点击“Finish”按钮开始创建项目。
这样,一个基本的Spring项目就创建完成了。
第三步:配置Spring框架在Spring项目中,我们需要创建一个配置文件(通常称为applicationContext.xml)来配置Spring框架。
该文件可以放在src/main/resources目录下。
在配置文件中,我们需要配置一些基本的Spring设置,例如数据库连接、事务管理等。
此外,我们还需要配置Spring扫描注解的包路径,以便框架能够自动发现和加载注解。
第四步:创建Hibernate实体类和映射文件在SSH框架中,Hibernate用于持久化数据。
我们需要创建相应的实体类来映射数据库表,并且编写Hibernate映射文件来描述实体类和数据库表之间的关系。
实体类可以使用Java的POJO类表示,而映射文件可以使用Hibernate的XML格式编写。
映射文件需要保存在src/main/resources目录下。
第五步:配置Hibernate框架在Spring项目中,我们需要创建一个Hibernate的配置文件(通常称为hibernate.cfg.xml)来配置Hibernate框架。
搭建ssh开发环境Struts1.3.8 spring2.0.7 hibernate3.0准备工作:1,执行sql脚本创建数据库,并添加初始化数据。
-- Create tablecreate table ADMIN(id NUMBER(10) not null,admin_id VARCHAR2(255CHAR),dept VARCHAR2(255CHAR),email VARCHAR2(255CHAR),last_login_ip VARCHAR2(255CHAR),name VARCHAR2(255CHAR),last_login_time DATE,password VARCHAR2(255CHAR),state CHAR(1CHAR),role_id NUMBER(10))tablespace SYSTEMpctfree10pctused40initrans1maxtrans255storage(initial64Kminextents1maxextents unlimited);-- Create/Recreate primary, unique and foreign key constraints alter table ADMINadd primary key (ID)using indextablespace SYSTEMpctfree10initrans2maxtrans255storage(initial64Kminextents1maxextents unlimited);insert into ADMIN (ID, ADMIN_ID, DEPT, EMAIL, LAST_LOGIN_IP, NAME, LAST_LOGIN_TIME, PASSWORD, STATE, ROLE_ID) values (3, '4343534f534', 'deptf22', 'emafil22', 'lasft6666', 'nfame33', to_date('16-01-2012', 'dd-mm-yyyy'), 'pasfsword33', 'n', 4);2,新建一个动态的web项目3,在项目工程WEB-INF/lib下添加ssh整合所需要的jar包。
SSH框架搭建详细图⽂教程⼀、什么是SSH?SSH是JavaEE中三种框架(Struts+Spring+Hibernate)的集成框架,是⽬前⽐较流⾏的⼀种Java Web开源框架。
SSH主要⽤于Java Web的开发。
现在SSH有SSH1和SSH2两种,区别在于Struts的版本是struts1.x还是2.x。
本⽂介绍的是SSH1。
⼆、Struts Spring Hibernate各起什么作⽤?Struts:控制逻辑关系。
Spring:解耦。
Hibernate:操作数据库。
三、学习SSH的⼀些建议SSH适合开发⼀些中、⼤型的企业级⽹站。
功能强⼤,性能也⾼。
但是学习成本也⾼,⿇烦也不少,不擅长做⼩型⽹站或便捷开发。
如果你熟悉Java并准备做动态⽹站的开发,SSH值得学习,如果你不熟悉Java,或没有⼀定的编程经验,只想做个简单的个⼈⽹站或者论坛。
PHP也许更适合你。
四、准备⼯作俗话说:“⼯欲善其事必先利其器”。
让我们看看在搭建SSH前需要准备哪些⼯具吧。
1.JDK[] [] []做Java开发第⼀步当然是Java开发环境了,JDK是必备的,本⽂中⽤的是jdk-8u111。
2.MyEclipse[] [] []搭建SSH最好⽤的开发⼯具了,本⽂中⽤的是MyEclipse 10。
3.MySQL[] [] []完整的动态⽹站需要⼀个数据库。
注意安装时设置的密码千万别忘了。
本⽂中⽤的是MySQL 5.5.53。
4.Navicat for MySQL[] [] []MySQL可视化开发⼯具,主要⽤他来操作数据库。
本⽂中⽤的是Navicat for MySQL 10.1.75.JDBC[] []数据库连接池,这是Java连接数据库必备的jar包。
本⽂中⽤的是mysql-connector-java-5.0.8-bin.jar。
安装顺序:JDK > MyEclipse > MySQL > Navicat for MySQL⽹站结构和开发⼯具作⽤如下图:五、搭建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")){ Orderitem _orderitem=items.get(bookid); _orderitem.setQuantity(_orderitem.getOrderitemid()+orderitem.getQ uantity()); items.put(bookid, _orderitem); } else{ items.put(bookid, orderitem); } } public void updateCart(Integer bookid,int quantity){ Orderitem orderitem=items.get(bookid); orderitem.setQuantity(quantity); items.put(bookid, orderitem); } public int getTotalPrice(){ int totalPrice=0; for(Iterator it=items.values().iterator();it.hasNext();){ Orderitem orderitem=(Orderitem)it.next(); Book book=orderitem.getBook(); int quantity=orderitem.getQuantity(); totalPrice+=book.getPrice()*quantity; } return totalPrice; } public Map getItems() { return items; } public void setItems(Map items) { this.items = items; } } 3. DAO DAO 层主要的类为BaseDAO 类,IBookDAO 接口和BookDAO 类。在IBookDAO 中定义了 getBookById()方法,通过这个方法可以根据id 号,得到书的信息。BookDAO 具体实现了这个接口。 修改IBookDAO.java,加上如下代码: public Book getBookById(Integer bookid);//根据图书号得到图书 修改BookDAO.java 实现getBookById()方法 public Book getBookById(Integer bookid) { // TODO Auto-generated method stub Session session=getSession(); Book book=(Book)session.get(Book.class, bookid); session.close(); return book; } 4. Service 在IBookService 接口中定义getBookById(),根据图书号获得图书,在BookService 中实现此方法。 修改IBookService.java,加上getBookById()的定义: //根据图书号得到图书 public Book getBookById(Integer bookid); 修改BookService.java,实现getBookById()方法。 public Book getBookById(Integer bookid) { // TODO Auto-generated method stub return bookDAO.getBookById(bookid); } 5. Action 创建ShoppingAction,通过addToCart()方法,完成将图书放入购物车中。
ShoppingAction.java 代码如下: package com.sxjiang.bookstore.action; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.sxjiang.bookstore.model.Cart; import com.sxjiang.bookstore.service.IBookService; import com.sxjiang.bookstore.vo.Book; import com.sxjiang.bookstore.vo.Orderitem; public class ShoppingAction extends ActionSupport { private Integer bookid; private int quantity; private IBookService bookService; public String addToCart() throws Exception{ Book book=bookService.getBookById(bookid); Orderitem orderitem=new Orderitem(); orderitem.setBookid(book.getBookid()); orderitem.setQuantity(quantity); Map session=ActionContext.getContext().getSession(); Cart cart=(Cart)session.get("cart"); if(cart==null){ cart=new Cart(); } cart.addBook(bookid, orderitem); session.put("cart",cart); return SUCCESS; } public String updateCart() throws Exception{ Map session=ActionContext.getContext().getSession(); Cart cart=(Cart)session.get("cart"); cart.updateCart(bookid, quantity); session.put("cart", cart); return SUCCESS; } public Integer getBookid() { return bookid; } public void setBookid(Integer bookid) { this.bookid = bookid; } public int getQuantity() { return quantity; } public void setQuantity(int quantity) { this.quantity = quantity; } public IBookService getBookService() { return bookService; } public void setBookService(IBookService bookService) { this.bookService=bookService; } } 6. 配置struts.xml 和applicationContext.xml 在struts.xml 中增加名为:addToCart 的Action 代码如下: "shoppingAction" method="addToCart"> /addToCart_result.jsp 在applicationContext.xml 中增加shoppringAction 的bean 的配置 "shoppingAction" class="com.sxjiang.bookstore.action.ShoppingAction"> 7. 编写JSP 页面