小编cbn*_*bnz的帖子

如何让Tomcat在URL中接受未转义的括号?

我之前从未使用过Tomcat,但我最近继承了一个JSP项目,现在我需要让它运行起来.我已经设法在Eclipse中本地安装Tomcat 8.0,一切正常.我还在Ubuntu VPS上安装了Tomcat 8.0.该应用程序运行正常,除了它处理URL的一个小问题.

客户端应用程序在参数中生成带有未转义方形和大括号的URL,如下所示:

GET /saveItems.json?items=[{%22json%22:%22here%22}]
Run Code Online (Sandbox Code Playgroud)

尽管我想改变客户端应用程序,但我不能.我只需要让这个后端运行.

我的应用程序的本地副本处理这个罚款.但是,在服务器上,我收到此错误:

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:286)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1504)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1460)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
Run Code Online (Sandbox Code Playgroud)

我一直在寻找可能影响这个的设置,没有任何运气.我在这里错过了什么?

java url jsp tomcat

7
推荐指数
2
解决办法
9645
查看次数

是否可以一次搜索多个猫鼬模型?

我有四个猫鼬模型SoleTraderPartnershipCompanyTrust。它们足够不同,我无法将它们全部合并到一个模式中,但又足够相似,以至于我经常需要同时查询或更改所有 4 种类型,而很少关心它们是哪种类型。

有没有办法做到这一点——可能是将所有四种类型放在一个集合中——而不必每次都进行四次数据库调用?

mongoose mongodb node.js

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

如何测试流是否已结束?

我有一个可能已经或可能尚未结束的流。如果它已经结束,我不想永远坐在那里等待end事件。我如何检查?

node.js node.js-stream

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

使用 Mongoose 进行条件字段选择

假设我有一组用户名和电子邮件地址。

{ name: 'John Doe', email: 'john@doe.com', level: 5 }
{ name: 'Fred Foo', email: 'fred@foo.com', level: 2 }
{ name: 'Jo Green', email: 'jo@green.com', level: 5 }
{ name: 'Paul Bar', email: 'paul@bar.com', level: 3 }
Run Code Online (Sandbox Code Playgroud)

我想查询这个集合,选择所有用户的名字和级别。在猫鼬,我可以这样做:

User
  .find()
  .select('name level')
  .exec(callback)
Run Code Online (Sandbox Code Playgroud)

这会给我以下内容:

{ name: 'John Doe', level: 5 }
{ name: 'Fred Foo', level: 2 }
{ name: 'Jo Green', level: 5 }
{ name: 'Paul Bar', level: 3 }
Run Code Online (Sandbox Code Playgroud)

但是如果用户的级别在 4 以上,我也想获取他们的电子邮件地址。这会给我以下内容:

{ name: 'John Doe', email: …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb

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

标签 统计

mongodb ×2

mongoose ×2

node.js ×2

java ×1

jsp ×1

node.js-stream ×1

tomcat ×1

url ×1