搜档网
当前位置:搜档网 › JSP_SSH框架搭建(Myeclipse2014+Tomcat8.0+Mysql)

JSP_SSH框架搭建(Myeclipse2014+Tomcat8.0+Mysql)

SSH框架

Struts2.1+Spring3.1.1+Hibernate4.2.0

编号:SSH-S2-S3-H4

版本:V1.1

环境说明

本文章是根据个人的搭建经验完成的轻量级SSH框架,也是实际应用中比较全面的基础框架。其中SSH指:Struts,Spring, Hibernate,是一个将MVC思想发挥的很好的web框架。

开发平台: Windows 7 + MyEclipse 2014 + Tomcat 8.0.3+ JDK 1.8 + Mysql

不同的版本大同小异。

其中SSH所需的包均直接使用MyEclipse2014内集成的jar包,这样无需手动添加,比较方便。

建立工程目录

新建工程

打开MyEclipse,新建一个web project:

file -> new -> Web Project 如下图所示:

然后next两步,到下面时,修改一点:

之后直接next到finish即可,建立后目录如下:

建立src目录

为了使得目录结构清晰,将不同层次的源程序放到不同包内,分别建立如下4个目录:

- com.ssh.action :存放Action代码

- com.ssh.service :存放Service代码

- com.ssh.dao :存放Dao代码

- com.ssh.entity :存放数据库实体类

直接右击src, 然后new -> package 如下图:

然后直接finishi即可。同样的步骤建立剩下三个目录。

这一步完成后的目录如下:

导入Struts,Spring,Hibernate环境

就是导入SSH环境了,这里使用的是MyEclipse集成的jar包

导入Struts

过程:右击项目名SSH 然后 MyEclipse ->Project Facets[capabilities]->Install Apache Struts 2.x Facet

初始图如下:

next到这步修改为第三项(重要):

之后一直到finish即可。

安装完了之后,会发现在目录下多了关于struts的jar包目录。

导入Spring

导入Spring与Struts 过程几乎相同

右击项目名称:MyEclipse ->Project Facets[capabilities]->Install Apache Spring Facet 之后一路next到finish即可。

导入hibernate

这个比较复杂一些,需要先配置数据库连接。

建立数据库

这里建立一个数据库表来测试搭建是否成功。

create database sshtest;

use sshtest;

create table t_user

(

id int not null auto_increment,

name varchar(20) not null,

password varchar(10) not null,

primary key (id)

);

insert into t_user values(1,'ssh','123456');

建立连接

建立数据库之后,在MyEclipse里面通过中间键来连接。过程如下:

首先切换到数据库视图:

菜单栏Window -> open perspective -> show MyEclipse database explorer

如下图:

开始只有一个MyEclipse Derby,我们新建一个,右击它,然后new ,如下图:修改如下,这里需要一个连接数据库的jar

完成之后,点击 Test Driver 如果出现建立成功即可。

然后在程序的右上角,切换到MyEclipse视图。

导入Hibernate

建立了数据库连接之后,就可按照导入struts,与spring 的样子,导入Hibernate。

右击工程MyEclipse ->Project Facets[capabilities]->Install Apache Spring Facet 如下图:

然后next到此处:修改目录:

在next 到此处加入上一步新建的数据库连接。

建立完成之后,直接yes即可。

映射数据库表

然后在切换到Database视图。如图:

选择: Hibernate Reverse Engneering. next 到此处时: 注意修改

然后finish即可。之后切换到MyEclipse视图,此时目录结果如下:

此时SSH的jar包以及数据库的映射完成。

建立Java与Jsp文件

上一步结束之后,开始在四个目录里面写东西了。

其中 dao与service 都是建立一个接口,一个实现。

首先是 com.ssh.dao ,:

在dao目录右击,new ->interface: 名字处填写:UserDAO,代码如下

package com.ssh.dao;

import com.ssh.entity.TUser;

public interface UserDAO {

public TUser queryUserByName(String name);//查询函数

}

然后创建dao的实现: new -> class 名字为: UserDAOImpl

代码如下:

package com.ssh.dao;

import org.hibernate.Query;

import org.hibernate.SessionFactory;

import com.ssh.entity.TUser;

public class UserDAOImpl implements UserDAO {

private SessionFactory sessionFactory;

public TUser queryUserByName(String name) {

Query query = sessionFactory.getCurrentSession().createQuery(

"from TUser as u where https://www.sodocs.net/doc/1310520784.html, = ?");

query.setString(0, name);

TUser u = (TUser) query.uniqueResult();

return u;

}

public SessionFactory getSessionFactory() {

return sessionFactory;

}

public void setSessionFactory(SessionFactory sessionFactory) {

this.sessionFactory = sessionFactory;

}

}

然后创建service代码:

先建立一个interface:在com.ssh.service 目录里面,new -> interface 名字: UserService 代码如下:

package com.ssh.service;

public interface UserService {

public boolean login(String name,String password);

}

在 new -> class: UserServiceImpl` 代码如下:

package com.ssh.service;

import https://www.sodocs.net/doc/1310520784.html,erDAO;

import com.ssh.entity.TUser;

public class UserServiceImpl implements UserService {

private UserDAO userDAO;

public boolean login(String name, String password) {

TUser u = userDAO.queryUserByName(name);

if (u == null) {

return false;

} else {

if (u.getPassword().equals(password)) {

return true;

} else {

return false;

}

}

}

public UserDAO getUserDAO() {

return userDAO;

}

public void setUserDAO(UserDAO userDAO) {

https://www.sodocs.net/doc/1310520784.html,erDAO = userDAO;

}

}

最后建立action 文件,在 com.ssh.action 目录下: new -> class 名字为: LoginAction 代码为:

package com.ssh.action;

import https://www.sodocs.net/doc/1310520784.html,erService;

public class LoginAction {

private String name;

private String password;

private UserService userService;

public String login() {

/* NAME和PASSWORD为空则返回登录页面,否则验证登录*/

if (null == name && null == password) {

return "login";

} else {

Boolean u = userService.login(name, password);

if (u) {

return "ok";

} else {

return "error";

}

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.sodocs.net/doc/1310520784.html, = name;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public UserService getUserService() {

return userService;

}

public void setUserService(UserService userService) {

https://www.sodocs.net/doc/1310520784.html,erService = userService;

}

}

到此java 文件建立完成。

下面建立三个测试的jsp文件:

在 WebRoot 下建立三个jsp 步骤:右击webroot, new -> jSP(..),分别命名为: login.jsp , loginOk.jsp, loginError.jsp ; 代码分别如下:

login.jsp:

UserName

Password

loginOk.jsp: 代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

欢迎~登陆成功

loginError.jsp: 代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

登录失败!

至此,jsp,java文件均已完成,下面也是最关键的,修改配置文件。

修改配置文件

首先修改struts.xml 在src 下,将struts.xml 修改为:

login.jsp

loginOk.jsp

loginError.jsp

然后修改同一个目录下的:ApplicationContent.xml 可以看出,原来的文件里面已经有了不少内容,且都是由bean块组成。我们需要修改并添加一些内容,完整的代码如下:数据库名字,数据库密码(自己用的是951214)等因人而异。

xmlns:xsi="https://www.sodocs.net/doc/1310520784.html,/2001/XMLSchema-instance"

xmlns:p="https://www.sodocs.net/doc/1310520784.html,/schema/p"

xsi:schemaLocation="https://www.sodocs.net/doc/1310520784.html,/schema/beans

https://www.sodocs.net/doc/1310520784.html,/schema/beans/spring-beans-3.1.xsd

https://www.sodocs.net/doc/1310520784.html,/schema/tx

https://www.sodocs.net/doc/1310520784.html,/schema/tx/spring-tx.xsd"

xmlns:tx="https://www.sodocs.net/doc/1310520784.html,/schema/tx">

destroy-method="close">

class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

org.hibernate.dialect.MySQLDialect

com/ssh/entity/TUser.hbm.xml

com/ssh/entity/GoodsInfo.hbm.xml

class="org.springframework.orm.hibernate4.HibernateTransactionManager">

class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"

abstract="true">

PROPAGATION_REQUIRED

PROPAGATION_REQUIRED

PROPAGATION_REQUIRED

PROPAGATION_REQUIRED

PROPAGATION_REQUIRED

其中新加的关键部分就是,每次添加新的功能时,都需要照猫画虎的,加上两个相应的bean。

最后添加 jdbc.properties 在src目录下,new ->file 名字直接填:

jdbc.properties

修改内容如下: 数据库名字,数据库密码等因人而异。

proxool.maxConnCount=10

proxool.minConnCount=1

proxool.statistics=1m,15m,1h,1d

proxool.simultaneousBuildThrottle=5

proxool.trace=false

proxool.verbose=false

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/sshtest?useUnicode=true&characterEncoding=gbk https://www.sodocs.net/doc/1310520784.html,ername=root

jdbc.password=951214

具体的原理,看代码也大概看的差不多。多加几个慢慢就熟悉了。我这就不细讲每一行的作用了。

测试

至此,环境搭好了,不过还有一点点瑕疵,就是struts包与Hibernate包里面有重复的antlr.jar 不过版本不同,可能会引起错误。因此我们移除掉struts的antlt2.7.2.jar:

右击项目-> build path ->configure build path 如下:

点击Edit 弹出:

之后点击ok即可。

最后可以修改一下 web.xml文件

在WebRoot/WEB-INFO 下,修改一下默认页面如下:

最后开始运行: 右击项目->run as -> MyEclipse Server Application 在弹出的的窗口中,选择自己相应的服务器,我这里是tomcat 8.0.3. 然后点击OK,服务器开始启动,

可以通过console 查看进度,等完全启动,会显示:

然后在浏览器地址栏里输入http://localhost:8080/SSH

弹出输入框,输入正确的用户名密码,显示欢迎~登陆成功,并且,输入错误的用户名密码,显示登录失败表示搭建成功。

相关主题