问题标签 [servlet-3.1]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - spring mvc 中是否有 AsyncContext 的模拟?(如何在另一个线程中编写 http 响应)
我有关于 servlet 3.0/3.1 规范的 spring 支持以及我在这篇文章中找到的大部分信息的谷歌: Understanding Callable and Spring DeferredResult
这里作者说你可以从控制器返回Callable
或返回DefferedResult
,并说它是春季维护的servlet 3.0/3.1。
但我不明白如何在我的情况下应用它:
我有外部系统,我从这个系统异步获得结果。
在控制器中我写了这样的东西:
我有另一个线程可以得到结果:
我知道在 servlet API 中我允许将 asyncContext 保存在地图中,然后找到它。
我怎样才能在春天实现它?
jakarta-ee - 在外部java项目中使用@WebServlet注解
我试图只使用本机 java,而不使用 spring、struts 等框架。
我正在使用 servlet 和 jsps 构建一个 Web 应用程序。
我在项目资源管理器中的项目布局(在 Eclipse 中):MyApp(java 项目)、MyAppWEB(动态 web 项目)、MyAppWEBEAR(ear 项目)、
Servlet 在 MyApp 项目中。Jsp 在 MyAppWEB 项目中。
两个项目都添加到 EAR。MyApp 在部署程序集中作为 jar 添加到 MyAppWEB 的清单中。
现在是问题:当我在 servlet 类名上方使用 @WebServlet("/hi") 时,出现错误 404。
但是,如果我在 web.xml 中定义 servlet,那么一切正常(没有注释)。
此外,如果将 MyApp 项目导出为 jar 并将其放在 WEB-INF/lib 文件夹中而不使用 web.xml,那么它也可以正常工作。
所以问题是,是否可以在 java 项目中使用此注释(无需手动导出到 jar 并放入 WEB-INF/lib 中)?
网页.xml:
HelloWorldServlet:
HelloWorld.jsp:
java - 如何在 Struts 2 工厂类中获取 ServletContext
在 Struts 2 工厂类中访问ServletContext
(例如StrutsTextProviderFactory
)
我使用了以下代码:
它有效,但我认为定义一个static
属性并以这种方式设置它不是最好的方法。
有没有更好的办法 ?!
google-app-engine - App Engine Java 8 标准环境中的 Servlet 异步处理支持
我正在使用 GAE J8 标准环境(无可扩展环境)在 servlet 3.1 中尝试异步处理支持。
基本上我有一个带有注释的servlet
@WebServlet(name = "MyServletName", urlPatterns = {"/dosomething"}, asyncSupported = true)
并获取我调用的 AsyncContext 实例(在 doPost 方法中)
final AsyncContext asyncContext = httpServletRequest.startAsync(httpServletRequest, httpServletResponse);
但是异步处理支持在 GAE 中似乎存在一些问题
本地开发服务器说:
将应用程序部署到云端后,错误是:
我错过了什么吗?
谢谢!
java - 循环遍历包含 Java Servlet 中标头名称的枚举
我想遍历一个包含 java servlet 中所有头文件名称的枚举。我的代码如下:
这是正确的语法吗?在 Java 中如何实际迭代枚举值?特别是在这种情况下?
谢谢你的帮助,马克
spring-mvc - GAE Java 8 Runtime: java.nio.file.InvalidPathException: Illegal char <:> at index 68 in request URL
我将 Spring MVC(不是 Spring Boot)用于我的基于 Google App Engine REST 的网络应用程序。今天我将 GAE Java 运行时升级到 1.8(Java 8)和 servlet-api 3.1。AppEngine SDK 版本 1.9.56。
所有的 spring bean 都可以完美加载,没有任何错误。我在服务请求时收到此异常:
这是我的 appengine-web.xml:
当我在 GAE 中使用 Java 7 运行时时,我没有遇到这个问题。请帮忙。
java - 使用 @WebFilter 和 @WebListener vs和在 web.xml 中(带有 Servlet 3.x 的 Jersy2)
我正在尝试java-melody
在 Web 应用程序中使用以进行监控。
build.gradle 中的依赖
使用 web.xml(工作正常)
应用程序初始化类
它按预期工作到这里。
但我不想使用,web.xml
因为我们可以在Servlet 3.x
. 所以我确实喜欢下面,这似乎不起作用......
过滤器
修改后的应用程序初始化
我在这里做错了什么?两个不一样吗?
什么不起作用
使用web.xml
,我可以访问资源,http://localhost:8080/test-app/monitoring
并且所有图表都可以正常显示。但是如果没有任何web.xml
和@WebFilter
,则该资源是不可访问的。
java - 获取从 HTML 表单提交的 java servlet 中的 unicode 字符串?
我在 Servlet 中使用 Unicode(Nepali) 时坚持了下来。好吧,我提交(POST 方法)HTML 表单并想存储在数据库中。但无法获得准确的 unicode。
我尝试了以下事情-
new String(request.getParameter("nameNep").getBytes("iso-8859-1"),"utf-8")
上面代码的结果?????? ????
就像字符串
byte[] utf8Bytes = request.getParameter("nameNep").("UTF8"); String text = new String(utf8Bytes,"UTF8");
此代码生成类似的文本मà¤?दà¥?र à¤?न
,实际上与request.getParameter("nameNep")
URLDecoder.decode(request.getParameter("nameNep"), "UTF-8");
结果与 2 相同
request.setCharacterSet("UTF-8");
在应要求采取任何行动之前进行设置,得到与 2 和 3 相同的结果
我在这里做错了什么,表单字段 nameNep 包含尼泊尔语 Unicode 字符。
java - Undertow 是否支持来自异步源的异步 I/O?
我有一个场景,我试图以非阻塞方式提供数据,该方式由 RxJava Observable(也是非阻塞)提供。我正在使用 ServletOutputStream 提供的 WriteListener 回调。我遇到了一个问题,java.lang.IllegalStateException: UT010035: Stream in async mode was not ready for IO operation
即在成功isReady()
检查 ServletOutputStream 后写入立即抛出 IllegalStateException ()。
在深入研究的同时,我在ServletOutputStream的 Undertow 实现中注意到了这条评论:
一旦设置了写侦听器,操作只能从写侦听器回调中对此流调用。尝试从不同的线程调用将导致 IllegalStateException。
鉴于我的数据源是异步的,在某些情况下,onWritePossible()
回调将达到没有立即可用数据的状态,我需要等待从源接收到更多数据。在这些情况下,我需要与来自我的数据源回调的流进行交互,这将是一个不同的线程。唯一的其他选择是暂停用于调用的线程onWritePossible()
并等待更多数据到达,但这将是一个阻塞操作,会破坏整个目的。
我还缺少另一种方法吗?Servlet 3.1 规范似乎不需要 Undertow 的单线程要求。从我读过的内容来看,鉴于应用程序协调流访问同步,其他实现似乎可以容忍多线程方法。
web.xml - Tomcat8 - 默认错误页面不起作用
Tomcat 8
小服务程序 3.1
我正在尝试让默认错误页面正常工作。例如,这篇文章就是我想要做的。
我的 web.xml
当我删除评论时,我在尝试访问不存在的 URL 时看到我的错误页面。有了评论,尝试相同的 URL,我的浏览器只返回 404。
我找不到任何说明此行为在 3.0 和 3.1 之间发生变化的内容,并且我在 tomcat 日志中看不到任何错误。