草庐IT

servlets

全部标签

java - 服务器创建的实例什么时候死?

以下程序:publicclassSimpleCounterextendsHttpServlet{intcounter=0;@OverrideprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/plain");PrintWriterwriter=response.getWriter();counter++;writer.println("accessed"+count

java - response.flushBuffer() 不工作

我正在尝试实现一个用于流式传输大对象的servlet:oracle.sql.BLOBblob=rs.getBLOB('obj');InputStreamin=blob.getBinaryStream();intbufferSize=1024;byte[]buffer=newbyte[bufferSize];ServletOutputStreamout=response.getOutputStream();intcounter=0while((length=in.read(buffer))!=-1){out.write(buffer,0,length);counter++;if(coun

java - 使网站的欢迎页面成为一个servlet

我可以将网站的欢迎文件做成一个servlet吗?如果是,怎么办?我正在尝试类似的东西:FilterForwarded部署时我没有看到任何错误,但是当我尝试打开网站abc.com时,我从浏览器收到一条消息,提示无法连接到该网站。为什么会这样?我想当任何人访问该网站时,我应该能够存储客户端的公共(public)IP。为此,我编写了一个过滤器,在获取IP后将其传递给servlet(从那里我可以更新日志)。存储IP后,客户端会自动重定向到index.jsp。有什么办法可以实现吗?编辑:FilterForwarded/FilterForwarded这是在web.xml中定义的映射。当我在欢迎文件

java - 写入响应正文后在 HttpServletResponse 上设置 header

我发现在开始将响应主体写入输出缓冲区后不可能向HttpServletResponse添加更多header的困难方法,我猜在某个随机宇宙中可能即使一切仍然只是缓冲在内存中,也有意义。现在的问题是:是否有一些技巧可以以某种方式规避这种情况?显然,由于函数resetBuffer()可用,它允许在不清除header的情况下清除内容主体,因此必须有某种方式让HttpServletResponse对象返回到可以写入更多header的状态。例如,是否有一种方法可以读取内容主体,使用resetBuffer()清除它,设置更多header,然后恢复内容主体?旁白:我想要这样做的原因是我可以在我的serv

java - 与缓存相关的 HTTP header 在 App Engine 上的 Servlet 响应中被覆盖

我在AppEngine上有一个服务于图像的servlet。servlet正确设置HTTPheader值以指示应缓存图像。但是AppEngine覆盖了这些header,导致图像未被缓存。请注意,相同的代码以前可以工作,但现在有一段时间不工作了。App引擎文档指出,如果Cache-Control、Expires和Varyheader由servlet设置,它们将保持不变:https://developers.google.com/appengine/docs/java/runtime#Responses这是我的示例代码:response.setContentType("image/jpeg"

java - 在 web.xml 中添加条件

这是我的web.xml的一部分500/index有什么方法可以告诉处于开发模式的web.xml文件:/displayException对于上述locationproperty?或通过代码添加条件的任何方式?尝试这样做的目的是:在开发模式下我想在页面中看到异常,在实时模式下我想在发生异常时将他重定向到默认页面。 最佳答案 您不能在web.xml级别执行此操作。如果web.xml尊重系统属性,这可能是一个很酷的功能,但事实并非如此。所以您唯一的方法就是在代码中执行此操作。幸运的是,您有多种可能性。您可以将错误URL映射到JSP,在JSP

java - 如何在 Servlet 中调用 java Rest WebService

我有一个javaRestWebServiceURLhttp://localhost:8080/WebServiceEx/rest/hello/dgdg当我执行URL时,WebService方法返回一个字符串我的要求是在Servlet中调用上述WebServiceURL,有人可以帮忙吗?Servlet代码:publicClassStoreServletextendsHttpServlet{protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsIOException,ServletException{

java - Spring 安全抛出 javax.servlet.ServletException : Could not resolve view with name 'j_spring_security_check'

我正在尝试将具有自定义登录页面和数据库访问的Springsecurity添加到我的SpringMVC应用程序中。似乎我的映射是错误的,因为它无法映射j_spring_security_check。为了解决这个问题,我查看了以下页面1、2、3但仍无法解决问题。如果您没有太多时间,请阅读下面的第2部分,这是问题的编辑部分开始的地方。否则,请阅读第1部分和第2部分。第1部分我还在我的web.xml文件中添加了以下行,但应用程序返回以下异常。springSecurityFilterChainorg.springframework.web.filter.DelegatingFilterProxy

java - 无法在 web.xml 中解析 Servlet

出于某种原因,idea点亮了调度程序servlet,当我启动tomcat时出现404错误。我正在使用springmvc和Maven,这里是web.xml的图片感谢每一个答案=)网络应用程序/web.xmldispatcherorg.springframework.web.servlet.DispatcherServletdispatcher/ 最佳答案 发现问题,使用编译版本maven-compiler-plugin1.8的tomcat7-maven-plugin,改成1.7后问题消失了。但是有没有类似tomcat7-maven-p

java - 使用 Jersey 异步流式传输大量响应

我想允许客户端(包括非常慢的客户端)从JAX-RS(Jersey)网络服务下载大文件,但我被卡住了。JAX-RS中的异步功能似乎不支持这一点。AsyncResponse解决了您必须等待资源在服务器端变得可用时的问题,但您只能调用AsyncResponse.resume(Object)只有一次。之后,响应正常处理。慢速或恶意客户端将阻塞工作线程,直到所有字节都传输完毕。这里没有异步IO。jersey中的ChunkedOutput将block存储在无限制的内存队列中,并且不提供任何公共(public)接口(interface)来检查该队列的大小。它专为缓慢的小块流而设计。足够慢的客户端最终