我正在开发JSP/Servlets应用程序,我想在特定时间执行服务,例如:
每天上午 10:00,从数据库中“附件”表中删除其中 X== NULL 列的任何附件。
我如何在 JSP/Servlet 应用程序中执行此操作?我使用 Glassfish 作为服务器。
我有一个网站(基于JSP/Servlets,使用MVC模式),我想支持基于AJAX的网站和基于HTML的基本网站.网站访问者应该能够将冲浪模式从Ajax更改为基本HTML,反之亦然,因为它适用于Google邮件.
问题:
我使用JQuery和JSON作为这个答案的结果.
我正在使用Apache公共文件上载库和Netbeans 6.8 + Glassfish.我正在尝试将当前上载路径更改为位于servlet的当前上下文路径中,如下所示:WEB-INF/upload
所以我写道:
File uploadedFile = new File("WEB-INF/upload/"+fileName);
session.setAttribute("path",uploadedFile.getAbsolutePath());
item.write(uploadedFile);
Run Code Online (Sandbox Code Playgroud)
但是我注意到库将上传的文件保存到glassfish文件夹中,这是我打印上传文件的绝对路径时得到的:
C:\Program Files\sges-v3\glassfish\domains\domain1\WEB-INF\upload\xx.rar
Run Code Online (Sandbox Code Playgroud)
我的问题 :
我有XML文件,我想按原样复制它,但我想过滤一些不需要的元素和属性,例如以下是原始文件:
<root>
<e1 att="test1" att2="test2"> Value</e1>
<e2 att="test1" att2="test2"> Value 2 <inner class='i'>inner</inner></e2>
<e3 att="test1" att2="test2"> Value 3</e3>
</root>
Run Code Online (Sandbox Code Playgroud)
过滤后(e3元素和att2属性已被删除):
<root>
<e1 att="test1" > Value</e1>
<e2 att="test1" > Value 2 <inner class='i'>inner</inner></e2>
</root>
Run Code Online (Sandbox Code Playgroud)
笔记:
谢谢
我正在开发一个jsp/serlvet应用程序.我有一个页面,其中包含一个输入列表作为复选框.我想使用ajax/jquery将所选按钮的值发送到servlet.在servlet中,我想提取这些值并使用它们.
例如:
我搜索并找到了这样的东西:
$("#inboxDeleteSelected").click(function(){
var data = { 'checkBoxList[]' : []};
var list=$(":input:checkbox:checked"); // getting all selected checkboxes.
$(list.each(function() {
data['checkBoxList[]'].push($(this).val());
}));
$.post("servlet?do=deleteSelected",data,function(d){
// do something here
});
});
Run Code Online (Sandbox Code Playgroud)
我的问题:
注意:
我不使用提交按钮提交所选复选框,确实我使用链接/锚点来发送这些值.
我有以下XML(你可以说SOAP请求):
<SOAPENV:Envelope xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:NS="http://xyz.gov/headerschema" >
<SOAPENV:Header>
<NS:myHeader>
<NS:SourceID>223423</NS:SourceID>
</NS:myHeader>
</SOAPENV:Header>
</SOAPENV:Envelope>
Run Code Online (Sandbox Code Playgroud)
我使用以下代码,它工作正常:
<?php
$myRequest ='<SOAPENV:Envelope xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:NS="http://xyz.gov/headerschema" >
<SOAPENV:Header>
<NS:myHeader>
<NS:SourceID>223423</NS:SourceID>
</NS:myHeader>
</SOAPENV:Header>
</SOAPENV:Envelope>';
$xml = simplexml_load_string($myRequest, NULL, NULL, "http://schemas.xmlsoap.org/soap/envelope/");
$namespaces = $xml->getNameSpaces(true);
$soapHeader = $xml->children($namespaces['SOAPENV'])->Header;
$myHeader = $soapHeader->children($namespaces['NS'])->myHeader;
echo (string)$myHeader->SourceID;
?>
Run Code Online (Sandbox Code Playgroud)
我知道前缀(SOAPENV + NS),但客户端可以将前缀更改为他们想要的任何内容,因此他们可以向我发送具有(MY-SOAPENV + MY-NS)前缀的xml文档.
我怎么能处理这个,因为名称空间前缀不是静态的,我该如何解析呢?
谢谢
我试图注册一个名称空间,但是每次使用xpath返回的值时,我都必须一次又一次地注册相同的名称空间。
<?php
$xml= <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<response>
<extension>
<xyz:form xmlns:xyz="urn:company">
<xyz:formErrorData>
<xyz:field name="field">
<xyz:error>REQUIRED</xyz:error>
<xyz:value>username</xyz:value>
</xyz:field>
</xyz:formErrorData>
</xyz:form>
</extension>
</response>
</epp>
XML;
Run Code Online (Sandbox Code Playgroud)
解析器:
$xmlObject = simplexml_load_string(trim($xml), NULL, NULL);
$xmlObject->registerXPathNamespace('ns','urn:company');
$fields = $xmlObject->xpath("//ns:field");
foreach($fields as $field){
//PHP Warning: SimpleXMLElement::xpath(): Undefined namespace prefix in
//$errors = $field->xpath("//ns:error");
// I have to register the same namespace again so it works
$field->registerXPathNamespace('ns','urn:company');
$errors = $field->xpath("//ns:error"); // no issue
var_dump((string)current($errors));
}
?>
Run Code Online (Sandbox Code Playgroud)
请注意,我不得不在循环内再次注册名称空间,如果不这样做,我将得到以下错误:
// PHP警告:SimpleXMLElement :: xpath():...中的未定义名称空间前缀
您是否知道如何将注册的名称空间保留在xpath函数返回的simplexml对象中。