struts 简单配置运用做一个简单的注册

一:配置好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>

结果和之前的方法是一样的 这里就不再展示了。

原文地址:https://www.cnblogs.com/dnf1612/p/6542504.html