Tag: servlet

Servlet会话行为和Session.invalidate

假设我有一个web应用程序,其中包含在web.xml中定义的servlet。 然后我在Tomcat上部署它。 然后我打开浏览器并转到这个servlet的链接,调用它。 然后我关闭浏览器窗口。 会话的行为方式 ? 在这种情况下如何创建,销毁? 如果这个servlet与所有的web应用程序“分离”,并且仅使用post&get获取参数,那么它根本不需要Session,如果在doGet(),doPost()的末尾使用Session.invalidate?

Java会话filter与用户和管理员登录

在我的Web应用程序中,我有2个主要部分 用户 管理员 我正在使用java会话filter来检查用户会话并允许访问网站的特定部分。 因此,用户只能访问用户页面部分,管理员可以访问管理部分。 用户的会话filter已经实现,并且工作正常。 它检查用户(来自数据库的用户名和密码 – mysql),并允许访问受限制的子文件夹,其中我有xhtml页面。 如果我希望filter检查管理员部分身份validation(管理员用户名和密码存储在数据库中)并允许他们根据用户级别进行访问。 我需要再创建1个filter – 管理员吗? 目前这是我对用户的实现: package com.shadibandhan.ControllerLayer; import java.io.IOException; import java.util.ArrayList; import java.util.StringTokenizer; import javax.servlet.*; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.servlet.http.Cookie; /** * * @author MUDASSIR */ public class SessionFilter implements Filter { private ArrayList urlList; private String toGoTo = null; private […]

如何在未使用Servlet记录用户时重定向到索引页面?

如果用户未使用servlet登录,如何重定向到登录页面。 我有一个登录页用户使用该登录页面并进入主页,导航用户点击退出后只需点击浏览器中的后退按钮现在页面转到以前访问过的页面,如何在使用时将用户重定向到登录页面servlet的? 感谢您的帮助和持续的支持

尝试删除文件时AccessControlException

我们有一个使用log4j进行日志记录的java Web服务应用程序。 当log4j尝试删除其滚动日志文件时,会抛出exception Exception:java.security.AccessControlException: access denied (java.io.FilePermission /var/opt/SUNWappserver/domains/domain1/ applications/j2ee-modules/ourwebservice/WEB-INF/logs/IMWrapper.log.10 delete) 当我们在目录中执行ls ,服务帐户有权读取和写入文件和目录。 从一些初始谷歌搜索看来,我们可能不得不更改security.policy文件以允许服务删除文件。 有什么建议么?

是否有任何方法可以在servlet中获取jetty上的所有有效会话密钥值?

我有一个带有两个不同servlet的jetty容器,然后调用A和B.在特殊情况下,qr代码代码出现在servlet A中(用户已经登录并正在使用他的桌面)和用户使用他的移动设备阅读此qr代码并将其重定向到其移动设备上的servlet B. 这里的问题是我无法保持他的会话。 QR码带来用户会话密钥,但我无法validation此会话是否有效。 我想知道是否有任何特殊的方法来请求jetty上的有效会话密钥,因为两个servlet都在同一个服务器上。

Applet – Servlet通信

我已经放弃了我之前的尝试,即使用户和网页已经表明可以直接与数据库进行通信。 我现在试图让我的applet传递在文本字段中输入的信息(字符串和布尔格式)或由复选框指示,并将其提供给servlet,然后servlet将其适当地存储在数据库中。 我已经建立了applet前端 – GUI – 并且还构建了servlet – 数据库连接。 唯一的问题是两者之间的联系,applet和servlet。 如何将String数据从applet传递给servlet? 谢谢,约瑟夫G.

如何检查sessionId在servlet中是否有效(java)

我在我的网络应用程序中维护了一个sessionid(s)和HttpSession对象的映射。 我使用HttpSessionListener来填充或从地图中删除会话。 当我的Web服务器崩溃并关闭并重新启动时,我需要一种方法来检查提交的sessionid是否有效。 显然,当应用程序重新联机时,Map是空的,因此所有会话ID都无效,但我只是想要一些方法来检查传入的sessionid,如果可能的话…… 谢谢

是否有一种简单的方法可以在不使用额外库的情况下解析Java中的JSON?

我是JavaScript和JSON的新手。 我正在编写一个需要将JSON解析为Java对象的Java servlet,但诀窍是我不能使用外部库,如json-simple或gson。 所以我已经将JavaScript文件的内容保存在名为“contents”的字符串中…… contents = “myVar = ” + contents + “;”; BufferedWriter bWriter = new BufferedWriter(new OutputStreamWriter(response.getOutputStream(), “UTF-8”)); ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName(“JavaScript”); Object returnVal = engine.eval(contents); NativeObject a = (sun.org.mozilla.javascript.internal.NativeObject) engine.get(“myVar”); Object[] ids = a.getAllIds(); for (Object id : ids) { String newId = (String) id; bWriter.write(“\n” + […]

异步servlet不是异步操作

我有一个servlet接受请求并写一个长响应。 响应处于循环中,该循环使用Thread.sleep(1000)来模拟长时间运行的操作。 我试图在这里设置一个异步请求,如代码所示。 但它没有用。 当我向servlet调用多个请求时,它们都是连续执行,而不是同时执行。 我究竟做错了什么? 我认为servlet应该是线程化的 – 每个服务器请求都会导致容器执行一个新线程(或者从池中重用一个)。 package test; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.AsyncContext; import javax.servlet.annotation.WebServlet; @WebServlet(urlPatterns={“/test”}, asyncSupported=true) public class TestServ extends HttpServlet { @Override public void doGet(HttpServletRequest rq, HttpServletResponse rs){ rs.setContentType(“text/plain”); rs.setHeader(“Access-Control-Allow-Origin”, “*”); AsyncContext asy = rq.startAsync(rq, rs); asy.start(new Client(asy)); } @Override public […]

多个实例时Servlet同步

我已经读过servlet中的代码可以与synchronized块同步。 但是,我还读到虽然servlet容器通常只有一个servlet实例,但它可以保留一个实例池。 当然这意味着同步块不能保证工作,因为您不知道请求线程将选择哪个实例?