Tag: servlets

为什么POST不尊重charset,但是AJAX请求呢? tomcat 6

我有一个基于tomcat的应用程序,需要提交一个能够处理utf-8字符的表单。 通过ajax提交时,数据从utf-8中的getParameter()正确返回。 通过表单发布提交时,数据将从iso-8859-1中的getParameter()返回。 我使用了fiddler,并确定了请求的唯一区别,就是在ajax调用中将charset = utf-8附加到Content-Type头的末尾(正如预期的那样,因为我明确地发送了内容类型)。 来自ajax的ContentType:“application / x-www-form-urlencoded; charset = utf-8” 来自表单的ContentType:“application / x-www-form-urlencoded” 我有以下设置: ajax post(正确输出chars): $.ajax( { type : “POST”, url : “blah”, async : false, contentType: “application/x-www-form-urlencoded; charset=utf-8”, data : data, success : function(data) { } }); 表格post(在iso中输出字符) xml声明: 文档类型: 元标记: jvm参数: -Dfile.encoding=UTF-8 我也尝试过使用request.setCharacterEncoding(“UTF-8”); 但似乎tomcat只是忽略了它。 我没有使用RequestDumper阀门。 根据我的阅读,POST数据编码主要取决于表单所在的页面编码。 据我所知,我的页面在utf-8中正确编码。 此页面中的示例JSP正常工作。 它只使用setCharacterEncoding(“UTF-8”); 并回复您发布的数据。 […]

如何从http或https请求获取带端口的主机名

我在jboss容器中部署了两个应用程序(相同的unix框)。 如果我从app1收到请求,我需要为app2构建相应的请求。 例如: 如果app1请求是: http : //example.com/context? param1 = 123 然后我需要提取“ http://example.com/ ”,以便我可以构建第二个应用程序的请求。 我试过用: HttpServletRequest.getServerName() & HttpServletRequest.getServerPort() & \ HttpServletRequest.getHeader(“host”) 方法,但请求可能是http或https。 如果还有其他更好的方法,请告诉我。 谢谢!

如何在用户注册时发送特定电子邮件ID的自动回复?

我在JSP中创建了一个注册表单,其中包含电子邮件地址的输入字段。 当用户提交表单时,用户必须在他/她的电子邮件地址上获得自动回复。 我怎样才能做到这一点?

如何使用JSESSIONID手动加载Java会话?

我有一个处理多部分表单post的servlet。 post实际上是由嵌入在页面中的Flash文件上传组件制作的。 在某些浏览器中,Flash生成的POST不包含JSESSIONID,这使得我无法在post期间从会话中加载某些信息。 Flash上​​传组件在特殊表单字段中包含cookie和会话信息。 使用此表单字段,我实际上可以检索JSESSIONID值。 问题是,我不知道如何使用此JSESSIONID值手动加载该特定会话。 编辑 –基于ChssPly76的解决方案,我创建了以下HttpSessionListener实现: @Override public void sessionCreated(final HttpSessionEvent se) { final HttpSession session = se.getSession(); final ServletContext context = session.getServletContext(); context.setAttribute(session.getId(), session); } @Override public void sessionDestroyed(final HttpSessionEvent se) { final HttpSession session = se.getSession(); final ServletContext context = session.getServletContext(); context.removeAttribute(session.getId()); } 这会将所有会话添加到ServletContext,作为由其唯一ID映射的属性。 我可以在上下文中放置一个会话映射,但它似乎是多余的。 请发表有关此决定的任何想法。 接下来,我将以下方法添加到我的servlet以通过id解析会话: private HttpSession getSession(final String […]

轻量级servlet引擎,用于通过IIS提供java应用程序

我有一个旧的遗留Java Web应用程序,我想在与我的asp.net-applications(在IIS 7上运行)相同的服务器上部署。 我需要在端口80上运行所有应用程序,因此我不能在不同的端口上安装两个Web服务器。 java应用程序非常简单,只有几个服务器小程序(没有JSP),其function非常接近“Hello World”。 所以我希望servlet引擎尽可能轻量级。 我认为Tomcat对此有点矫枉过正。 这样的产品是存在还是我坚持使用Tomcat?

java.lang.ClassNotFoundException:org.apache.commons.fileupload.FileItemFactory

我试图通过apache tomcat 8.0.14编译UploadServlet servlet。 我的web.xml很好, UploadServlet.java已经正确编译但是当尝试运行时我得到以下错误 错误 HTTP Status 500 – Error instantiating servlet class UploadServlet exception javax.servlet.ServletException: Error instantiating servlet class UploadServlet root cause java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory root cause java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory UploadServlet.java import java.io.*; import java.util.*; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import […]

会话中的Spring存储对象

我想用Spring实现一个购物车,所以我需要在会话中保存一个对象Cart (它有像products,paymentType和deliveryType这样的属性)。 我试图用bean创建它,并将属性“scope”设置为“session”,但它只是不起作用,我应该在我的控制器或Cart类中使用一些额外的注释吗? 任何使用示例都非常有用:-)在此先感谢。

如何在一个Spring应用程序中的web.xml中注册多个servlet

我想在我的Spring web.xml中定义两个servlet – 一个用于应用程序html / jsp页面,另一个用于将由外部应用程序调用的Web服务。 这是web.xml: myservlet org.springframework.web.servlet.DispatcherServlet 1 myservlet *.htm contextConfigLocation WEB-INF/user-service-servlet.xml user-webservice org.apache.cxf.transport.servlet.CXFServlet 1 user-webservice /UserService/* 如果我有myservlet自己在文件中使用DispatcherServlet,它工作正常。 如果我的user-webservice带有context-param,那就是它的配置文件(user-service-servlet.xml),它可以正常工作。 但是,如果我同时在文件中,则myservlet不起作用,因为myservlet-servlet.xml文件未自动加载。 如果我删除了context-param,那么myservlet可以工作,但是user-webservice不能正常工作,因为它没有加载配置文件(user-service-servlet.xml)。 如何定义两个servlet并加载它们的两个配置文件?

是否可以在Prepared Statements或QueryRunner.update()中提供表名或列名的参数?

删除? 在哪里? =? 是否可以为所有这些参数提供参数? 似乎如果我不提供字符串,我会收到错误。 例如,它似乎只有我有类似的东西: 从非营利组织WHERE nonpid =? 它只需要这样的参数。

从Java应用程序调用Servlet

我想从Java应用程序调用Servlet。 问题是,调用似乎没有到达Servlet。 我没有收到任何错误,但是没有到达Servlet中的第一个输出“doPost”。 如果我在网络浏览器中打开URL,我当然得到了GET不支持的错误等,但至少我看到,有些事情发生了。 我使用以下代码(ActionPackage类只包含参数Vector并且是Serializable): Java应用程序: ActionPackage p = new ActionPackage(); p.addParameter(“TEST”, “VALUE”); System.out.println(p); URL gwtServlet = null; try { gwtServlet = new URL(“http://localhost:8888/app/PushServlet”); HttpURLConnection servletConnection = (HttpURLConnection) gwtServlet.openConnection(); servletConnection.setRequestMethod(“POST”); servletConnection.setDoOutput(true); ObjectOutputStream objOut = new ObjectOutputStream(servletConnection.getOutputStream()); objOut.writeObject(p); objOut.flush(); objOut.close(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { […]