在struts中连接数据库,并且在action操作数据库,需要在struts.xml中进行配置,具体配置如下:
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName"
value="com.mysql.jdbc.Driver" />
<set-property property="url"
value="jdbc:mysql://localhost:3306/demo" />
<set-property property="username" value="root" />
<set-property property="password" value="" />
<set-property property="maxActive" value="10" />
<set-property property="maxWait" value="5000" />
<set-property property="defaultAutoCommit" value="false" />
<set-property property="defaultReadOnly" value="false" />
<set-property property="validationQuery"
value="SELECT COUNT(*) FROM user" />
</data-source>
</data-sources>
之后就可以在action中访问数据库了,具体方式如下:
package com.demo.struts.actions;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.sql.DataSource;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.actions.DispatchAction;
import com.demo.struts.forms.LoginForm;
import com.demo.struts.util.Constants;
public class LoginAction extends DispatchAction {
Logger log = Logger.getLogger(this.getClass());
@SuppressWarnings("deprecation")
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ActionErrors errors = new ActionErrors();
ActionForward forward = new ActionForward();
LoginForm loginForm = (LoginForm) form;
try {
// get parameters
String username = loginForm.getUsername();
// invalidate the original session if exists
HttpSession session = request.getSession(false);
if (session != null) {
session.invalidate();
}
// create a new session for the user
session = request.getSession(true);
// login
boolean isValid = valid(request, loginForm);
if (isValid) {
session.setAttribute(Constants.USERNAME_KEY, username);
log.info("User " + username + " login.");
} else {
errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage(
"login.message.failed"));
}
} catch (Exception e) {
errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage(
"login.message.failed"));
}
// If a message is required, save the specified key(s)
// into the request for use by the <struts:errors> tag.
if (!errors.isEmpty()) {
saveErrors(request, errors);
request.setAttribute("loginFormBean", loginForm);
forward = mapping.findForward(Constants.FAILURE_KEY);
} else {
forward = mapping.findForward(Constants.SUCCESS_KEY);
}
// Finish with
return (forward);
}
private boolean valid(HttpServletRequest request, LoginForm loginForm) {
DataSource ds = null;
Connection cn = null;
boolean b = false;
try {
ds = getDataSource(request);
cn = ds.getConnection();
Statement st = cn.createStatement();
ResultSet rs = st
.executeQuery("select * from user where username='"
+ loginForm.getUsername() + "' and password='"
+ loginForm.getPassword() + "'");
if (rs.next()) {
b = true;
}
rs.close();
st.close();
cn.close();
} catch (Exception e) {
e.printStackTrace();
}
return b;
}
}
分享到:
相关推荐
在Struts应用中,通常使用JDBC(Java Database Connectivity)来连接数据库。首先,需要在项目中添加对应的数据库驱动依赖,如MySQL、Oracle等。然后,通过DataSource获取数据库连接,执行SQL语句并处理结果。 3. ...
在了解struts2连接数据库实现用户登录的相关知识点之前,首先需要对文档中出现的各种技术词汇有所了解。文档涉及了Struts2框架、web.xml配置文件、Action类以及数据库连接等关键概念。接下来,将详细探讨这些概念...
### 有关Struts中的数据库连接池问题解决 在开发基于Web的应用程序时,尤其是在使用Struts框架这样的MVC(Model-View-Controller)架构中,数据库连接管理是至关重要的一个环节。由于数据库连接是一种关键、有限且...
在Struts框架中,与数据库的连接是实现业务逻辑的重要环节,下面我们将深入探讨Struts如何与数据库进行交互。 1. **Struts 2 数据库连接配置** - **DataSource**: 在企业级应用中,通常使用DataSource来管理数据库...
Java的Struts框架连接数据库入门手册,主要介绍了使用MyEclipse这个集成开发环境(IDE)来连接数据库,并创建基于Struts架构的Web项目的过程。 Struts框架的核心在于将用户请求的动作分解为模型(Model)、视图...
在Struts框架中连接数据库的操作,通常涉及到以下几个关键知识点: 1. **数据源配置**:在Struts应用中,通常通过Spring框架来管理数据源。在`applicationContext.xml`配置文件中,我们需要定义数据源 bean,例如...
总之,“Struts 2连接数据库实现登陆”是一个涵盖Web开发多个方面的实践过程,涉及到Struts 2框架的配置和使用,数据库的连接和查询,以及JSP页面的设计。通过这样的练习,开发者可以更好地理解和掌握Struts 2在实际...
使用Struts实现了向MySQL数据库中存储图片的功能。有一些问题没能解决:中文乱码问题,上传图片不能太大等等。虽然不太完善,作为参考还是可以的
在“Struts连接数据库做的注册登录”项目中,我们将探讨如何使用Struts来实现用户注册和登录功能,并与数据库进行交互。 首先,理解Struts框架的核心组件和工作流程至关重要。Struts通过ActionServlet作为入口点,...
在这个"Struts不带数据库连接登录代码"的示例中,我们将探讨如何在不直接连接到数据库的情况下实现一个基本的用户登录功能。 首先,让我们理解一下主要的文件结构和组件: 1. `.classpath`:这是Eclipse或...
1. **StrutsDataSource管理器**:Struts框架提供了一个名为StrutsDataSource的管理器,用于在Struts配置文件(Struts-config.xml)中定义和配置数据库连接池。该管理器支持任何实现了`javax.sql.DataSource`接口的...
总的来说,"struts2简单登录注册(连接数据库)"项目是一个典型的Java Web开发实例,涵盖了前端交互、后端处理、数据库操作和服务器部署等多个环节,是学习和理解Struts2框架及其相关技术的好案例。通过深入研究这个...
当用户提交登录表单时,这些方法会接收表单参数,调用Hibernate查询数据库,比对用户输入的凭证与数据库中的记录。 5. **拦截器(Interceptor)**:Struts2的拦截器是处理请求的重要机制,可以实现诸如权限检查、...
在登录程序中,我们可能需要从数据库中查询用户信息,比如根据用户名和密码进行匹配。以下是一些基本的JDBC操作步骤: 1. 加载数据库驱动:使用`Class.forName()`方法加载对应的数据库驱动。 2. 建立连接:通过`...
在本资源的`user_manager`部分,很可能包含了实现这些功能的相关代码,例如UserManagerAction类、User实体类、UserService接口及其实现、以及用于连接数据库的配置文件(如Hibernate的`hibernate.cfg.xml`)。...
考虑到安全性,密码不应明文存储在数据库中,而应进行哈希处理。此外,使用预编译的SQL语句防止SQL注入攻击,并确保关闭数据库连接以释放资源。 8. **异常处理** 编写异常处理代码,捕获可能出现的数据库连接问题...
在这个"struts 实现对数据库的增删改查纯手写"的项目中,我们将探讨如何使用Struts框架与MySQL数据库配合,实现数据的基本操作。 首先,要搭建Struts环境,你需要在Eclipse这样的开发环境中配置Struts2的核心库,这...
3. **更新**:当用户修改数据并提交时,Action接收请求,执行UPDATE语句更新数据库中的记录。 4. **删除**:删除操作对应DELETE语句,Action根据用户的请求参数确定要删除的数据,并执行相应的操作。 `Pink`可能是...
在这个小例子中,我们将探讨如何使用Struts与SQL Server数据库进行交互,这对于初学者来说是一个很好的学习起点。 首先,理解Struts的核心概念非常重要。Struts遵循MVC(Model-View-Controller)设计模式,它的主要...