Tag: servlets

使用ServletOutputStream在Java servlet中编写非常大的文件,而不存在内存问题

我正在使用IBM Websphere Application Server v6和Java 1.4,并试图将大型CSV文件写入ServletOutputStream以供用户下载。 目前文件从50-750MB不等。 较小的文件不会造成太多的问题,但是对于较大的文件,它看起来正在写入堆中,然后导致出现OutOfMemory错误并closures整个服务器。 这些文件只能通过HTTPS传递给已通过身份validation的用户,这就是为什么我通过Servlet服务他们,而不是将他们粘在Apache中。 我使用的代码是(在这个附近删除了一些绒毛): resp.setHeader("Content-length", "" + fileLength); resp.setContentType("application/vnd.ms-excel"); resp.setHeader("Content-Disposition","attachment; filename=\"export.csv\""); FileInputStream inputStream = null; try { inputStream = new FileInputStream(path); byte[] buffer = new byte[1024]; int bytesRead = 0; do { bytesRead = inputStream.read(buffer, offset, buffer.length); resp.getOutputStream().write(buffer, 0, bytesRead); } while (bytesRead == buffer.length); resp.getOutputStream().flush(); } finally { […]

Servlet 3.0:@WebServletContextListener在哪里?

我正在尝试引用@WebServletContextListener的Servlet 3.0 教程 。 但是,我无法在我的javaee-web-api-6.0.jar依赖(我正在使用maven)中find这样的注释。 那么,@ @WebServletContextListener在哪里呢?

SSL也encryptioncookie吗?

SO的评论并没有明确地回答这个问题。 这可能是暗示的,但我想明确地logging下来。 如果SSL处于活动状态,它将encryptionHTTP标头数据,如“set-cookie”? 我知道“setSecure”只在HTTPS处于活动状态时才传输cookie,但如果SSL处于活动状态,我想确认是否所有标题数据在默认情况下都被encryption,而不需要使用“setSecure”。

如何将servlet api添加到我的pom.xml中

如何将servlet API添加到我的项目的pom.xml中 mvnrepository.com有很多servlet API和类似命名的项目,我不知道哪个是正确的。 或者都是好的?

如何分配线程来处理Servlet请求?

有人可以请解释什么是每个请求的线程和每个连接线程? servlet的工作模式是什么? 如何分配线程来处理HTTP请求? 它是线程/请求还是连接? 假设我想要在Servlet的doGet()方法中asynchronous执行耗时的任务,我使用Java执行程序启动一个新的线程,以便在一个单独的线程中完成冗长的计算,并立即发送响应。 现在是否确保我已经释放了处理我的HttpServletRequest的线程,还是仍在使用,因为子线程仍在运行?

getDispatcherType()是未定义的typesHttpServletRequest

我已经将一个JavadynamicWeb项目导入Eclipse IDE(在Eclipse IDE中实现并正确工作)。 我得到一个“ getDispatcherType()未定义的typesHttpServletRequest ”错误,同时运行该项目。 我已经按照结构将每个文件复制到IDE中,并完成了工作。 现在我只想知道当我导入项目时为什么会出现这个错误。 有没有人遇到同样的问题? 请让我知道我可能犯了什么错误。

如何正确解码传递给servlet的unicode参数

假设我有: <a href="http://www.yahoo.com/" target="_yahoo" title="Yahoo!™" onclick="return gateway(this);">Yahoo!</a> <script type="text/javascript"> function gateway(lnk) { window.open(SERVLET + '?external_link=' + encodeURIComponent(lnk.href) + '&external_target=' + encodeURIComponent(lnk.target) + '&external_title=' + encodeURIComponent(lnk.title)); return false; } </script> 我已经确认external_title被编码为Yahoo!%E2%84%A2并传递给SERVLET 。 如果在SERVLET我做: Writer writer = response.getWriter(); writer.write(request.getParameter("external_title")); 我在浏览器中看到雅虎! 如果手动将浏览器字符编码切换为UTF-8,则会更改为Yahoo! TM (这是我想要的)。 所以我想我发送到浏览器的编码是错误的(这是Content-type: text/html; charset=ISO-8859-1 )。 我将SERVLET改为: response.setContentType("text/html; charset=utf-8"); Writer writer = response.getWriter(); writer.write(request.getParameter("external_title")); 现在浏览器的字符编码是UTF-8,但输出的是Yahoo!,我无法让浏览器显示正确的字符。 我的问题是:有Content-type和/或new […]

javax.servlet.jsp.PageContext无法parsing为types

我在我的jsp页面看到下面的错误 – javax.servlet.jsp.PageContext cannot be resolved to a type javax.servlet.jsp.JspException cannot be resolved to a type 我已经看到了这个post,并尝试了一些build议的东西。 BalusC提供了很好的input–JSTL1.2和Standard.jar不能一起使用。 我做了这个,并且解决了这个问题 – 但是它正在重现。 我不确定是否有更多的瓶子碰撞。 我已经将所有的jar定义为Maven中的依赖项。 下面是我指定的pom.xml的依赖关系 – <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.38</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> […]

你什么时候使用JSP和什么时候使用Servlet?

我有一个应用程序将客户发送到另一个站点来处理付款。 客户之外的其他站点在我们的服务器上调用一个页面,让我们知道付款的状态。 被叫页面检查支付应用程序提供的参数,并检查交易是否为我们所知。 然后它更新数据库以反映状态。 这一切都完成,没有任何与客户的互动。 我亲自select将这个function作为一个JSP来实现,因为在文件系统中删除一个文件要比编译和打包该文件更容易,然后将条目添加到configuration文件中。 考虑到页面的function,我会假设一个servlet将是首选的选项。 问题是: 我的推定是否正确? 有一个真正的理由使用一个JSP的servlet? 这些原因是什么?

什么是web.xml中的url模式以及如何configurationservlet

我已经为我的应用程序手动configuration了web.xml 。 现在,我正在运行我的应用程序时遇到问题。 我试图从我的jsp页面访问我的servlet 。 但是,由于page not found ,导致错误。 这些servlet放在文件夹位置下面 <application folder>/WEB-INF/classes/<package> 那么, url-pattern和servlet-mapping的条目应该是什么。 所以, servlet可以通过URL访问。