小编rus*_*tyx的帖子

Programmatic Servlet 3.0 JSP jsp-property-group 配置

我能够在我的ServletContainerInitializer 中创建 servlet 和过滤器,但是是否可以将旧的最后剩余部分web.xml转换为 Servlet 3.0 编程配置?

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>UTF-8</page-encoding>
        <trim-directive-whitespaces>true</trim-directive-whitespaces>
    </jsp-property-group>
</jsp-config>
Run Code Online (Sandbox Code Playgroud)

java servlet-3.0 jakarta-ee

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

reCAPTCHA:灰色提交按钮,直到后端交互完成

我已经集成了reCAPTCHA并且工作正常,除非用户在检查"我不是机器人"复选框后立即单击"提交"按钮时太快.reCAPTCHA通过Ajax注册用户操作需要相当长的时间,如果他们过快地点击提交,则缺少g-recaptcha-response,并且验证失败.

因此,我的问题是:如何将提交按钮变灰,直到g-recaptcha-response值可用?

    <form id="capform" action="/captchaverify" method="POST">
        <div class="g-recaptcha" data-sitekey="..."></div>
        <p>
        <input id="capsubmit" type="submit" value="Submit">
    </form>
Run Code Online (Sandbox Code Playgroud)

recaptcha

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

x86_64:IMUL快于2x SHL + 2x ADD吗?

在/O2(发布)模式下查看由Visual Studio(2015U2)生成的程序集时,我看到这个"手动优化"的C代码被转换回乘法:

int64_t calc(int64_t a) {
  return (a << 6) + (a << 16) - a;
}
Run Code Online (Sandbox Code Playgroud)

部件:

  imul        rdx,qword ptr [a],1003Fh  
Run Code Online (Sandbox Code Playgroud)

所以我想知道这是否真的比按照它的编写方式更快,类似于:

  mov         rbx,qword ptr [a]  
  mov         rax,rbx  
  shl         rax,6  
  mov         rcx,rbx  
  shl         rcx,10h  
  add         rax,rcx  
  sub         rax,rbx  
Run Code Online (Sandbox Code Playgroud)

我总是觉得乘法总是比几个班次/加法慢?现代英特尔x86_64处理器不再是这种情况吗?

performance assembly x86-64 intel multiplication

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

grpc找不到protobuf库

我检查了 grpc 安装并完成了构建和安装。

现在当我尝试:

find_package(gRPC CONFIG REQUIRED)

我明白了

CMake Error at CMakeLists.txt:15 (find_package):
  Found package configuration file:

    /usr/lib64/cmake/grpc/gRPCConfig.cmake

  but it set gRPC_FOUND to FALSE so package "gRPC" is considered to be NOT
  FOUND.  Reason given by package:

  The following imported targets are referenced, but are missing:
  protobuf::libprotobuf protobuf::libprotoc
Run Code Online (Sandbox Code Playgroud)

事件虽然

find_package(Protobuf REQUIRED)

效果很好。

我读到我应该跑去cmake ../.. -DBUILD_DEPS=ON -DBUILD_SHARED_LIBS=ON解决这个问题。然而,这会导致:

CMake Error at cmake/abseil-cpp.cmake:38 (find_package):
  Could not find a package configuration file provided by "absl" with any of
  the following names:

    abslConfig.cmake …
Run Code Online (Sandbox Code Playgroud)

c++ cmake protocol-buffers grpc

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

如何在JAXWS中使用FastInfoset?

根据我能找到的内容,我的代码看起来应该是正确的,但是输出的代码并不表示它正在使用FastInfoset.我的理解是Accept应该表明它可以接受Fastinfoset并且响应实际上会使用它,这意味着它不是text/xml作为响应类型.知道我做错了什么吗?我和Google一起搜索过,我很难找到有关如何使用FastInfoset的详细信息.

    JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
    factory.getInInterceptors().add(new LoggingInInterceptor());
    factory.getOutInterceptors().add(new LoggingOutInterceptor());
    factory.setServiceClass( C360Server.class);
    factory.setAddress("http://localhost:8501/cxfcontroller/cl_v5");
    C360Server client = (C360Server)factory.create();
    ((BindingProvider)client).getRequestContext().put(
        "com.sun.xml.ws.client.ContentNegotiation", "optimistic");

    C360Request requestTrans = new C360Request();
    ... code to fill in the request ...
    C360Response response = client.findContacts( requestTrans );
Run Code Online (Sandbox Code Playgroud)

记录似乎并不表示FastInfoset甚至尝试过:

INFO: Outbound Message
---------------------------
ID: 1
Address: http://localhost:8501/cxfcontroller/cl_v5
Encoding: UTF-8
Content-Type: text/xml
Headers: {SOAPAction=[""], Authorization=[Basic cWFfc3VwZXI6cWFfc3VwZXI=], Accept=[*/*]}
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns1:findContacts>...bunch of xml deleted for brevity...</ns1:findContacts></soap:Body></soap:Envelope>
--------------------------------------
May 17, 2010 3:23:45 PM org.apache.cxf.interceptor.LoggingInInterceptor logging
INFO: Inbound Message
----------------------------
ID: 1
Response-Code: …
Run Code Online (Sandbox Code Playgroud)

java jax-ws fastinfoset

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

如果没有InnoDB,Rails 3无法在MySQL MyISAM模式下运行吗?

我有一个运行InnoDB的MySQL服务器禁用(出于性能原因),使用此设置我似乎无法使用Rails 3(使用mysql2适配器).

这是我的测试迁移:

class CreateTxts < ActiveRecord::Migration
  def change
    create_table(:txts, :options => 'ENGINE=MyISAM') do |t|
      t.timestamps
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这是错误:

>rake db:migrate
rake aborted!
Mysql2::Error: Unknown storage engine 'InnoDB': CREATE TABLE `schema_migrations`
(`version` varchar(255) NOT NULL) ENGINE=InnoDB
Run Code Online (Sandbox Code Playgroud)

尝试了这里描述的解决方法,但它似乎也没有工作(我确实修改了MysqlAdapter到Mysql2Adapter以匹配我的设置).

对不起,我是Rails的新手.任何帮助将不胜感激:o

ruby-on-rails rails-migrations

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

重新启动explorer.exe时如何恢复"丢失"通知图标?

我有一个Win32应用程序,它在启动时添加任务栏图标.

它工作正常,除了当资源管理器崩溃然后重新启动时,我的应用程序继续运行,但任务栏图标消失了.

我怀疑我应该处理一些事件,但是哪个?

winapi taskbar

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

write_some vs write - boost asio

为什么有人想write_some在可能无法将所有数据传输到同行时使用?

来自boost write_some文档

write_some操作可能不会将所有数据传输到对等方.如果需要确保在阻塞操作完成之前写入所有数据,请考虑使用write函数.

write_some具有write方法时,方法在boost中的相关性是什么?我查看了boost write_some文档,我无法猜到.

c++ boost boost-asio

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

如何提高C ++中的std :: set_intersection性能?

在C ++中使用std :: set和Python中使用set()进行实验期间,我遇到了无法解释的性能问题。在C ++中设置交集至少要比Python慢​​3倍。

因此,有人能指出我可以对C ++代码进行的优化和/或解释Python如何更快地做到这一点吗?

我希望他们都可以在set有序的情况下使用O(n)复杂度的相似算法。但是Python可能会做一些优化,以使其系数变小。

set_bench.cc

#include <iostream>
#include <set>
#include <algorithm>
#include <iterator>
#include <chrono>
#include <functional>
#include <thread>

void elapsed(std::function<void()> f, const std::string& s)
{
    auto start = std::chrono::steady_clock::now();
    f();
    std::chrono::duration<double> elapsed = std::chrono::steady_clock::now() - start;
    std::cout << s << " " << elapsed.count() << " seconds" << std::endl;
}

template <typename T>
void fill_set(std::set<T>& s, T start, T end, T step)
{
    for (T i = start; i < end; i += step) { …
Run Code Online (Sandbox Code Playgroud)

c++ performance hashtable set

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

当数组有重复值时,为什么快速排序算法持续时间会增加?

我正在尝试使用 std::chrono 时间计算并使用某个范围 [A, B] 内随机生成的整数数组来测量合并排序和快速排序函数的持续时间,数组的大小从 5000 到 100,000 个整数不等。

我的代码的目标是证明当在快速排序中选择(枢轴)的方法得到改进时,快速排序函数最终比合并排序花费更少的时间来处理数组,我选择枢轴的方式是使用随机索引方法来最小化复杂度为 (n^2) 的概率,但是在我将在下面描述的某些情况下,快速排序最终比合并排序花费更多的时间,我想知道为什么会发生这种情况。

情况1:数组中数字的范围很小,这增加了数组中出现重复数字的可能性。

情况 2:当我使用像 clion 这样的本地 IDE 时,快速排序功能比合并排序花费更多的时间,但是像 IDEONE.com 这样的在线编译器在两种排序算法中给出相似的结果(即使生成的整数的范围是小的)

这是我在上述案例中得到的结果(第一行数字是合并排序结果,第二行是快速排序结果):

1-clion 结果范围很窄(-100、600) clion 结果范围很窄 (-100, 600)

2-clion 结果具有广泛的数字 (INT_MIN, INT_MAX) clion 结果具有广泛的数字(INT_MIN、INT_MAX)

3-IDEONE 结果的数字范围很窄(-100、600) IDEONE 结果的数字范围很窄(-100、600)

4- IDEONE 结果的范围很广(INT_MIN、INT_MAX) IDEONE 结果具有广泛的数字(INT_MIN、INT_MAX)

#include <bits/stdc++.h>
#include <chrono>
#include <random>

using namespace std;

mt19937 gen(chrono::steady_clock::now().time_since_epoch().count());
int* generateArray(int size)
{
    int* arr = new int[size];
    uniform_int_distribution<> distribution(INT_MIN, INT_MAX);
    for (int i=0; i < size; ++i)
    {
        arr[i] = distribution(gen);
    }
    return arr;
}
void merge(int* leftArr, int nL, int* rightArr, int …
Run Code Online (Sandbox Code Playgroud)

c++ performance mergesort quicksort time-complexity

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