Struts从零开始三、连接数据库实例

效果图:

我们以结果为导向,首先大家先看看要完成的效果图,对接下来要做的事情有个清晰的认识。

1、如图键入:

显示结果如下图:

如果您输入的是不合法的话,则如下图:

修改步骤:

A、数据源配置

在struts-config.xml文件中有一元素是用来配置应用所需要的数据源,数据源负责建立和特定数据库的连接,许多数据源采用连接池的机制实现,即提高了数据库的访问性能。具体代码片段如下所示:

                         

上面这段代码配置了与mysql数据库的连接。元素的key是一个别名,用于在应用程序中去的一个连接,元素type用来指定数据源的实现类。上面使用的是Apache软件组织提供的DBCP数据源。所以你必须导入commons-dbcp.jar、commons-pool.ar、struts-legacy..jar这三个包和MySQL的驱动包:mysql-connecTor-java-5.0.5-bin.jar。

配置了数据源后,就可以在Action中访问数据源了。

代码如下所示:

//获取Servlet上下文对象

ServletContext ctx = servlet.getServletContext();

//获得数据源

DataSource ds = (DataSource) ctx.getAttribute(“DataSource”);

//获取数据库的连接

Connection conn = ds.getConnection();

B、修改Action

Action将取得数据源,得到一个数据库的连接,把页面传近来的用户名和密码,通过jdbc与数据库进行对比,如果存在转到“success.jsp”并显示其名称,否则到错误页面。

具体实现代码如下所示:

public class LoginAction extends Action {   public ActionForward execute(Actionmapping actionmapping,   ActionForm. actionForm, HttpServletRequest request,   HttpServletResponse response) {   LoginActionForm. loginform. = (LoginActionForm) actionForm;   String username = loginform.getUsername();   String userpass = loginform.getUserpass();   ServletContext ctx = servlet.getServletContext();   DataSource ds = (DataSource) ctx.getAttribute("DataSource");   boolean flag = false;   String sql = "select * from user where username='" + username   + "' and password='" + userpass + "'";   try {   Connection conn = ds.getConnection();   Statement st = conn.createStatement();   ResultSet rs = st.executeQuery(sql);   while (rs.next()) {   flag = true;   }   } catch (Exception e) {   e.printStackTrace();   }   String actionpath = "";   if (flag) {   request.setAttribute("username", username);   actionpath = "success";   } else {   actionpath = "error";   }   return actionmapping.findForward(actionpath);   }   }

C、修改页面

如果登录成功,通过EL显示用户名。

具体代码如下:

               success                success.jsp demo          welcome              here,thanks       

引入struts的标签,输出用户名称。

小结:怎么样出来你要的结果了吧,不过是使用的数据源配置,我个人认为让struts来管理不是太妥当,因为数据的相关操作应该属于持久层的管理,不应该由上一层管理(Controller),所以实际操作中建议不要这么做。

往事是尘封在记忆中的梦,而你是我唯一鲜明的记忆,

Struts从零开始三、连接数据库实例

相关文章:

你感兴趣的文章:

标签云: