📅  最后修改于: 2020-11-11 04:59:56             🧑  作者: Mango
本章将教您如何通过简单的步骤使用Struts 2访问数据库。 Struts是MVC框架,而不是数据库框架,但它为JPA / Hibernate集成提供了出色的支持。我们将在后面的章节中研究休眠集成,但是在本章中,我们将使用普通的旧式JDBC来访问数据库。
本章的第一步是设置和初始化数据库。在此示例中,我使用MySQL作为数据库。我的机器上安装了MySQL,并创建了一个名为“ struts_tutorial”的新数据库。我创建了一个名为login的表,并在其中填充了一些值。下面是我用来创建和填充表格的脚本。
我的MYSQL数据库具有默认的用户名“ root”和“ root123”密码
CREATE TABLE `struts_tutorial`.`login` (
`user` VARCHAR( 10 ) NOT NULL ,
`password` VARCHAR( 10 ) NOT NULL ,
`name` VARCHAR( 20 ) NOT NULL ,
PRIMARY KEY ( `user` )
) ENGINE = InnoDB;
INSERT INTO `struts_tutorial`.`login` (`user`, `password`, `name`)
VALUES ('scott', 'navy', 'Scott Burgemott');
下一步是下载MySQL Connector jar文件,并将此文件放置在项目的WEB-INF \ lib文件夹中。完成此操作后,我们现在准备创建动作类。
动作类具有与数据库表中的列相对应的属性。我们将用户,密码和名称作为字符串属性。在操作方法中,我们使用用户和密码参数来检查用户是否存在,如果存在,则在下一个屏幕中显示用户名。
如果用户输入了错误的信息,我们会再次将其发送到登录屏幕。
以下是LoginAction.java文件的内容-
package com.tutorialspoint.struts2;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
private String user;
private String password;
private String name;
public String execute() {
String ret = ERROR;
Connection conn = null;
try {
String URL = "jdbc:mysql://localhost/struts_tutorial";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, "root", "root123");
String sql = "SELECT name FROM login WHERE";
sql+=" user = ? AND password = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, user);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
name = rs.getString(1);
ret = SUCCESS;
}
} catch (Exception e) {
ret = ERROR;
} finally {
if (conn != null) {
try {
conn.close();
} catch (Exception e) {
}
}
}
return ret;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
现在,让我们创建一个JSP文件index.jsp来收集用户名和密码。该用户名和密码将根据数据库进行检查。
Login
现在,让我们创建一个success.jsp文件,如果操作返回SUCCESS,则将调用该文件,但是如果操作返回错误,则将有另一个视图文件。
Successful Login
Hello World,
如果操作返回错误,则下面是视图文件error.jsp 。
Invalid User Name or Password
Wrong user name or password provided.
最后,让我们使用struts.xml配置文件将所有内容放在一起,如下所示:
/success.jsp
/error.jsp
以下是web.xml文件的内容-
Struts 2
index.jsp
struts2
org.apache.struts2.dispatcher.FilterDispatcher
struts2
/*
现在,右键单击项目名称,然后单击导出> WAR文件以创建War文件。然后,将此WAR部署在Tomcat的webapps目录中。最后,启动Tomcat服务器并尝试访问URL http:// localhost:8080 / HelloWorldStruts2 / index.jsp 。这将产生以下屏幕-
输入错误的用户名和密码。您应该看到下一页。
现在输入scott作为用户名,并输入navy作为密码。您应该看到下一页。