JSP Struts2 登陆

JSP struts2 登陆

1、登陆界面 index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>登陆界面</title>
 </head>

 <body>
  <center>
   <h2>
    <font color=red>登陆界面 </font>
   </h2>
   <!--这是表单的内容-->
  <s:form action="login" method="post">
  <s:textfield name="username" label="用户" cssStyle="width:150px;"></s:textfield>
  <s:password name="password" label="密码" cssStyle="width:150px;"></s:password>
  <s:submit value="提交" theme="simple"></s:submit>
  <s:reset value="重置" theme="simple"></s:reset>
  </s:form>
  <br/>
  <font color=red>
  <s:property value="msg"/><!--这是用来接收错误信息的,大家可以不要也可以,验证方法有很多,这只是我的一种方法而已-->
  </font>
  </center>
 </body>
</html>

如图(可以输出错误信息,位置大家可以随意放)

 



 2、做好登陆界面 那就要做struts2 后台接受数据的类了 action.java

package laogen.action;

import com.opensymphony.xwork2.ActionSupport;

public class action extends ActionSupport {
 
 private String username;//注意这里跟index.jsp form里面的name属性要对应
 private String password;
 private String msg;
 public String getMsg() {
  return msg;
 }
 public void setMsg(String msg) {
  this.msg = msg;
 }
 //然后生成setting getting
 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;
 }
 
 //自己写个方法来执行登陆
 
 public String execute() throws Exception{
  if(!"admin".equals(username))
  {
   //判断用户名是不是 admin,如果不是则输出信息,返回界面
   this.msg="用户名不正确!";
   return "Error";//这是在struts.xml 有配置,继续看下去
  }
  else if(!"admin".equals(password)){
   //判断密码是不是 admin,如果不是则输出信息,返回界面
   this.msg="密码不正确!";
   return "Error";

  }
  else
  {
   //用户名跟密码都对的话,返回界面
   return "OK";
  }
  
 }

}

 




 

 3、在上面有了验证,输入错误时,就会输出信息,返回界面,如何返回呢?看下面的

  struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

 <package name="struts2" extends="struts-default">
  <action name="login" class="laogen.action.action">
   <result name="Error">/index.jsp</result>   // 这里就是第二步的输入错误时,返回到那个界面,记得,name后面的Error 要跟上面一样
   <result name="OK">/OK.jsp</result>  // 这里就是输入成功,返回到 OK.jsjp 界面 ,返回到那个界面,自己可以定义

  </action>
 </package>
</struts>   

基本这样的一个Struts2 登陆验证就做好了,下面是我的项目的文件:


往下会继续讲到连接到数据库,跟数据库里面的信息匹配,大家留意了.......


 
 
Struts2 登陆(数据库来验证用户和密码)

1、接着上一篇文章

 这是数据库设置(mysql)

2、 这里跟上一篇的action.java 有点不一样(大家可以比较下)

package laogen.action;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import laogen.common.DBcon;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class action extends ActionSupport {
 
 private String username;//注意这里跟index.jsp form里面的name属性要对应
 private String password;
 private String msg;
 public String getMsg() {
  return msg;
 }
 public void setMsg(String msg) {
  this.msg = msg;
 }
 //然后生成setting getting
 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;
 }
 
 //自己写个方法来执行登陆
 
 public String execute() throws Exception {
  Connection conn = DBcon.getConnection();// 这是用来连通数据库,记得,要下载个驱动程序,mysql
  Statement stmt = null;
  ResultSet rs1 = null;
  ResultSet rs2 = null;
  try {
   stmt = conn.createStatement();
   String sql1 = "select * from userinfomation where username='"
     + this.username + "'";
   rs1 = stmt.executeQuery(sql1);
   if (!rs1.next()) {
    // 判断用户名是不是 存在,如果不是则输出信息,返回界面
    this.msg = "用户名不正确!";
    return "Error";
   } else {
    
    String sql2 = "select * from userinfomation where password='"
      + this.password + "'";
    rs2 = stmt.executeQuery(sql2);
    if (!rs2.next()) {
     // 判断密码是不是存在,如果不是则输出信息,返回界面
     this.msg = "密码不正确!";
     return "Error";
    }
   }
   rs1.close();
   rs2.close();
   stmt.close();
   conn.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
  return "OK";
 }

}

 

 3、第二步写好了方法,但是少了个连通数据库的类, 也是大家平时的JDBC,可能表达的不是很清楚,大概就是这样了

类名: DBcon.java

代码:

package laogen.common;

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

public class DBcon {
 public static Connection getConnection() throws SQLException {
  Connection DBconn = null;
  try {
   Class.forName("com.mysql.jdbc.Driver");
   String url = "jdbc:mysql://localhost/userInfo?characterEncoding=GBK";
             //  "jdbc:mysql://localhost/<数据库名>?characterEncoding=gbk";
   String user = "root"; // 数据库用户名
   String password = "123"; // 数据库密码
   DBconn = DriverManager.getConnection(url, user, password);
  } catch (ClassNotFoundException e1) {
   System.out.println("驱动程序加载错误");
  } catch (SQLException e2) {
   System.out.println("数据库连接时错误");
  } catch (Exception e3) {
   e3.printStackTrace();
  }
  return DBconn;
 }

 // 关门连接
 public static void clear(Connection DBconn) {
  if (DBconn != null) {
   try {
    DBconn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
 }
}

由于是JDBC,所以要要加入个驱动包,大家可以自己上网找个MySql jdbc的驱动包


 加入数据库的验证就是这么点了,其他的跟上一篇一样,这样就可以跟数据库里面的数据验证了

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值