Tag: servlets

在Spring MVC中写入文件请求

我希望能够将整个请求写入Spring MVC控制器中的文件。 我尝试了以下内容,但即使我正在使用大量参数发出POST请求,该文件也始终为空: @RequestMapping(method = RequestMethod.POST, value = “/payments/confirm”) public void receiveCallback(ServletInputStream inputStream) { try { inputStream.reset(); byte[] data = IOUtils.toByteArray(inputStream); File file = new File(System.getProperty(“java.io.tmpdir”) + “test” + System.currentTimeMillis() + “.txt”); FileOutputStream fos = new FileOutputStream(file); fos.write(data); fos.close(); } catch (Exception e) { logger.error(“Error writing request”, e); } } 我也尝试过使用HttpServletRequest.getInputStream(),但结果相同。

如何使用JAX-RS转发请求?

我想将REST请求转发给另一台服务器。 我使用JAX-RS与Jersey和Tomcat。 我尝试设置See Other响应并添加Location标头,但它不是真正的前进。 如果我使用: request.getRequestDispatcher(url).forward(request, response); 我明白了: java.lang.StackOverflowError :如果url是相对路径 java.lang.IllegalArgumentException :路径http://website.com不以/字符开头(我认为转发仅在同一个servlet上下文中合法)。 我该如何转发请求?

Guice – Jersey – Servlet绑定

我最近切换到两阶段注入,这在我的servlet绑定中创建了一个错误。 我目前正在两种错误模式之间切换,不确定哪种方向最好。 我遇到的第一个错误是: com.sun.jersey.api.container.ContainerException:ResourceConfig实例不包含任何根资源类。 我的servlet模块看起来像这样: public class MyServletModule extends JerseyServletModule { @Override protected void configureServlets() { bind(MyServlet.class).asEagerSingleton(); serve(“/*”).with(GuiceContainer.class); } } 我能够通过显式提供com.sun.jersey.config.property.packages参数来删除此错误。 public class MyServletModule extends JerseyServletModule { @Override protected void configureServlets() { bind(MyServlet.class).asEagerSingleton(); Map parameters = new HashMap(); parameters.put(PackagesResourceConfig.PROPERTY_PACKAGES, MyServlet.class.getPackage().getName()); serve(“/*”).with(GuiceContainer.class, parameters); } } 但是当我这样做时,Guice会尝试一个Just in Time绑定,它不尊重我的servlet构造函数上的@Inject。 com.google.inject.ConfigurationException:Guice配置错误: 1)无法为MyServlet创建绑定。 它已经在MyServletModule.configureServlets绑定的一个或多个子注入器或私有模块上配置(MyServletModule.java:44)如果它在PrivateModule中,您是否忘记公开绑定? 在找到MyServlet时 com.google.inject.internal.InjectorImpl.getBinding上的1个错误(InjectorImpl.java:150) 我的servlet有一个@Inject构造函数,它的参数不能及时绑定。 在调试InjectorImpl之后,我相信当我使用PROPERTY_PACKAGES时这就是失败的原因。 我只是不确定使用PROPERTY_PACKAGES是否正确,我需要修复一些绑定? […]

Java:确保Web应用程序仅在一个浏览器选项卡中打开

确保特定页面(假设单页Web应用程序)仅在一个浏览器选项卡中打开的最佳方法是什么? 假设Java Web应用程序具有身份validation,即用户必须登录(因此我们可以通过Java Session API识别哪个用户正在查看哪个页面)。 目的是如果为同一个URL打开另一个选项卡,则用户将被重定向到静态页面,该页面告诉他应用程序在其他位置打开(另一个选项卡)。 我目前的方法无法在同一浏览器中使用标签,因为JSESSIONID存储在cookie中,可用于所有浏览器的标签。

HttpServlet没有实现runnable或extend thread,为什么它可以线程化?

对于可运行的对象,它需要实现Runnable接口或扩展Thread类,但是,似乎HttpServlet不会执行任何这些操作。 为什么HttpServlet可以被线程化或者我弄错了?

Jersey:将值从ContainerRequestFilter传递到端点

我使用的是Jersey 2.9,我创建了一个filter,它将获取一个加密的标头值,然后将其解密,然后将其传递给被调用的端点。 我不知道如何做到这一点,我一直在网上搜索,但没有真正找到我想做的具体例子。 调用filter,我只是将值从它传递到端点时出现问题。 你能帮助我吗! 以下是一些示例代码: public class MyFilter implements ContainerRequestFilter { @Override public void filter(ContainerRequestContext requestContext) throws WebApplicationException { String EncryptedString = requestContext.getHeaderString(“Authentication”); /* Doing some methods to remove encryption */ /* Get a string which I want to pass to the endpoint which was called on, in this example: localhost:4883/rest/test */ } } […]

RestAPI和Restful Web服务之间的区别

我是网络服务的新手。 有人可以帮助我理解REST API和Java中的Restful Web服务之间的区别。 我开发了一个仅基于servlet和jsp的web应用程序。 现在必须使用REST API开发相同的应用程序。 使用servlet和jsp开发Web应用程序和使用REST API开发Web应用程序之间的区别是什么。 有人可以提供指向良好教程的链接,我可以通过示例了解有关REST API的更多信息。

生产中的ServletRequestWrapper或ServletResponseWrapper?

您有没有看到在生产环境中扩展HttpServletResponseWrapper / HttpServletRequestWrapper或ServletRequestWrapper / ServletResponseWrapper任何有用的东西?

Acegi / Spring安全性是否支持getUserPrincipal()?

我需要使用Acegi / Spring安全性连接现有应用程序。 为了开始,我正在寻找一个简单的信息:在这个上下文中,从我的应用程序调用的HttpServletRequest.getUserPrincipal()是否正确返回通过Spring获得的用户名(而不是使用特定于Spring的对象)? 我在Google上搜索了相互矛盾的信息。 我假设如果使用filter实现Acegi,它可以重载Servlet API的getUserPrincipal(),对吗? 附属问题:如果默认不是这种情况,有没有办法打开它? 谢谢, -Erik

servlet是否知道使用http-equiv指定的已发送表单的编码?

servlet是否知道使用http-equiv指定的已发送表单的编码? 当我使用http-equiv指定POSTed表单的编码时: 然后在servlet我使用方法, request.getCharacterEncoding()我得到了null ! 那么,有没有办法可以告诉服务器我在一些字符编码中编码数据?