代码struts2连接mysql实现登录功能
时间: 2024-05-13 17:15:23 浏览: 13
下面是一个简单的 Struts2 连接 MySQL 数据库实现登录功能的示例代码:
首先,在 `struts.xml` 文件中配置一个 Action:
```xml
<action name="login" class="com.example.LoginAction">
<result name="success">welcome.jsp</result>
<result name="error">login.jsp</result>
</action>
```
然后,创建一个名为 `LoginAction` 的 Java 类,该类实现 `com.opensymphony.xwork2.Action` 接口:
```java
package com.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport implements Action {
private String username;
private String password;
public String execute() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "password");
pstmt = conn.prepareStatement("SELECT * FROM users WHERE username=? AND password=?");
pstmt.setString(1, username);
pstmt.setString(2, password);
rs = pstmt.executeQuery();
if (rs.next()) {
return SUCCESS;
} else {
return ERROR;
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
return ERROR;
} catch (SQLException e) {
e.printStackTrace();
return ERROR;
} finally {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
}
```
在上面的代码中,我们使用了 JDBC 连接 MySQL 数据库,并在 `execute()` 方法中执行了一个查询语句,查询指定用户名和密码是否存在于 `users` 表中。如果存在,返回 `SUCCESS`;否则,返回 `ERROR`。
最后,在 JSP 页面中添加一个表单,向 Action 提交用户名和密码:
```html
<form action="login.action" method="post">
<label>Username:</label>
<input type="text" name="username"/><br/>
<label>Password:</label>
<input type="password" name="password"/><br/>
<input type="submit" value="Login"/>
</form>
```
这样,当用户输入用户名和密码并点击登录按钮时,就会向 `LoginAction` 提交表单数据,并执行上面的查询语句,最终跳转到 `welcome.jsp` 或 `login.jsp` 页面。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)