小编Abd*_*lah的帖子

如何使用 JSP/Servlet 应用程序在特定时间运行服务?

我正在开发JSP/Servlets应用程序,我想在特定时间执行服务,例如:

每天上午 10:00,从数据库中“附件”表中删除其中 X== NULL 列的任何附件。

我如何在 JSP/Servlet 应用程序中执行此操作?我使用 Glassfish 作为服务器。

java servlets scheduled-tasks

5
推荐指数
1
解决办法
6799
查看次数

如何在基于ajax的网站和基本的HTML网站之间轻松切换?

我有一个网站(基于JSP/Servlets,使用MVC模式),我想支持基于AJAX的网站和基于HTML的基本网站.网站访问者应该能够将冲浪模式从Ajax更改为基本HTML,反之亦然,因为它适用于Google邮件.

问题:

  • 轻松实现这一目标的最佳方法是什么?
  • 我应该为每个页面设计两个视图吗?

我使用JQuery和JSON作为这个答案的结果.

html ajax jsp design-patterns servlets

4
推荐指数
2
解决办法
822
查看次数

如何使用Apache Common fileupload为上传的文件设置"上下文路径"的路径?

我正在使用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)

我的问题 :

  • 如何强制公共文件上载将上传的文件保存在相对于当前servlet路径的路径中,所以我不需要指定整个路径?这可能吗 ?

java servlets apache-commons-fileupload

4
推荐指数
1
解决办法
2万
查看次数

如何使用XSLT从XML文件中删除不需要的元素和属性

我有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)

笔记:

  • 我更喜欢使用(如果可能的话,为每个元素而不是apply-templates)
  • 我有一些xsl:element和xsl:属性的问题,因为我无法编写当前节点名

谢谢

xml xslt

4
推荐指数
1
解决办法
2万
查看次数

使用ajax和jsp/servlets获取所有选中的复选框值?

我正在开发一个jsp/serlvet应用程序.我有一个页面,其中包含一个输入列表作为复选框.我想使用ajax/jquery将所选按钮的值发送到servlet.在servlet中,我想提取这些值并使用它们.
例如:

  • 用户检查一些复选框,例如,消息列表.
  • 他/她按Delete Link删除所选消息.

我搜索并找到了这样的东西:

$("#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)

我的问题:

  • 如何将选定的复选框值发送到servlet?
  • 如何在servlet中提取这些值?

注意:

我不使用提交按钮提交所选复选框,确实我使用链接/锚点来发送这些值.

ajax jquery jsp servlets

1
推荐指数
1
解决办法
1万
查看次数

在PHP中使用动态命名空间前缀解析XML元素

我有以下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文档.

我的问题

我怎么能处理这个,因为名称空间前缀不是静态的,我该如何解析呢?

谢谢

php soap namespaces simplexml

1
推荐指数
1
解决办法
1625
查看次数

当返回数据时,PHP SimpleXML xpath不保留名称空间

我试图注册一个名称空间,但是每次使用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对象中。

php xpath simplexml

0
推荐指数
1
解决办法
3744
查看次数