基于struts2的登录系统连接数据库
时间: 2023-03-25 21:04:31 浏览: 199
可以回答这个问题。基于struts2的登录系统连接数据库,可以使用JDBC来实现。首先需要在项目中导入JDBC驱动包,然后在struts.xml中配置数据库连接信息,包括数据库的URL、用户名、密码等。在登录Action中,可以通过JDBC连接数据库,验证用户输入的用户名和密码是否正确。如果正确,则可以将用户信息存储在Session中,以便后续的操作。
相关问题
请基于ssh框架连接数据库实现图书信息管理系统
好的,为了实现基于SSH框架的图书信息管理系统,需要先进行以下几个步骤:
1. 搭建SSH框架
首先需要搭建好SSH框架,包括Spring、Hibernate和Struts。这里不再详细介绍,可以参考相关教程进行搭建。
2. 配置数据库连接
在SSH框架中,需要配置数据库连接信息,包括数据库类型、数据库地址、用户名、密码等。可以在项目中的配置文件中进行配置,比如在Spring的配置文件中配置数据库连接信息。
3. 创建图书信息表
接下来需要创建图书信息表,包括图书编号、图书名称、作者、出版社、出版日期等字段。可以使用MySQL等数据库管理工具进行创建。
4. 创建JavaBean
根据图书信息表的字段,创建对应的JavaBean,包括图书编号、图书名称、作者、出版社、出版日期等属性,并生成对应的get/set方法。
5. 创建DAO接口和实现类
根据业务需求,创建图书信息的DAO接口和实现类,包括添加图书信息、删除图书信息、修改图书信息、查询图书信息等方法。
6. 创建Service层
在Service层中,调用DAO层提供的方法,完成图书信息的业务逻辑处理。比如添加图书信息时,需要先判断图书编号是否已存在,如果已存在则提示用户,否则调用DAO层添加图书信息。
7. 创建控制器
在控制器中,接收用户的请求,调用Service层提供的方法,完成图书信息的增删改查等操作,并返回对应的视图。
以上是实现基于SSH框架的图书信息管理系统的大致步骤,具体实现过程中,还需要根据业务需求进行具体的实现。
实现一个基于Struts2的登录系统(需要访问数据库)。修改实验1登录系统代码,页面使用Struts2标签,登录成功页面使用OGNL表达式显示登录用户名称,并显示是系统第几位登录成功的用户的代码
1. 创建数据库
首先我们需要创建一个数据库,用于存储用户信息和登录记录。
创建一个名为`login_system`的数据库,然后创建两个表:`user`和`login_record`。
`user`表用于存储用户信息,包括用户名和密码。
```sql
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
`login_record`表用于存储登录记录,包括登录时间和用户名。
```sql
CREATE TABLE `login_record` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`login_time` datetime NOT NULL,
`username` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
2. 配置数据库连接
在`struts.xml`中配置数据库连接信息。
```xml
<struts>
<constant name="struts.convention.package.scan" value="com.example.action"/>
<package name="login" extends="struts-default">
<action name="login" class="com.example.action.LoginAction">
<result name="success">/login_success.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
<constant name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<constant name="hibernate.show_sql" value="true"/>
<constant name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<constant name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/login_system"/>
<constant name="hibernate.connection.username" value="root"/>
<constant name="hibernate.connection.password" value=""/>
<constant name="hibernate.hbm2ddl.auto" value="update"/>
</struts>
```
3. 编写实体类和DAO类
创建`User`和`LoginRecord`两个实体类,用于表示用户信息和登录记录。
```java
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String username;
private String password;
// getter and setter
}
@Entity
@Table(name = "login_record")
public class LoginRecord {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Temporal(TemporalType.TIMESTAMP)
private Date loginTime;
private String username;
// getter and setter
}
```
创建`UserDAO`和`LoginRecordDAO`两个DAO类,用于操作数据库。
```java
public class UserDAO {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public User findByUsername(String username) {
Session session = sessionFactory.getCurrentSession();
Query query = session.createQuery("FROM User WHERE username = :username");
query.setParameter("username", username);
return (User) query.uniqueResult();
}
}
public class LoginRecordDAO {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public void add(LoginRecord record) {
Session session = sessionFactory.getCurrentSession();
session.save(record);
}
public int count() {
Session session = sessionFactory.getCurrentSession();
Query query = session.createQuery("SELECT COUNT(*) FROM LoginRecord");
return ((Long) query.uniqueResult()).intValue();
}
}
```
4. 编写Action类
创建`LoginAction`类,用于处理登录请求。
```java
public class LoginAction extends ActionSupport {
private String username;
private String password;
private UserDAO userDAO;
private LoginRecordDAO loginRecordDAO;
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
public void setLoginRecordDAO(LoginRecordDAO loginRecordDAO) {
this.loginRecordDAO = loginRecordDAO;
}
public String execute() {
User user = userDAO.findByUsername(username);
if (user == null || !user.getPassword().equals(password)) {
return INPUT;
}
LoginRecord record = new LoginRecord();
record.setLoginTime(new Date());
record.setUsername(username);
loginRecordDAO.add(record);
int count = loginRecordDAO.count();
ServletActionContext.getRequest().setAttribute("count", count);
return SUCCESS;
}
// getter and setter
}
```
5. 编写JSP页面
创建`login.jsp`页面,用于显示登录表单。
```html
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<s:form action="login">
<s:textfield name="username" label="Username"/>
<s:password name="password" label="Password"/>
<s:submit value="Login"/>
</s:form>
</body>
</html>
```
创建`login_success.jsp`页面,用于显示登录成功信息。
```html
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Login Success</title>
</head>
<body>
<h1>Welcome, ${username}!</h1>
<p>You are the ${count}th user to log in.</p>
</body>
</html>
```
6. 运行程序
启动Tomcat服务器,访问`http://localhost:8080/login_system/login.jsp`,输入正确的用户名和密码,即可登录成功,显示登录用户的用户名和是第几位登录的用户。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)