Tag: servlet

用于防止滥用的Servletfilter? (DoS,垃圾邮件等)

我正在寻找一个servletfilter库,帮助我保护我们的Web服务免受未经授权的使用和DDoS。 我们为我们的Web服务提供了“授权客户”,因此理想情况下,filter可以帮助检测未经授权或行为不当的客户端,或者使用同一帐户检测多个人。 我们还需要一种方法来防止各种服务的DoS,因为我们有一个开放帐户策略 – 限制用户同时连接的数量等。 我们已经看过Tomcat LockOutFilter等等,但这些都是相当原始的,只能防止一种攻击。 当然,解决方案中有许多特定于应用程序的组件,但我想知道是否有人写了一个通用的解决方案作为起点。

完成HttpServletResponse但继续处理

我的情况似乎符合Async Servlet 3.0 / Comet情况,但我需要做的就是在接受传入参数后返回200响应代码(或其他)。 有没有办法让HttpServlet完成http请求/响应握手并继续处理? 就像是… doPost( req, response ) { // verify input params… response.setStatus( SC_OK ); response.close(); // execute long query } 编辑:看看javax.servlet包 – 我的问题的正确措辞是 我如何提交回复? 在Servlet.isCommitted()中

Servlet异步处理请求

当我正在探索NodeJS应用程序和Java应用程序如何处理请求时,我遇到了Servlet对请求的异步处理。 从我在不同的地方读到的: 请求将由来自Servlet容器的HTTP线程接收和处理,并且在阻塞操作(如I / O)的情况下,请求可以移交给另一个Threadpool,并且接收请求的HTTP线程可以返回接收并处理下一个请求。 现在,来自Threadpool的工作人员将占用耗时的阻塞操作。 如果我理解的是正确的,我有以下问题: 即使是处理阻塞操作的线程也会等待该操作完成,因此阻塞资源(并且处理的线程数等于内核数),如果我是正确的话。 通过使用异步处理,这里获得了什么? 如果没有,请赐教。

有人只知道我当前的JSESSIONID冒充/劫持我的会话(Tomcat 7 / Glassfish 3.2))吗?

我正在寻找一个简单的英语,“for dummies”解释JSESSIONID如何从安全方面工作 只知道我当前的JSESSIONID的人是否可以冒充/劫持我的会话? 在什么情况下,JSESSIONID将成为URL的一部分,并且这个OWASP#2安全风险 (场景#1)仍然与最新版本的Tomcat / Glassfish相关,如果是,那么“关闭/打开”以防止它?

杀死用户会话

我有3个标签。 主页,tab1,tab2。 当用户启动应用程序时,它会定向到“主页”选项卡,然后使用HttpSession session = request.getSession();创建一个新会话HttpSession session = request.getSession(); 当用户浏览其他选项卡时,我使用HttpSession session = request.getSession(false);维护会话HttpSession session = request.getSession(false); 现在,如果用户单击“主页”选项卡,我想要销毁上一个会话并重新开始新会话。 请告诉我怎么做?

通过在eclipse中设置断点来调试ServletContextListener.contextDestroyed()

我实现了一个自定义的ServletContextListener ,并将断点放在contextInitialized()和contextDestroyed() 。 使用WTP启动Web应用程序时,调试器可以停止contextInitialized() 。 但是当我关闭Web应用程序时, contextDestroyed()的断点不起作用,Web应用程序就会关闭。 是否有可能以及如何使用调试器来调试eclipse中的contextDestroyed() ? 我想检查在关闭Web应用程序期间是否可以正确释放所使用的资源。

在大型现有Java代码库中构建测试套件

我正在开发一个现有代码库的Web应用程序,可能已经存在了10年,有大约1000个类文件和大约100,000行代码。 好消息是代码组织良好,业务逻辑与控制器域分离,并且具有高度的可重用性。 坏消息是只有测试套件的开头(JUnit); 最多可能有12打测试。 代码通常用于企业Java项目。 有一个stuts-esque控制器包,该模型几乎完全由数据对象组成,有一个类似于数据库层的hibernate,它主要封装在数据访问对象中,还有一些简单,自包含和逻辑的服务包。 构建此测试套件的最终目标是实现持续集成开发过程。 您将如何为此类应用程序构建测试套件? 您将使用哪些工具来简化流程? 欢迎任何建议。 谢谢!

单个servlet如何处理来自客户端的多个请求

单个servlet如何处理以用户请求forms出现的多个客户端请求? 基于单例设计模式,我知道我们创建了一个servlet实例,但是单个servlet如何处理数百万个请求。 对于涉及它的线程感到困惑。 此外,任何浏览器规范或设置都可以方便地用于发送请求或生成为请求发送的线程。 对于所有框架是否相同,或者它与struts v / s spring不同?

什么决定了同时连接的数量

在Java servlet环境中,有哪些因素是同时用户数量的瓶颈。 服务器可以允许每个端口的HTTP连接数 服务器可以跨多个端口允许的HTTP连接数(我可以在多个HTTP端口上有多个WAS配置文件) 池中的servlet数 为WAS配置用于服务连接的线程数 RAM可用于服务器(假设应用程序中存在0内存泄漏,服务线程数之间是否有任何相关性) 还有其他因素吗? 编辑:为了使业务逻辑脱离图片,假设只有一个servlet在Log4j上打印一行。 我的Tomcat服务器可以同时处理6000个HTTP连接吗? 为什么不(文件处理?每个请求的CPU时间?)? 我可以将线程池​​大小设置为5000(空闲线程是否占用CPU / RAM)? 我可以将oracle连接池大小设置为500个连接(空闲连接是否需要CPU / RAM)? 每个连接生成的垃圾量是否会产生影响? 例如,如果对于每个HTTP连接,由Tomcat创建并留下20KB的对象,则在处理2500个请求时将使用100MB堆,这可能会触发300毫秒的GC暂停。 我们可以这样说:如果Tomcat使用0.2秒的CPU时间来处理单个HTTP请求,那么它将能够在一秒钟内处理大约500个http连接。 因此,6000个连接需要5秒。

如何记住以前保存的表单数据以用于后续请求

我在servlet(page1)中有下面的代码,我想按下Save转到第二个servlet(page2),读取以page1forms写的内容并将它们附加到这样的无线电组中: Question [i]: question (i increases every time a question is added in page2) radiobutton1 (radio1) radiobutton2 (radio2) radiobutton3 (radio3) 关键是每次填写下面的表格时,数据都应添加到先前保存的数据之下。 你能为servlet page2建议一些示例代码吗? 非常感谢。 out.println(“”); out.println(“”); out.println(“”); out.println(“”); out.println(“”); out.println(“”);