SSH框架的简单搭建步骤
l MyEclipse6.5
l Tomcat5.5.26
l MySQL5.0
l 数据库脚本程序
CREATE TABLE user (
id int(11) NOT NULL auto_increment,
username varchar(50) default NULL,
password varchar(50) default NULL,
PRIMARY KEY (id)
);
INSERT INTO user VALUES ('1', 'admin', 'admin');
环境的搭建这里就不写了,估计大家应该很熟悉,不会的可以上网看一下,有很多这样的资料。
3.Go!让我们开始创建工程
打开MyEclipse,需要注意的是这里应该处于MyEclipse Java Enterprise视图;新建一个Web Project,输入适当的工程名字,这里我们输入ssh,Finish即可。
确定之后MyEclipse会生成名为SSH的项目,其中生成的目录结构如下所示:
4.添加Struts1.2框架支持
在ssh工程上面右击,在弹出的菜单中选择MyEclipse -> Add Struts Capabilities…,添加Struts的支持。
在弹出的对话框中选择Struts 1.2,修改Base package for new classes成所需的包名,其余保持原状,Finish即可
完成后的结构为:
5.添加Spring2.0框架支持
在ssh工程上面右击,在弹出的菜单中选择MyEclipse -> Add spring Capabilities…,添加Spring框架支持
由于Spring采取最小化库发布的方式,使得Spring的库文件彼此都是分离的,因而我们需要自己选择需要的库,需要引用的如下图:
选择好后Next,在窗口中选择Browse,选择ssh工程下面的WEB-INF文件夹,然后Finsh。
6.配置数据源
在MyEclipse右上角选择MyEclipse Database Explorer,打开数据库管理视图。
在左侧的DB Browser点击右键,选择New…,打开Database Driver对话框。
在Database Driver对话框中按照如下配置选择数据库驱动。首先选择Driver Template,在这里我们选择MySQL。Driver Name是以后配置时使用的驱动名字,用以区分驱动,这里使用MySQL即可。然后根据实际情况填写URL,User name和Password。点击Add JARs添加数据库驱动文件。为方便配置,可以选择Save password保存密码。配置完毕后Finish即可。
7.Spring与hibernate的整合
当配置完数据源后,就可以添加Hibernate支持了。切换到MyEclipse Java Enterprise视图,在ssh工程上面右击,在弹出的菜单中选择MyEclipse -> Add Hibernate Capabilities…,添加Hibernate的支持。
我们选择Hibernate3.2,全部按照默认设置即可,然后点击Next;
在对话框中选择Spring configuration file,表示我们希望将Hibernate托管给Spring进行管理,这是将Hibernate与Spring进行整合的基础。然后点击Next;
在出现的对话框中选择Existing Spring configuration file。因为我们已经添加了Spring的配置文件,所以这里选择的是已存在的配置文件。MyEclipse会自动找到存在的那个文件。然后在SessionFactory ID中输入Hibernate的SessionFactory在Spring配置文件中的Bean ID的名字,这里我们输入sessionFactory即可。然后点击Next;
在出现的对话框中的Bean Id里面输入数据源在Spring中的Bean ID的名字,这里我们输入dataSource。然后在DB Driver里面选择我们刚刚配置好的ssh,MyEclipse会将其余的信息自动填写到表格里面。然后点击Next;
在出现的对话框中取消Create SessionFactory class。点击Finish即可。
此时MyEclipse会自动打开Spring的配置文件,文件内容为:
此时,切换到MyEclipse DataBase Explorer视图,右键打开数据库连接,在需要使用的数据表格上面点击右键,选择Hibernate Reverse Engineering...。这里我们使用刚刚建立在test数据库中添加的user表。
在打开的对话框中修改Java src folder为我们建立的/ssh/src,这里需要选择到src文件夹,并且需要填写Java package,这是MyEclipse生成的类所在的包,我们将其取名为user。然后选择Java Data Object,建立POJO类。然后选择Java Data Access Object。其中,POJO类是数据库表格所对应的Java类,JDO类是MyEclipse自动生成的对数据库的一些操作。这里会封装一些常用的操作,简化我们的编写。填写完成后点击Next。
在出现的对话框中选择ID Generator为native,然后点击Finish即可。
此时ssh项目的目录结构如下所示。其中的User.Java是MyEclipse生成的使用面向对象的Java语言对数据库表格进行的抽象,User.hbm.xml是将数据库表格中的字段和POJO类的属性进行映射的定义,UserDAO.java封装了一些MyEclipse自动生成的对数据库的操作。
这时我们修改一下文件目录,使之更好的组织。我们建立一个dao包,将DAO类与POJO类分开。然后我们在struts包下面建立action和form包,用来管理Struts的Action和Form。为了将实现与接口进行解耦,我们建议在dao包下面添加接口,然后建立dao.impl包,将实际的DAO类放在这里。DAO类是直接与数据库打交道的类,为了对业务逻辑进行封装,我们将业务全部写在service类里面,和dao一样,我们先建立service包,里面添加业务接口,具体的实现放在service.impl里面。
将UserDAO.java移动到dao的impl包下面,并在dao包下建立接口IUserDAO,内容为:
package com.ssh.dao; import java.util.List; import com.ssh.user.User; public interface IUserDAO { public User findById(Integer id); public List findByUsername(Object username); public void save(User user); } |
在service中建立接口IUserService.java,在service中impl中建立UserService.java
IUserService.java package com.ssh.service; import com.ssh.user.User; public interface IUserService { public User getUserById(Integer id); public User getUserByUsername(String username); public void addUser(User user); } |
UserService.java package com.ssh.service.impl; import java.util.List; import com.ssh.dao.IUserDAO; import com.ssh.service.IUserService; import com.ssh.user.User; public class UserService implements IUserService { private IUserDAO userDAO; public void addUser(User user) { userDAO.save(user); } public User getUserById(Integer id) { return userDAO.findById(id); } public User getUserByUsername(String username) { List list = userDAO.findByUsername(username); if (list.size() == 0) { return null; } else { return (User) list.get(0); } } public IUserDAO getUserDAO() { return userDAO; } public void setUserDAO(IUserDAO userDAO) { this.userDAO = userDAO; } } |
此时的整体工程结构为:
此时的applicationContext内容需要配置bean内容为:
<bean id="UserDAO" class="com.ssh.dao.impl.UserDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> |
8.整合Struts和Spring
Struts和Spring整合方式其核心是让Struts能够访问到交给Spring进行托管的类,这个我在网上看到了一个方式,自我认为很好,因此只要我们可以让Struts从Spring获得需要的类就可以了。 为了达到这个目标,我们创建一个类BaseAction:
package com.ssh.struts.action; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import org.springframework.web.struts.ActionSupport; public class BaseAction extends ActionSupport { protected Object getBean(String id) { WebApplicationContext ctx = WebApplicationContextUtils .getWebApplicationContext(this.servlet.getServletContext()); return ctx.getBean(id); } } |
为了让Web容器能够初始化Spring,我们需要修改web.xml文件,增加以下内容:
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <servlet> <servlet-name>SpringContextServlet</servlet-name> <servlet-class> org.springframework.web.context.ContextLoaderServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> |
9.啊,让看看我们工作是否有效
通过上面的配置,我们已经能够让这三个框架来协同作战了,让我们现在来测试一下。
首先创建基于Struts的JSP页面。打开WEB-INF下面的struts-config.xml,单击右键,选择New -> Form, Action and JSP。
在弹出的对话框中添加User case,然后点击Add生成Properties代码。这会由MyEclipse自动生成相应的Form代码。输入完成后选择JSP选项卡,选上Create JSP form,修改路径,然后点击Next。
在出现的对话框中修改Path,将Superclass更改为前面定义的BaseAction,然后将Input Source修改为自己需要的路径。完成后Finish即可。
然后在struts-config.xml点击右键,选择New -> Forward,准备创建一个ActionForward。
在弹出的对话框中,选择Local Action Forward,通过Browser填写Action Path,然后填写Name和Path,完成后点击Finish即可。
在LoginAction中添加如下代码
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { LoginForm loginForm = (LoginForm) form; String username = loginForm.getUsername(); String password = loginForm.getPassword(); ActionForward forward = mapping.getInputForward(); IUserService service = (IUserService) getBean("userService"); User userFromDB = service.getUserByUsername(username); if (userFromDB.getPassword().equals(password)) { forward = mapping.findForward("suc"); } return forward; } |
login.jsp内容
<%@ page language="java" pageEncoding="ISO-8859-1"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <html> <head> <title>JSP for LoginForm form</title> </head> <body> <html:form action="/login"> password : <html:password property="password"/><html:errors property="password"/><br/> username : <html:text property="username"/><html:errors property="username"/><br/> <html:submit/><html:cancel/> </html:form> </body> </html> |
Ok,这时我们可以启动Tomcat进行查看页面了
10.黎明前的黑暗
上面的工作完成以后理论上应该可用,但是当你运行的事后却发现会有一个非常诡异的异常出现
这个问题本来面目是这样,由于MyEclipse给我们做的事情太全面了,全面到spring和hibernate的包都是重复引用的。
其解决办法就是干掉多余的包,在Tomcat 5.5\webapps\ssh\WEB-INF\lib下的asm-2.2.3.jar就可以了,在重启Tomcat我们看看我们干了这么长时间的成果吧,
真令人失望又失败了,呵呵有如下异常:
哎,谁叫俺的脑子不好使能,忘了加入bean的初始化,在applicationContext.xml中加入如下内容就可以了
<bean name="userService" class="com.ssh.service.impl.UserService"> <property name="userDAO"> <ref bean="UserDAO" /> </property> </bean> |
历经千难万阻,我们终于看到了一个想看的巨破巨简陋的界面,呵呵,就到这里吧,估计大家要疯了。
转载于:https://www.cnblogs.com/andriod2016/articles/6524914.html
SSH框架的简单搭建步骤相关推荐
- struts2 web应用框架的简单搭建步骤
Struts2 Struts2的工作流程: 在Struts2视图层,获取数据,交给action处理,再返回到视图层. 一.什么是Strues2 Struts2是一个基于MVC设计模式的Web应用框架, ...
- ssh 框架引入service_搭建SSH开发框架时autowired注入为空的问题
最近在搭建SSH框架,使用@Autowired自动装配时,需要注入的对象是空,表明注入失败. 尝试了很多次还是不行,现在感觉可能是spring没配置好,所以类里的注解写对也注入不进去.但是从log4j ...
- Spring框架的简单搭建
哈哈哈哈,我的Spring的简单框架终于搭建成功了,所以迫不及待的来分享了,虽然网上已经有了很多搭建方法,但是在搭建的过程中还是遇到了很多磕磕碰碰,急死人呀! 在写一个常规的搭建方法时,我会把我遇到的 ...
- SSM框架的简单搭建
转:https://blog.csdn.net/zhshulin/article/details/37956105 Spring+SpringMVC+MyBatis spring : 4. ...
- java ssm框架_Java SSM框架的简单搭建
1.添加依赖包,可以通过properties统一框架版本 UTF-8 1.7 1.7 5.0.8.RELEASE junit junit 4.11 test javax.servlet javax.s ...
- moco框架的简单搭建
一.moco搭建的注意事项 了解moco相关的请求(https://blog.csdn.net/gx0904/article/details/88218283 ) moco的jar包版本:moco-r ...
- SSH框架实现添删改查的详细步骤及其原理(傻瓜教程)
SSH : Spring+Struts+Hibernate 简单原理: Struts:负责MVC的分离,控制业务跳转,即连接jsp和java文件的核心 Hibernate:持久层提供支持 Spring ...
- 关于学习ssh框架的体会
结束了愉快的大学生活,真的要步入社会了.在广州的信息港上班,公司运用框架是ssh,所以在实习期当然是学习ssh框架了. 对于我这个只接触过MVC的菜鸟程序员来说,还是有些困难的.经过一周的学习,对ss ...
- SSH框架与配置文件的简单搭建
在eclipse中,对ssh框架进行学习以及简单的编写,以下为基本的项目操作与须知歩骤: 1.导包(创建项目后的第一步,将所有相关的资源包导入项目WebContent / WEB-INF/ lib/ ...
最新文章
- 00后的简历有多野?!!
- android:使用Messenger进行进程间通信(一)
- JavaScript语言基础2
- 新年新气象,用新年的喜庆来迎接的生活
- c语言程序如何实现递减,写一个程序让非递减变成非递增,用C语言。一个程序用两个函数...
- commons-lang(time应用)
- 计划备份mysql数据库
- 高铁是如何跑起来?列车头顶高压线为什么磨不坏?
- DensePose开源了,2D变3D人体姿势实时识别 | Facebook@CVPR 2018
- python网址编码转换_刚学python,抓中文网页遇到编码的问题,怎么转换也不行……...
- System Verilog自学笔记专栏概述博文目录
- Hive命名空间-自定义变量
- php将中文编译成字符串,PHP将汉字字符串转换为数组
- 网课题库系统公众号功能
- 由内而外全面造就自己(三)
- 反问题 matlab算例,几类反问题的复变量重构核粒子法研究
- 【基于微信小程序的社区电商平台】需求分析心得——小豆芽
- 海豚php 安装,下载及安装
- 正则表达式学习——(2)正则回溯
- Mysql启动选项和配置文件
热门文章
- vux 组件打造手机端项目
- git上传文件到github
- Java中“==”的使用,以及“==”和equal的比较
- 文件数据云计算学习笔记---Hadoop HDFS和MapReduce 架构浅析
- ORACLE 中为什么要把列名都转换成大写字母?
- 域名查询精灵V1.0 我写的软件,大家多多提建议
- leetcode算法题--最长回文子串
- Visual C++ Windows 用来定位 DLL 的搜索路径
- 牛客练习赛43 f Tachibana Kanade Loves Game
- 【原创】完美实现GetProcAddress [文字模式]