stust2 hibernate spring 框架复习(一)

第一节:Struts2如何进行web登录验证1.用户信息:存在mysql数据库中 首先打开服务查看mysql数据库是否正常运行。创建数据库,创建用户表(如:user表)(注:这里mysql查看用的是Navicat)2.接下来是代码撰写,用于数据库的连接、关闭、增删查改import java.sql.Connection;import java.sql.DriverManager;import ...
摘要由CSDN通过智能技术生成

第一节:Struts2如何进行web登录验证

1.用户信息:存在mysql数据库中

 首先打开服务查看mysql数据库是否正常运行。


创建数据库,创建用户表(如:user表)

(注:这里mysql查看用的是Navicat)


2.接下来是代码撰写,用于数据库的连接、关闭、增删查改

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class DBUtil {
	//三属性四方法
	private Connection conn = null;
	private PreparedStatement  ptsm = null;
	private ResultSet rs =null;
	//方法一:获取数据库连接
	public void getConn(){
		try {
			Class.forName("com.mysql.jdbc.Driver");
			String url ="jdbc:mysql://127.0.0.1:3306/hjc";//这个连接的是自己的数据库,3306为数据库端口号,hjc为数据库名
			String username ="root";
			String password = "";
			conn = DriverManager.getConnection(url, username, password);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	//方法二:关闭数据库连接的方法
	public void closeConn(){
		if(rs!=null){
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(ptsm!=null){
			try {
				ptsm.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(conn!=null){
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	//方法三:增删改的方法
	public int executOther(final String strSQL,final Object[] params){
		this.getConn();
		try {
			ptsm = conn.prepareStatement(strSQL);
			for(int i=0;i<params.length;i++){
				ptsm.setObject(i+1, params[i]);
			}
			return ptsm.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return -1;
	}
	//方法四:专门执行查询的方法
	public ResultSet execQuery(final String strSQL,final Object[] params){
		this.getConn();
		try {
			ptsm = conn.prepareStatement(strSQL);
			for(int i=0;i<params.length;i++){
				ptsm.setObject(i+1, params[i]);
			}
			return ptsm.executeQuery();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return null;
	}

3.在此之前需要相关jar包的导入:


4.xml文件的配置

需要配置两个xml文件,一个是stust.xml一个是web.xml

stust.xml路径为src下

web.xml路径在WEB-INF下


stust.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>

    <package name="default" namespace="/" extends="struts-default">
    	<global-results>
			<result name="fail">jmp.jsp</result>
		</global-results>
		<action name="login" class="hjc.action.LoginAction">
			<result name="success">index.jsp</result>
			<result name="failed">jmp.jsp</result>
		</action>
    </package>

</struts>

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>hjc</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
      <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>
</web-app>

5.创建用户实体集

package hjc.vo;

public class User {
	private String username;
	private String password;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}

6.login.jsp如何与java文件“沟通”并返回正确的结果

首先先看一小段login的html代码:

	<form action="login!select" name="loginform">
	account : <input type="text" name="username"><br><br>
	password: <input type="password" name="password"><br><br>
	<input type="submit" value="登录" οnclick="check()"><br><br>
	</form>
	<button οnclick="onregister()">立即注册</button>
这是一个简单的html form表单代码片段,form action中的“login!select”其中login为动作名(action)可对应stust.xml中的
<action name="login" class="hjc.action.LoginAction">
			<result name="success">index.jsp</result>
			<result name="failed">jmp.jsp</result>
		</action>

这一段代码,通过“login”转到hjc.action.LoginAction的.java文件中,select是hjc.action.LoginAction.java中的一个方法(函数),result name=“success”对应的是select方法的返回值,如果返回值为success则跳到index.jsp中,如果为failed跳到jmp.jsp中。

hjc.action.LoginAction.java:

package hjc.action;

import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

import hjc.dbr.DBUtil;
import hjc.vo.User;

public class LoginAction extends ActionSupport implements ModelDriven<User>{
	private User user=new User();
	public String add(){
		DBUtil db=new DBUtil();
		String sql = "insert into user value(null,?,?)";
		int rs = db.executOther(sql, new Object[] {user.getUsername(),user.getPassword()});
		if(rs>0) return SUCCESS;
		return "failed";
	}
	public String select() {
		HttpServletRequest request = ServletActionContext.getRequest();
		HttpSession session= request.getSession();
		System.out.println(user.getUsername().length());
		session.setAttribute("password", user.getPassword());
		session.setAttribute("username", user.getUsername());
		DBUtil db=new DBUtil();
		String sql = "select * from user where username=? and password=?";
		ResultSet rs = db.execQuery(sql, new Object[] {user.getUsername(),user.getPassword()});
		try {
			if(rs.next()) return SUCCESS;//SUCCESS为宏定义的值即字符串"success"
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "failed";
	}
	@Override
	public User getModel() {
		// TODO Auto-generated method stub
		return user;
	}

}
这样我们就可以通过.jsp与.java进行数据库验证登录了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值