1、建立javaWeb工程struts2test1
2、导入struts2的9个基本jar包,建立path
3、在WebRoot>WEB-INF下新建web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<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>
4、在src>bean包下建立UserTable.java
package bean;
public class UserTable {
private int id;
private String account;
private String password;
@Override
public String toString() {
return "UserTable [id=" + id + ", account=" + account + ", password=" + password + "]";
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
5、在src>util包下建立数据库工具包DBUtil.java
package util;
import java.sql.*;
public class DBUtil {
static String url="jdbc:mysql://localhost:3306/mydb?useSSL=false";
static String user="root";
static String password="root123";
static Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection(){
try {
conn=DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void close(ResultSet rs,PreparedStatement ps,Connection conn){
try{
if(rs!=null)
rs.close();
if(ps!=null)
ps.close();
if(conn!=null)
conn.close();
}catch(java.sql.SQLException e){
e.printStackTrace();
}
}
}
6、在WebRoot下建立login.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>struts login</title>
</head>
<body>
<s:form action="main" method="post"> <!-- 打印错误信息不能有theme="simple"属性 -->
<table>
<caption>User Login</caption>
<tr>
<td>
<s:textfield name="user.account" label="Account" size="20"></s:textfield>
</td>
</tr>
<tr>
<td>
<s:password name="user.password" label="Password" size="21"></s:password>
</td>
</tr>
<tr>
<td>
<s:reset value="reset"/>
<s:submit value="submit"/>
</td>
</tr>
</table>
</s:form>
</body>
</html>
7、在WebRoot下建立success.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>success</title>
</head>
<body>
<s:set name="user" value="#session['user']"/>
<s:property value="#user.account"/>,您好!欢迎登录。
</body>
</html>
8、在WebRoot下建立error.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>error</title>
</head>
<body>
<h2 style="text-align:center;margin-top:100px">Error Login</h2>
</body>
</html>
9、在src>action包下建立MainAction.java
package action;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import bean.UserTable;
public class MainAction extends ActionSupport{
private UserTable user;
public String execute() throws Exception{
String account=user.getAccount();
String password=user.getPassword();
System.out.println(account);
System.out.println(password);
boolean flag=false;
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
conn=util.DBUtil.getConnection();
System.out.println(conn);
String sql="select * from loginusers";
UserTable user2=null;
ActionContext context=ActionContext.getContext();
Map session=context.getSession();
user2=(UserTable)session.get("user");
if(user2==null){
try{
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
if(account.equals(rs.getString("userName"))&&password.equals(rs.getString("password"))){
user2=new UserTable();
user2.setId(rs.getInt(1));
user2.setAccount(rs.getString(2));
user2.setPassword(rs.getString(3));
session.put("user",user2);
flag=true;
}
}
}catch(SQLException e){
e.printStackTrace();
}finally{
util.DBUtil.close(rs, ps, conn);
}
}else{
flag=true;
}
if(flag)
return SUCCESS;
else
return ERROR;
}
public UserTable getUser() {
return user;
}
public void setUser(UserTable user) {
this.user = user;
}
}
10、在src下新建struts.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<!-- 用户登录action -->
<action name="main" class="action.MainAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
<!-- <constant name="struts.i18n.encoding" value="gb2312"></constant> -->
</struts>
11、保存启动Tomcat,在浏览器输入http://localhost:8080/struts2test1/login.jsp
登录失败
登录成功
注意:已经保存了用户的session对象,登录成功后不需再登录,要先进行失败登录测试