一:配置好hibernate
1.导包 hibernate包和jdbc连接mysql数据库的包
2.实用工具生成hibernate配置文件和映射文件
3.做好hibernateUtil生成session的静态单例配置文件
二:编写数据访问
DAO添加、查询
package com.itnba.maya.model;import java.math.BigDecimal;import org.hibernate.Session;public class LoginDao {public Login select(String username){Session session = null;Login data = null;try{session = HibernateUtil.getSession();data = session.get(Login.class, username); }catch(Exception e){e.printStackTrace();}finally {HibernateUtil.closeSession();}return data;}public void insert(String username, String name ,String password,BigDecimal account){Session session = null;try{session = HibernateUtil.getSession();Login data = new Login();data.setUserName(username);data.setName(name);data.setPassword(password);data.setAccount(account);session.beginTransaction();session.save(data);session.getTransaction().commit();}catch(Exception e){e.printStackTrace();session.getTransaction().rollback();}finally {HibernateUtil.closeSession();}}
}
三:配置struts
1.导包 空白包、jstl包
在apps文件夹下将struts-blank.war复制粘贴将后缀改为rar格式,解压到这个目录下,这样就生成了一个空白的项目,这里边的WEB-INF文件下lib里边的jar包就是我们struts所需要必须的jar包,另外如果需要用jstl标签,就把jstl的jar包也导入我们项目的WEB-INF文件下的lib中
2.配置web.xml()
这里的web.xml一样是刚刚生成的空白项目中的WEB-INF文件下的空白web.xml文件,复制粘贴到项目中,将我们不需要用的删除即可,只留下我们需要的内容如下:
四:界面和控制器
(一)做视图
做三个界面 reg.jsp(注册界面) reg_ok.jsp(成功界面) reg_error.jsp(失败界面)
(二)两个类
一个只是为了跳转注册页面
代码如下:
package com.itnba.maya.controller;import com.opensymphony.xwork2.ActionSupport;public class IndexAction extends ActionSupport {@Overridepublic String execute() throws Exception {return SUCCESS;}
}
另一个是做个RegAction的类 四个成员变量(获取form表单数据)
代码如下:
package com.itnba.maya.controller;import java.math.BigDecimal;import com.itnba.maya.model.Login;
import com.itnba.maya.model.LoginDao;
import com.opensymphony.xwork2.ActionSupport;public class RegAction extends ActionSupport {private String username;private String name;private String password;private BigDecimal account;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public BigDecimal getAccount() {return account;}public void setAccount(BigDecimal account) {this.account = account;}@Overridepublic String execute() throws Exception {Login data = new LoginDao().select(username);if(data==null){new LoginDao().insert(username, name, password, account);return SUCCESS;}else{return ERROR;}}
}
重写execute方法,调用数据访问查询看下是否存在 存在return error 不存在return success
(三)配置struts.xml
action 1 跳转注册页面
action 2 name="reg" 和类名、页面名对应起来 指向RegAction.class 两个result 一个成功一个失败
代码如下:
运行struts.xml,将地址改为index即可显示注册页面
输入已有的账号显示如下:
输入没有注册过的账号显示如下:
这样一个简单的注册就做完了。
简单方法:
在struts.xml中配置:
Action中的代码如下:
package com.itnba.maya.controller;import java.math.BigDecimal;import com.itnba.maya.model.Login;
import com.itnba.maya.model.LoginDao;
import com.opensymphony.xwork2.ActionSupport;public class RegAction extends ActionSupport {private String username;private String name;private String password;private BigDecimal account;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public BigDecimal getAccount() {return account;}public void setAccount(BigDecimal account) {this.account = account;}public String add(){ //这个方法是跳转页面return SUCCESS;}public String insert(){Login data = new LoginDao().select(username); //这个方法是接收数据,处理数据,并根据判断跳转其他页面if(data==null){new LoginDao().insert(username, name, password, account);return SUCCESS;}else{return ERROR;}}
}
相应的jsp的命名一定要规范:
在第一次跳转页面时form表单跳转的地址也随之改变:
<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;UTF-8"pageEncoding&#61;"UTF-8"%>
注册账号&#xff1a;
真实姓名&#xff1a;
登录密码&#xff1a;
账户余额&#xff1a;
结果和之前的方法是一样的 这里就不再展示了。