我正在使用以下代码从我的jsp查询数据库,但我想知道更多关于幕后发生的事情.
这是我的两个主要问题.
标签是直接访问ResultSet,还是查询结果存储在内存中的数据结构中?
什么时候连接关闭?
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<sql:query var="query" dataSource="${ds}" sql="${listQuery}"></sql:query>
<c:forEach var="row" items="${query.rows}" begin="0">
${row.data }
${row.more_data }
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
注意:我一直反对在jsp中运行查询,但我的结果集太大,无法在我的动作和我的jsp之间存储在内存中.使用此标记库看起来是最简单的解决方案.
我使用Java和WS-Security在我们的产品中公开了几个Web服务.我们的一位客户希望使用ColdFusion来使用Web服务.ColdFusion是否支持WS-Security?我可以通过编写Java客户端并在ColdFusion中使用它来解决它吗?
(我对ColdFusion不太了解).
当我根据配置获得wsdl时,我已经开始工作了,但是我想告诉它使用特定地址进行服务调用并使用wsdl的本地副本.
MyWebService serviceDefinition = new MyWebService(new URL(wsdlLocation));
service = serviceDefinition.getMyWebServicePort();
Run Code Online (Sandbox Code Playgroud)
有谁知道这方面的最佳做法?
xml请求有效.
<soap:Body>
<ns2:getData xmlns:ns2="http://services.test.com/">
<arg0>Test Name</arg0>
<arg1>55555555</arg1>
</ns2:getData>
</soap:Body>
Run Code Online (Sandbox Code Playgroud)
代理xml请求不起作用.
<soap:Body>
<ns1:getData xmlns:ns1="http://ws.test.com/">
<ns3:arg0 xmlns:ns2="http://services.test.com/" xmlns:ns3="http://ws.test.com/">Test Name</ns3:arg0>
<ns3:arg1 xmlns:ns2="http://services.test.com/" xmlns:ns3="http://ws.test.com/">55555555</ns3:arg1>
</ns1:getData>
</soap:Body>
Run Code Online (Sandbox Code Playgroud) 既然我知道如何在scala中解析xml作为流我需要帮助理解一个非平凡的例子.
我想解析下面的xml作为流,并在我解析出完整的消息时发送一条消息(打印到本例的控制台).
我理解scala中基于流的解析使用case类来处理不同的元素,但我刚刚开始,我不太明白如何做到这一点.
我使用stax解析器在java中工作,我正在尝试将其转换为scala.
任何帮助将不胜感激.
<?xml version="1.0" ?>
<messages>
<message>
<to>john.doe@gmail.com</to>
<from>jane.doe@gmail.com</from>
<subject>Hi Nice</subject>
<body>Hello this is a truly nice message!</body>
</message>
<message>
<to>joe@gmail.com</to>
<from>jane.doe@gmail.com</from>
<subject>Hi Nice</subject>
<body>Hello this is a truly nice message!</body>
</message>
</messages>
Run Code Online (Sandbox Code Playgroud) 我想提取括在花括号中的所有单词,所以我有一个像这样的表达式
foo {bar} moo {mar}
Run Code Online (Sandbox Code Playgroud)
要匹配的字符串可能包含任意数量的这些单词,但我开始认为我正在以错误的方式处理此问题.
我的尝试
而且我试图将大括号分成几组,这样我就可以使用每一个匹配.所以,我做了一个正则表达式:
String rx = ".*\\{({GROUP}\\w+)\\}.*";
Run Code Online (Sandbox Code Playgroud)
注意:我正在使用JRegex语法,所以我需要逃避一些问题.
结果
我得到的结果是一个(尽管是正确的)匹配bar,而我期待两个匹配bar和mar.我误解了什么,我该如何纠正呢?我可能需要为该.部分使用其他一些量词,但我希望你也可以帮助我.
提前谢谢了!
我试图理解如何在scala中使用不可变类作为可变java类的替代.
我的示例用例是在数据库中搜索联系人.当命令性编程时,您将从数据库表中提取每个字段并将其设置在java对象上.
你会如何使用不可变类型和函数样式在Scala中执行此操作?
我知道我可以使用构造函数并创建一个新的对象实例,将所有必需的数据传递给它,但对于大型复杂的数据结构,这似乎并不优雅.
什么是"Scala"/"功能"方法来实现这一目标?或者与构建复杂的不可变类型有关的一些最佳实践是什么?
public List<Contact> search(String firstName, String lastName) throws SQLException {
List<Contact> contacts = new ArrayList<Contact>();
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
con = dataSource.getConnection();
ps = con.prepareStatement("select * from contacts where first_name like ? and last_name like ?");
ps.setString(1, "%" + firstName + "%");
ps.setString(1, "%" + lastName + "%");
rs = ps.executeQuery();
while (rs.next()) {
Contact contact = new Contact();
contact.setFirstName(rs.getString("first_name"));
contact.setMiddleName(rs.getString("middle_name"));
contact.setLastName(rs.getString("last_name"));
Date birthday = rs.getDate("birthday"); …Run Code Online (Sandbox Code Playgroud) 我正在编写审计跟踪的报告视图,我需要在.jsp中显示它.将数据从数据库传输到屏幕的"最佳"方法是什么?
我们使用Spring进行依赖注入,数据访问对象和Hibernate.我可以使用hibernate或直接jdbc来生成此报告.
如果我将所有记录加载到内存中,我的内存不足.
任何不涉及在jsp中运行查询的想法?
这是我目前正在使用的代码.它使用BouncyCastle Provider.
static
{
Security.addProvider(new BouncyCastleProvider());
}
protected String encrypt(byte[] keyData, byte[] data) throws Exception {
X509EncodedKeySpec keyspec = new X509EncodedKeySpec(keyData);
KeyFactory kf = KeyFactory.getInstance("RSA", "BC");
PublicKey pk = kf.generatePublic(keyspec);
Cipher rsa = Cipher.getInstance("RSA/None/OAEPWithSHA1AndMGF1Padding", "BC");
rsa.init(Cipher.ENCRYPT_MODE, pk);
byte[] output = rsa.doFinal(data);
String result = base64EncodeBytes(output);
return result;
}
Run Code Online (Sandbox Code Playgroud)
我现在正在接受
java.lang.ArrayIndexOutOfBoundsException: too much data for RSA block
at org.bouncycastle.jce.provider.JCERSACipher.engineDoFinal(Unknown Source)
at javax.crypto.Cipher.doFinal(DashoA13*..)
at Encryption.encrypt(RSAToken.java:60)
Run Code Online (Sandbox Code Playgroud) DatabaseMetaData metadata = con.getMetaData();
metadata.getTables(catalog, schemaPattern, tableNamePattern, types);
Run Code Online (Sandbox Code Playgroud)
获取表列表需要哪些字段?
我知道我可以通过代码使用来做到这一点
myClient.ClientCredentials.UserName.UserName = "User";
myClient.ClientCredentials.UserName.Password = "Password";
Run Code Online (Sandbox Code Playgroud)
是否可以通过配置为客户端提供相同的功能?
java ×7
scala ×2
web-services ×2
ws-security ×2
.net ×1
c# ×1
coldfusion ×1
cxf ×1
encryption ×1
hibernate ×1
jdbc ×1
jsp ×1
jstl ×1
mysql ×1
regex ×1
rsa ×1
security ×1
wcf ×1
wcf-client ×1
xml ×1