一:配置好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文件,复制粘贴到项目中,将我们不需要用的删除即可,只留下我们需要的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts Blank</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
四:界面和控制器
(一)做视图
做三个界面 reg.jsp(注册界面) reg_ok.jsp(成功界面) reg_error.jsp(失败界面)
(二)两个类
一个只是为了跳转注册页面
代码如下:
package com.itnba.maya.controller;
import com.opensymphony.xwork2.ActionSupport;
public class IndexAction extends ActionSupport {
@Override
public 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;
}
@Override
public 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 一个成功一个失败
代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="index" class="com.itnba.maya.controller.IndexAction">
<result>
reg.jsp
</result>
</action>
<action name="reg" class="com.itnba.maya.controller.RegAction">
<result>
reg_ok.jsp
</result>
<result name="error">
reg_error.jsp
</result>
</action>
</package>
</struts>
运行struts.xml,将地址改为index即可显示注册页面
输入已有的账号显示如下:
输入没有注册过的账号显示如下:
这样一个简单的注册就做完了。
简单方法:
在struts.xml中配置:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="*_*" class="com.itnba.maya.controller.{1}Action" method="{2}"> //*_*这是通配符,如果用这种方法就需要命名规范,不能随便命名
<result name="success"> //{1}、{2}对应之前的*,{1}是指Action的前缀名,{2}是指Action中的方法名
{1}_{2}.jsp
</result>
<result name="error">
{1}_{2}_error.jsp
</result>
</action>
</package>
</struts>
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表单跳转的地址也随之改变:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Reg_insert">
注册账号:<input type="text" name="username">
真实姓名:<input type="text" name="name">
登录密码:<input type="text" name="password">
账户余额:<input type="text" name="account">
<input type="submit" value="go">
</form>
</body>
</html>
结果和之前的方法是一样的 这里就不再展示了。