#适合对象:学生
#适用范围:课程设计,实验报告
#软件框架以及版本:
mysql5+myeclipse+tomcat+Stucts 1.2 + Spring 3.0 + Hibernate3.3+J2EE 5.0+jdk1.6
#准备工作
1.安装JDK,MyEclipse,MySQL,JDBC(高版本可能报错),SQLyog
2.创建数据库sshtest,创建表Student表,并插入一些数据
CREATE DATABASE sshtest;
USE sshtest;
CREATE TABLE Student(
id INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
Sname VARCHAR(50) NOT NULL,
Spassword VARCHAR(50) NOT NULL
)
INSERT INTO Student(Sname,Spassword) VALUES('cyh',123456);
INSERT INTO Student(Sname,Spassword) VALUES('dudou',234);
INSERT INTO Student(Sname,Spassword) VALUES('xiaoxiong',1234);
INSERT INTO Student(Sname,Spassword) VALUES('ljt',456);
上述语句输入sqlyog或者navicat等可视化软件运行使用
#SSH框架搭建步骤
1.在MyEclipse中新建一个Web项目,起名为cyhsshtest(根据自己需求起)
Web Project
2.接下来为项目添加框架
3.添加Struts框架,右键刚刚新建的项目,选择MyEclipse->Add Struts Capabilities,
4.在弹出的界面中把包的路径改一下,改为自己的,即Base package for new classes中的com.yourcompany.struts改为com.cyhsshtest,点击完成
5.添加Spring框架,步骤如上,右键这个项目,选择MyEclipse->Add Spring Capabilities
6.在弹出的菜单中选择Spring3.0(本项目使用的是Spring3.0),并选择下面6个包,点击下一步(next),更改Folder路径,选择到SSH项目的WebRoot文件夹下的WEB-INF,完成。
7.连接mysql数据库,选择右上角的Window->Open Perspective->MyEclipse Database Explorer
8.在窗口中右键->new,创建一个新的数据库连接
9.在弹出的菜单中进行填写:
Driver template:选择MySQL Connector/J
Driver name:这里起名为SSH数据库连接(为数据库连接命名)
Connection URL:jdbc:mysql://localhost:3308/sshtest(jdbc:mysql://+自己的主机地址+数据库端口号,大家应该普遍是3306,我这里是改过端口,所以是3308+数据库名称)
User name:自己MYSQL的管理员名称
Password:MYSQL登录密码
(一般为root+123456)
Driver JARs:添加数据库连接的jar包,点击Add JARs浏览到事先准备好的
mysql-connector-java-5.1.7-bin.jar 获取方式见文章末尾
Driver classname:选择com.mysql.jdbc.Driver
Save password 选上(JDBC版本过高可能会导致连接失败)
10.点击Test Driver,测试结果:数据库配置正确,点击OK
11.双击SSH数据库连接,展开目录,可以看到我们事先建立的数据表
12.添加Hibernate框架,右键SSH项目->MyEclipse->Add Hibernate Capabilities
选择Hibernate为3.3,点击下一步
配置中选择第二项 Spring configuration file,把Spring与Hibernate整合到一起,点击下一步
在菜单中选第二项 Existing Spring configuration file,点击下一步
DB Driver选择在添加Spring框架时配置的SSH数据库连接,点击下一步
点击取消 Create SessionFactory class?
13.现在的目录框架如下,SSH框架大体搭建完成
14.测试
先部署项目,访问首页看看效果,右键项目->Run As->MyEclipse Server Application
等待一段时间之后,可以在MyEclipse Web Browser或者在浏览器输入:http://localhost:8082/cyhsshtest
14.接下来是重头戏,登陆功能的实现
tips:这里使用Spring框架的逆向工程功能
MyEclipse切换到MyEclipse Database Explorer视图,使用Spring框架的逆向工程功能把student表逆向成Java实体类,右键student表->选择Hibernate Reverse Engineering
15.Java src folder:选择刚刚新建的SSH项目下的src
Java package:填写com.cyhsshtest.user
并勾选前3个选项:Create POJO、Java Data Object和Java Data Access Object
tips:POJO类是数据库表格所对应的Java类,JDO类是MyEclipse自动生成的对数据库的一些操作,这里会封装一些常用的操作,基本上可以满足我们的各种需要了,选择下一步。
Id Generator:选择native
16.此时的目录结构如下
我们可以看到系统生成了3个类,一个配置文件。 User 继承自AbstractUser,是User表的实体类。
UserDAO 封装了一些对数据库的常用操作。
User.hbm.xml 是hibernate-mapping映射配置文件,配置了哪个实体类映射哪个表,配置了实体类的哪个属性映射表里的哪列。
如果这些东西不用hibernate生成,那么我们就要自己写,要浪费很多时间,hibernate的作用就体现出来了。
16.现在来写测试页
打开WebRoot文件夹下的WEB-INF->struts-config.xml文件,以MyEclipse
Struts Config Editor方式打开
右键->New->Form,Action and JSP
填写Form表单属性:
Use case:login
Name:loginForm
同时在下面的Form Properties 中添加两个属性:
Name:username
JSP input type:text
Name:password
JSP input type:password
切换到JSP选项,选择Create JSP form?
点击Finish
17.此时的目录结构如下:
可以看到在WebRoot的form文件夹下生成一个login.jsp
18.现在需要建立两个JSP页面,一个用于登录成功页面,一个用于登录失败页面
在WebRoot的Form下新建两个JSP页面,一个为loginSuccess.jsp,一个为loginFail.jsp
把登录页、登录成功页、登录失败页3个页面相关联
切换到struts-config.xml的设计视图,右键login.jsp->New->Forward
loginSuccess:
选择Local Action Forward
浏览Action Path:/login
填写name:loginSuccess
浏览Path:/form/loginSuccess.jsp
完成
loginFail:
选择Local Action Forward
浏览Action Path:/login
填写name:loginFail
浏览Path:/form/loginFail.jsp
17.现在来写具体的执行代码:
打开LoginAction.java,可以看到自动生成的代码如图
17.将上述代码改成下面的代码:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.cyhsshtest.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.registry.infomodel.User;
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 org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.*;
import com.cyhsshtest.struts.form.LoginForm;
import com.cyhsshtest.user.Student;
import com.cyhsshtest.user.StudentDAO;
/**
* MyEclipse Struts
* Creation date: 05-20-2024
*
* XDoclet definition:
* @struts.action path="/login" name="loginForm" input="/form/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 stub
String username = loginForm.getUsername();
String password = loginForm.getPassword();
Student student = new Student();
student.setSname(username);
student.setSpassword(password);
ClassPathXmlApplicationContext beans = new ClassPathXmlApplicationContext("../applicationContext.xml");
StudentDAO studentDAO = (StudentDAO)beans.getBean("StudentDAO");
List<?> list = studentDAO.findByExample(student);
if(list.size()>0){
return mapping.findForward("loginSuccess");
}
return mapping.findForward("loginFail");
}
}
18.重启服务器,测试登陆功能,输入上面插入的测试数据
数据库表中存入的测试数据,我们测试第三个数据,小伙伴们有兴趣的也可以测试其他数据
登录界面:
登录失败界面:
登录成功界面:
就此SSH框架实现登录界面就完成了,感谢您的浏览,祝您生活愉快!
获取相关jar包或者有问题可以加qq群:967225446