struts2 jdbc 链接数据库

struts2 jdbc 链接数据库,第1张

首先,我想告诉你,struts2是业务逻辑层的框架,怎么会用jdbc连接数据库

连接数据库的是持久化层,也就是hibernate。

在纠正下,是连接池,不是数据池。。。。

hibernate可以配置数据库连接池,使用JNDI,JNDI就是java命名和目录接口。换句话说,你配置好一个连接池,通过命名和接口可以使用。就这么个意思。

您好,在struts2中,DispatchFilter已经调用过requestgetParameter()的方法,所以不能使用requestgetInputStream() 或者 requestgetReader()获得数据 。

可以通过requestgetParameterMap()的方式获得key,这个key就是你需要的字符流。

j2ee 14文档中对于reuqestgetParameter()的解释,如果调用了requestgetParameter()就不能使用requestgetInputStream() 或者 requestgetReader()

如果调用了 requestgetInputStream() 或者 requestgetReader(),也就不能通过reqeustgetParameter()获得数据了,这2类方法相互影响

以下是j2ee 14文档的解释,我英文不好,不知道理解的意思是否正确

>

struts2 的action就相当于一个servlet 在jsp+servlet+javabean的模式上,我们是在servlet里面调用dao的方法对数据库进行 *** 作,然后返回结果,再把结果放到request,session 传到页面上的

在这里 struts2也和它差不多 它在action里面调用dao来 *** 作数据库当然如果在正规的项目中会有一个service层,在action里面 *** 作service,然后再在service里面 *** 作dao来 *** 作数据库

struts2里面好的一点就是 当你把action里面的属性定义成全局变量的时候,并且给它get,set方法的时候,你就可以直接在页面上面调用那个属性了在action里面获取到数据库的值,把它赋值给属性,然后页面上就可以直接访问那个属性的值了呀

<data sources>

    <data source key= DataSource type= apache mons dbcp BasicDataSource >

        <set property property= driverClassName value= mysql jdbc Driver />

        <set property property= url value= jdbc:mysql://localhost: /struts _login />

        <set property property= username value= root />

        <set property property= password value= ihpp />

    </data source>

</data sources>

配置了数据源后 就可以在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 >

通过action 链接去访问

比方说你的链接是 listdo action应该会返回对应的List

然后再jsp上就可以通过jstl标签获得,赋值给js变量

或者通过struts标签获得 都是可以的

类似 <s:property value="OGNL表达式"/> 这样的

在js里可以直接这样写

var data=<s:property value="OGNL表达式"/>

再简单点的就是在onload方法中 用ajax访问 获得相关内容

用你想用的方式- -

jsp获得action的数据的方式有很多~

其中获得属性的(有getter和setter)

${templatetitle[1]}<br>

<s:property value="templatetitle[0]"/><br>

<s:property value="#requesttemplatetitle[2]"/> <br>

这3种都可以 建议第二种

当然要求action里有template的getter/setter,

template里也要有title的getter/setter

但注意一点,虽然3种都能获得属性的值

但只有第二种方式是确定能获得属性而不是其他存储的同名值的

但只有第二种方式是确定能获得属性而不是其他存储的同名值的

但只有第二种方式是确定能获得属性而不是其他存储的同名值的

为什么这么说呢,第一种方式简直是万能的

可以获得 request > 属性 > ActionContext > session> application 里所存储的数据,

也就是你只要存储在任意一个里面, 不管request,还是session, 或者页面里你定义个变量- -

通过 ${name} 都能得到

但先后顺序就像上面所写的, 优先得request, 其次属性 依此类推

第二种方式,也可以取多种类型的存储

但优先取 属性 , 其次是ActionContext   所以可以确保能取属性

第三种方式

优先取request, 其次是属性, 其次是ActionContext

PS:补充一点 用struts标签,需要线taglib:

<%@taglib prefix="s" uri="/struts-tags" %>

PS2:再补充一点, 具体有几种引用action数据的方法,可以看这

>

PS3:再补充一点点, struts2快要老死了, 建议SpringMVC

以上就是关于struts2 jdbc 链接数据库全部的内容,包括:struts2 jdbc 链接数据库、请教struts2 如何拿到request.getReader的值、STRUTS2 action 查询数据库显示到jsp页面上等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9453306.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存