Tag: servlets

如何让Tomcat停止缓存我的servlet响应?

我正在学习Servlets编程,在Ubuntu 8.10机器上使用Apache Tomcat 6,我正在运行一个非常烦人的问题 – 显然,与缓存有关。 这就是我正在做的:我编写一个servlet,将它放在一个漂亮的目录结构中,并使用Tomcat Web应用程序管理器进行部署。 它按预期工作。 然后我编辑servlet,重新编译并尝试再次访问它,但Tomcat仍然返回相同的旧版本。 重新加载应用程序甚至重新启动服务器不起作用。 唯一有效的是“取消部署”应用程序,然后再重新部署它。 每次我对代码做一些小改动时,我都必须这样做。 太糟糕了。 我确信有一种方法可以解决这个问题,但我无法在网络上的任何地方找到答案(我做了很多搜索)。 我真的很感激任何帮助。 谢谢!

HttpServletRequest getRemoteAddr()无法正常工作

根据我的理解,以下代码返回错误: HttpServletRequest httpRequest = (HttpServletRequest) request; String userIPAddress = httpRequest.getRemoteAddr(); // Actual // “0:0:0:0:0:0:0:1%0” // Expected // “0:0:0:0:0:0:0:1” 知道为什么%0有吗? 当我循环 InetAddress.getAllByName(“localhost”) 我得到以下内容: // [“192.168.100.1”, “127.0.0.1”, “0:0:0:0:0:0:1”] 如果getRemoteAddr()返回无效格式,或者我做错了什么,我将如何测试localhost? 谢谢!

如何在Jersey容器中配置欢迎文件(HTML / JSP)

我有一个Jersey RESTful Web服务项目。 我已经在web.xml中配置了Jersey容器,一切正常。 在同一个项目中,我引入了一个HTML页面并包含在以处理其他一些非REST请求。 但是当我访问URL时,不会显示欢迎文件。 在web.xml中评论Jersey容器配置并部署应用程序后,这次我可以访问欢迎文件。 我使用的是Tomcat 7,JDK 7,Jersey 2.2和Eclipse Juno。 Jersey配置后如何使欢迎文件正常工作? Jersey有没有限制,还是需要以不同的方式配置才能实现这一目的? 我的web.xml : My Service Jersey REST Service org.glassfish.jersey.servlet.ServletContainer jersey.config.server.provider.packages com.my.rest.service 1 Jersey REST Service /* index.html index.htm index.jsp default.html default.htm

何时使用doGet,doPost和服务

我想知道这些servlet方法。 我对这些方法有所了解 doPost对参数数量没有限制,而doGet有。 doGet比doPost更快。 doPost比doGet更安全。 我的问题是,因为这些方法采用相同的参数并完成我们实施的过程。 那么这些方法之间的major difference是什么,以及At which specific situation each of this method is used to process 。

检查JSP是否存在Cookie

我正在尝试使用表达式语言检查JSP页面上是否存在cookie。 我有一个名为persist的cookie,它被设置为空字符串或“已检查”。 如果想检查persist cookie是否存在。 我尝试过以下方法: 当persist cookie的值为空字符串时,以上两个语句都为true如果checked cookie的值,则为false。 如何区分具有空字符串的cookie作为其值,以及不存在的cookie。 (注意:我可以通过为cookie而不是空字符串分配非空值来轻松解决此问题。)

保留提交的JSP表单数据

我有一个Web表单(JSP),它将数据提交到托管在不同服务器上的不同应用程序。 提交表单数据后,该应用程序重定向回相同的JSP页面。 现在,我想保存输入的数据。 保留Web表单中提交的数据的不同方法有哪些。 我不想将数据存储在数据库或任何文件中。 PS:我想在请求再次重定向到同一个JSP页面时保留提交的表单数据。 因此,用户无需重新输入数据。 比如,数据可以存储在Session或Request等中。

在java servlet中包含javascript的最佳方式

我实际上阅读了一个关于servlet的教程,我看到了两种不同的方法来在servlet中包含javascript。 out.println(“”); RequestDispatcher dispatcher = request.getRequestDispatcher( “/WEB-INF/javascript/functions.js”); dispatcher.include(request, response); out.println(“Client Forms”); 和另一个可能性: out.println(“”); out.println(“”); … 使用调度员或直接包含有什么区别? 什么是更好的解决方案? thx为您的建议..

如何在Java HttpServletRequest中获取客户端IP地址

我正在尝试开发一个Java Web应用程序(Servlet),我需要获取客户端的IP地址。 请不要将此视为重复的问题,因为我尝试了stackoverflow中可用的所有可能答案。 以下是我的代码到目前为止: 1) String ipAddress = request.getRemoteAddr(); 在这种情况下,我得到的是“默认网关地址”(147.120.1.5)。 不是我的机器IP地址(174.120.100.17)。 2) String ipAddress = request.getHeader(“X-FORWARDED-FOR”); if (ipAddress == null) { ipAddress = request.getRemoteAddr(); } 在这种情况下,我得到的是“默认网关地址”(147.120.1.5)。 不是我的机器IP地址(174.120.100.17)。 3) InetAddress IP=InetAddress.getLocalHost(); System.out.println(IP.getHostAddress()); 在这种情况下,我得到了服务器IP地址(147.120.20.1)。 我在147.120.100.17中的IP地址。现在我不知道如何获取真正的客户端IP地址。 请回答。 非常感谢你。

将发布数据从一个java servlet写入另一个

我正在尝试编写一个servlet,它将通过POST将XML文件(xml格式化的字符串)发送到另一个servlet。 (非必要的xml生成代码替换为“Hello there”) StringBuilder sb= new StringBuilder(); sb.append(“Hello there”); URL url = new URL(“theservlet’s URL”); HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.setRequestMethod(“POST”); connection.setRequestProperty(“Content-Length”, “” + sb.length()); OutputStreamWriter outputWriter = new OutputStreamWriter(connection.getOutputStream()); outputWriter.write(sb.toString()); outputWriter.flush(); outputWriter.close(); 这导致服务器错误,并且永远不会调用第二个servlet。

处理必须子类化的单身人士

在问题中什么是在Java中实现单例模式的有效方法? 最赞成的回答是,使用Enum实现单例。 这很好,我理解论证,分别是语言优势。 但是,我有一组我定义单例但需要扩展其他类的类,这对于枚举方法是不可能的, 因为枚举不能是子类 。 约书亚布洛赫在他的幻灯片中说: 但缺少一件事 – 你无法扩展枚举类型 在大多数情况下,你不应该 一个引人注目的用例操作代码 在大多数情况下你不应该: 有人可以详细说明吗? 我已经实现了几个servlet并扩展了HttpServlet ,为什么这些不应该是单例? 我只想在我的应用程序中使用它们的一个实例。