【问题标题】:Display message from servlet filter显示来自 servlet 过滤器的消息
【发布时间】:2013-01-11 13:41:39
【问题描述】:

我有一个 servlet 过滤器,它检查附加的文件名,在我的 servlet 过滤器中,我得到了我验证它的文件名,但是我无法向用户显示消息,请有人帮我解决这个问题。 谢谢你:)

下面是doFilter()

HttpServletRequest request = (HttpServletRequest) req;
String name=request.request.getParameter("filename");
if(name.contains(".bat"))
{
    System.out.println("You cannot attach files with .bat extension");
}
chain.doFilter(req, res);

【问题讨论】:

  • System.out 是后端/控制台输出,您的prinln 末尾还有额外的“)”,这可能是为什么没有显示在您的控制台上
  • 抱歉,这是一个输入错误...我在控制台中收到消息,我想将其显示给用户
  • 为什么是 request.resquest.getParameter()?

标签: java servlet-filters


【解决方案1】:

System.out是后端(服务器端)的输出流,如果你想将消息发送到最终用户可以看到的前端,你需要将消息写入ServletResponse,即res。例如:res.getWriter().println("You cannot attach files with .bat extension")

【讨论】:

  • 你好,谢谢,你能举个例子吗?
  • 我收到一个错误...这里是日志 '2013-01-11 19:26:24,078 http-8081-6 错误 [500ErrorPage.jsp] 500 页 getWriter() 中捕获的异常已为此响应调用 java.lang.IllegalStateException: getWriter() 已为此响应调用'
  • @Mizan 在致电res.getWriter 之前尝试res.reset()。这可能不是最好的方法,但我猜你的程序只是一个练习。现实世界的项目不会如此原始地处理流。
猜你喜欢
  • 2018-04-14
  • 1970-01-01
  • 2012-03-04
  • 2015-09-12
  • 1970-01-01
  • 2016-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多