草庐IT

Dispatcher-servlet

全部标签

java - 在 java servlet 中流式传输大文件

我正在构建一个需要扩展的Java服务器。其中一个servlet将提供存储在AmazonS3中的图像。最近在负载下,我的VM内存不足,而且是在我添加了提供图像的代码之后,所以我很确定流式传输更大的servlet响应会导致我的麻烦。我的问题是:在从数据库或其他云存储读取时,如何编写javaservlet以将大型(>200k)响应流式传输回浏览器,是否有任何最佳实践?我考虑将文件写入本地临时驱动器,然后生成另一个线程来处理流,以便可以重用tomcatservlet线程。这似乎会很重。任何想法将不胜感激。谢谢。 最佳答案 如果可能,您不应将

java - Servlet API 中的请求方法常量在哪里?

我想写if(POST.equals(req.getMethod()))而不是if("POST".equals(req.getMethod()))但我在ServletAPI中找不到常量定义(仅在HttpServletRequest中查找,我希望它们在其中)。它们在哪里(我使用了很多库,所以如果其他人定义它们,那也可以)? 最佳答案 JavaEE6似乎将HTTP方法名称作为常量添加到javax.ws.rs.HttpMethod注释接口(interface)。根据您的设置,它们可能对您可用。http://docs.oracle.com/j

java - 如何在没有请求的 servlet 的情况下在 jsf 托管 bean 中获取请求 url?

假设URL为http://localhost:8080/project-name/resource.xhtml,我想获取以下http://localhost:8080/project-name在JSF托管bean中。 最佳答案 我假设您使用JSF2和JavaEE6来回答这个问题。实际机制的实现会因您需要原始URL的程度而异。您首先需要访问生成的HttpServletRequest对象的底层servlet容器(假设是一个,而不是portlet容器)。使用FacesContext对象以以下方式访问HttpServletRequest对象

java - 实现一个简单的文件下载servlet

这个问题在这里已经有了答案:SimplestwaytoservestaticdatafromoutsidetheapplicationserverinaJavawebapplication(10个回答)关闭2年前.我应该如何实现简单的文件下载servlet?这个想法是,通过GET请求index.jsp?filename=file.txt,用户可以下载例如。file.txt从文件servlet和文件servlet将该文件上传给用户。我可以获取文件,但是如何实现文件下载? 最佳答案 假设您可以访问servlet,如下所示http://l

java - 用于简单 Servlet 应用程序的 Maven 原型(prototype)

是否有用于简单Servlet(2.5)Web应用程序的Maven2原型(prototype)? 最佳答案 是webapp的原型(prototype):mvnarchetype:generate-DgroupId=com.acme\-DartifactId=my-webapp\-Dversion=1.0-SNAPSHOT\-DarchetypeArtifactId=maven-archetype-webapp\-DinteractiveMode=false这将生成以下结构:$treemy-webapp/my-webapp/├──pom

java - org.glassfish.jersey.servlet.ServletContainer ClassNotFoundException

我在org.glassfish.jersey.servlet.ServletContainer中遇到了ClassNotFoundException,但昨晚我尝试使用EclipseJuno启动/重新启动我的Tomcat服务器(v7)时它特别开始.不知道发生了什么。奇怪的是,它昨晚才开始发生,而在此之前它运行良好。这是堆栈跟踪:Feb25,201411:11:19AMorg.apache.catalina.core.ApplicationContextlogINFO:Markingservletcom.att.ucomm.admin.UCommAdminFunctionsasunavail

java - 从 Tomcat 中的 servlet 生成线程的推荐方法是什么

可能会重复!我正在使用Tomcat作为我的服务器,并且想知道在servlet中产生具有确定性结果的线程的最佳方法是什么。我正在从servlet操作运行一些长时间运行的更新,并希望完成请求并在后台进行更新。与其添加像RabbitMQ这样的消息中间件,我认为我可以生成一个可以在后台运行并在自己的时间完成的线程。我在其他SO线程中读到,服务器终止了服务器产生的线程,以便它能够很好地管理资源。在使用Tomcat时,是否有推荐的生成线程、后台作业的方法。我还将SpringMVC用于应用程序。 最佳答案 在Tomcat或Jetty等准系统ser

java - 如何在 servlet 过滤器中重定向?

我正在尝试找到一种方法将我的请求从过滤器重定向到登录页面,但我不知道如何从servlet重定向。我已经搜索过,但我发现的是sendRedirect()方法。我在过滤器中的响应对象上找不到此方法。原因是什么?我该如何解决这个问题? 最佳答案 在过滤器中,响应是ServletResponse而不是HttpServletResponse。因此对HttpServletResponse进行强制转换。HttpServletResponsehttpResponse=(HttpServletResponse)response;httpRespons

java - Servlet-3 Async Context,如何进行异步写入?

问题描述Servlet-3.0API允许分离请求/响应上下文并在稍后回复它。但是,如果我尝试写入大量数据,例如:AsyncContextac=getWaitingContext();ServletOutputStreamout=ac.getResponse().getOutputStream();out.print(some_big_data);out.flush()对于Tomcat7和Jetty8,它实际上可能会阻塞-而且它确实会阻塞在琐碎的测试用例中。教程建议创建一个线程池,该线程池将处理这样的设置-女巫通常与传统的10K架构相反。但是,如果我有10,000个打开的连接和一个线程池

java - 对 Java Servlet 进行单元测试

我想知道对servlet进行单元测试的最佳方法是什么。测试内部方法只要不引用servlet上下文就没有问题,但是测试doGet/doPost方法以及引用上下文或使用session参数的内部方法呢?有没有一种方法可以简单地使用JUnit等经典工具,或者最好使用TestNG?我需要嵌入tomcat服务器或类似的东西吗? 最佳答案 大多数时候,我通过“集成测试”而不是纯单元测试来测试Servlet和JSP。有大量适用于JUnit/TestNG的附加组件,包括:HttpUnit(最古老和最著名的,非常低的级别,根据您的需要可能是好是坏)Ht