Tag: servlets

在Tomcat上处理URI中的字符编码

在我试图帮助的网站上,用户可以在浏览器中输入一个URL,如下面的汉字, http://localhost:8080?a=测试 在服务器上,我们得到 GET /a=%E6%B5%8B%E8%AF%95 HTTP/1.1 如您所见,它是UTF-8编码,然后是URL编码。 我们可以通过在Tomcat中将编码设置为UTF-8来正确处理。 但是,有时我们在某些浏览器上获得Latin1编码, http://localhost:8080?a=ß 变成 GET /a=%DF HTTP/1.1 无论如何在Tomcat中正确处理这个问题? 看起来服务器必须进行一些智能猜测。 我们不希望100%正确处理Latin1,但是通过假设一切都是UTF-8,任何东西都比我们现在做的更好。 服务器是Tomcat 5.5。 支持的浏览器是iPhone 6 +,Firefox 2+和iPhone上的Safari。

从servlet访问JSF会话作用域bean,由嵌入在JSF webapp中的applet调用

我需要从servlet访问会话范围的bean。 我已经试过了 UserBean userBean = (UserBean) request.getSession().getAttribute(“userBean”); 如本文所述。 但是我只得到null作为结果,尽管UserBean的实例是alreay instatiated。 这些是我用于userBean的注释/导入: import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean @SessionScoped public class UserBean implements Serializable{ … } 一些背景为什么我无法摆脱servlet:我的jsf页面中有一个文件上传小程序。 这个小程序需要一个地址,它可以发送它的POST请求。 (我无法编辑此post请求以添加更多字段或其他内容)。 然后我的servlet的post方法存储文件。 托管bean无法完成此作业,因为必须使用@MultiPartConfig注释servlet,并且我无法将此批注添加到jsf托管bean。

如何在Java servlet容器上指定Http Request timeout参数

我试图了解在哪里可以为到达我的servlet(或我所有的servlet)的所有请求配置请求超时? 那是我认为的容器财产吗? 另外,这对不同的浏览器有何影响? 它们都符合容器规定的参数吗? 或者请求超时时间甚至不是我可以控制的,每个浏览器自己决定这个? (只是要清楚我不是在谈论会话超时)

如何为单个浏览器选项卡/窗口存储状态?

我正在开发一个单页jQuery和Backbone.js网络应用程序。 后端是JBoss 6应用服务器。 到目前为止,我们有以下结构: 只有一个servlet(前端控制器)。 JavaScript客户端的每个请求都会在此处进行。 在servlet中 – 在某个JS客户端的第一个请求 – 我看一下有状态会话bean。 对于此客户端的下一个请求,我将查找结果存储在HTTP会话容器中。 所以每个JS客户端都只有一个有状态会话bean。 此连接由会话cookie保留。 现在我有一个额外的要求: 当用户有两个浏览器选项卡(在一个浏览器中)时,他们应该在每个浏览器选项卡中有两个独立的Web应用程序实例。 因此,我遇到会话cookie的问题,因为此会话cookie适用于所有浏览器选项卡。 我必须改变结构,以便: servlet必须为某个JS客户端的第一个请求生成一个新的会话ID。 该会话ID被传达给客户端。 对于后端的每个POST,JS客户端必须发送此会话ID。 我的问题是: 到目前为止,我在HTTP Session对象中保存了查找结果,我不必考虑生成会话ID。 但现在我必须把它存放在其他地方,在哪里? 有没有人体验过这种环境,可以帮助我吗? 更新: 感谢BalusC这个非常有趣的方法。 当我理解你的时候,这意味着: 一个浏览器的选项卡的所有单个JS客户端共享一个HTTP会话对象。 在此HTTP会话对象中,每个选项卡都有自己的入口点。 听起来真的很棒。 所以我仍然可以使用整个HTTP会话基础设施,而不必重新发明轮子。

如何将String值从一个servlet传递到另一个servlet?

我有一个jsp,我在servlet1中使用’request.getParameter’获取字符串值我想链接servlet1和servlet2并将我在servlet1中获得的字符串值发送到servlet2。 请帮忙。 提前谢谢了。

JSP以编程方式呈现

我需要以编程方式呈现JSP页面。 据我所知,JSP应该有一些编译器。 问题是我可以在没有JspServlet和其他人的情况下直接使用这个编译器吗? 我需要的只是文档如何使用JSP编译器(例如,Jasper)。 我想,一些额外的信息可以澄清情况。 我不能使用标准的JspServlet。 我希望在编译之前以某种方式更改源JSP(将两个JSP合并到一起),因此我需要一种方法直接使用JSP编译器从InputStream(或Reader)编译JSP结果。 两个JSP的合并是布局要求。 你可以问:“但为什么这个人不使用SiteMesh或类似的东西?”。 其中一个JSP页面不是静态的。 它由用户提供并存储在数据库中。 我们清理和validation这个JSP布局(用户只能使用标签的子集,并且所有这些标签都不是标准的,而是专门为它们创建的),缓存它们等等。 但是现在我们需要一种方法来使用这些JSP页面(存储在内存中)作为用户请求的所有JSP页面的布局。

Tomcat:在数据库中存储会话

我正在寻找一种避免内存会话复制/群集的方法,并将会话存储在数据库中。 此时使用Tomcat的JDBCStore是无用的,因为它只在数据库中存储非活动会话以保存服务器内存。 有什么建议么? 非常感谢Fabian

Java servlet如何禁用页面缓存

如何禁用缓存? 应该做什么标题设置? 你能提供一个代码片段吗?

在Filter bean类中使用一些bean?

在我的filterbean类中,我添加了一些bean依赖项(使用@Autowired注释)。 但是在doFilter()方法中,我的所有依赖bean都是null … public class FacebookOAuth implements Filter { @Autowired private BusinessLogger logger; @Autowired private IUserSessionInfo userSessionInfo; @Autowired private FacebookOAuthHelper oAuthHelper; public void init(FilterConfig fc) throws ServletException { // Nothing to do } public void doFilter(ServletRequest sr, ServletResponse sr1, FilterChain fc) throws IOException, ServletException { // HttpServletRequest req = (HttpServletRequest)sr; HttpServletResponse res = (HttpServletResponse) sr1; […]

request.getParameter()在java servlet中没有正确显示字符编码

我在java servlet文件中遇到UTF-8的问题。 当我在URL中获取参数值时,我遇到了UTF-8字符的问题。 它无法正确显示日文字符。 Jsp头已经有了 我在连接器中将URIEncoding设置添加到server.xml中的UTF-8。 我在jsp中编写了以下代码。 <a href="javascript:showModalWindow('PopUpFile!init.action?=’,”,940,650);”> function showModalWindow(x_URL, x_ARG, x_WIDTH, x_HEIGHT) { var x_OPT = “dialogHeight: ” + x_HEIGHT + “px; ” + “dialogWidth: ” + x_WIDTH + “px; ” + “edge: Raised; center: Yes; resizable: Yes; status: Yes;”; x_URL += “&name=”+document.getElementById(“txt_name”).value; var retValue = window.showModalDialog(x_URL, x_ARG, x_OPT); if (retValue != null) […]