我有一些UTF-8的问题。 我的客户端(以GWT实现)向我的servlet发出一个请求,在URL中有一些参数,如下所示: http://localhost:8080/servlet?param=value 当在servlet中检索URL时,我有一些UTF-8字符的问题。 我使用这个代码: protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String reqUrl = request.getRequestURL().toString(); String queryString = request.getQueryString(); System.out.println("Request: "+reqUrl + "?" + queryString); … 所以,如果我打电话给这个url: http://localhost:8080/servlet?param=così 结果是这样的: Request: http://localhost:8080/servlet?param=cos%C3%AC 我能做些什么来正确设置字符编码?
所以我试图抓住使用Java的请求对象的页面的当前url。 我一直在使用request.getRequestURI()来执行此操作,但是我注意到,当一个java类将我redirect到一个不同的页面时,servlet请求getRequestURI给出了这个地址,而不是在浏览器中input的原始URL它仍然在浏览器中显示。 例如:\ AdvancedSearch: getRequestURI()返回“\ subdir \ search \ search.jsp” 我正在寻找一种方法来抓住浏览器所看到的URL,而不是那个页面所知道的只是一个servlet包装器。
我试图报告从我的webapp返回的每个HTTP状态代码。 但是,状态码似乎不能通过ServletResponse访问,或者即使我将其转换为HttpServletResponse。 有没有办法在ServletFilter中获得这个值?
我想在Java 中超时一个HttpSession 。 我的容器是WebLogic。 目前,我们已经在web.xml文件中设置了会话超时,就像这样 <session-config> <session-timeout>15</session-timeout> </session-config> 现在,我被告知,这将在使用的第15分钟内终止会话(或者是所有的会话?),而不pipe他们的活动。 我想知道如果这种方法是正确的,或者我应该编程设置不活动的时间限制 session.setMaxInactiveInterval(15 * 60); //15 minutes 我不想在15分钟内放弃所有会议,只有那些在15分钟内不活动的会议。 这些方法是否相同? 我应该赞成web.xmlconfiguration?
我在Tomcat 7中有一个作为WAR文件部署的Web应用程序。该应用程序构build为一个多模块项目: 核心 – 打包成JAR,包含大部分的后端代码 core-api – 打包成JAR,包含面向核心的接口 webapp – 打包成WAR,包含前端代码并依赖于核心 客户扩展 – 可选模块,打包成JAR 通常,我们可以将我们的JSP文件放在webapp项目中,并相对于上下文来引用它们: /WEB-INF/jsp/someMagicalPage.jsp 问题在于我们如何处理特定于客户扩展项目的JSP文件,这些文件不应总是包含在WAR中。 不幸的是,我看不出JAR文件里面的JSP, 尝试classpath:jsp/customerMagicalPage.jsp由于使用了ServletContext.getResource() ,因此classpath:jsp/customerMagicalPage.jsp导致在JspServlet中找不到文件。 传统上,我们通过maven解开客户扩展JAR,findJSP,并在构build它时将它们放入WAR。 但是理想的情况是,你只需要在Tomcat的WAR文件中放入一个JAR文件,就可以发现这个扩展文件 – 除了JSP之外,其他的文件都可以使用。 有没有解决这个问题? 一个标准的方式,一个Tomcat特定的方式,一个黑客,或解决方法? 例如,我一直在考虑在应用程序启动时解压缩JSP …
我正在networking开发方面进行培训,并正在学习有关JSP和Servlet的知识 。 我有一些HttpSession知识 – 我在一些示例项目中使用过它。 在浏览器中,我看到了“删除cookies”的选项。 如果我删除了Cookie,它也会删除HttpSession 。 Cookie和会话是一样的吗? 他们之间有什么区别?
我正在做一个简单,非常轻量级的前端控制器。 我需要匹配请求path到不同的处理程序(动作),以便select正确的。 在我的本地机器HttpServletRequest.getPathInfo()和HttpServletRequest.getRequestURI()返回相同的结果。 但我不确定在生产环境中他们会返回什么。 那么,这些方法和我应该select什么有什么区别呢?
我正在开发一个servlet接收多个请求的多个文件的内容,我使用Apache公共的file upload库。 当我调用parseRequest(request); 方法servlet抛出以下exception: GRAVE: Servlet.service() for servlet DiffOntology threw exception java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest at org.apache.commons.fileupload.servlet.ServletRequestContext.getContentType(ServletRequestContext.java:73) at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:882) at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331) at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:349) at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126) at DiffOntology.doPost(DiffOntology.java:38) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) […]
我想创build一个Servletfilter,它将在处理完成之后读取Response的内容,并以XML或PDF或其他方式返回该信息。 但是我不确定如何从HttpServletResponse对象中获取任何信息。 我怎样才能得到这些信息?
我有这个代码: @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { logger.info("Filter start…"); HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse httpResponse = (HttpServletResponse) response; String ba = getBaId(getBody(httpRequest)); if (ba == null) { logger.error("Wrong XML"); httpResponse.setStatus(HttpServletResponse.SC_BAD_REQUEST); } else { if (!clients.containsKey(ba)) { clients.put(ba, 1); logger.info("Client map : init…"); } else { clients.put(ba, clients.get(ba).intValue() […]