我想知道对servlet进行单元测试的最佳方法是什么.
测试内部方法不是问题,只要它们不引用servlet上下文,而是测试doGet/doPost方法以及引用上下文或使用会话参数的内部方法呢?
有没有办法简单地使用经典工具,如JUnit,或者最好是TestNG?我是否需要嵌入tomcat服务器或类似的东西?
我正在尝试构建一个调用类似于以下内容的JSP页面的Servlet:
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException, ServletException {
req.getRequestDispatcher("/WEB-INF/main.jsp").forward(req, resp);
}
Run Code Online (Sandbox Code Playgroud)
我需要这个Servlet来响应域的根(例如:http://example.com/)所以我在web.xml中使用以下映射:
<servlet-mapping>
<servlet-name>MainServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是它匹配一切,所以当调度程序转发到"/WEB-INF/main.jsp"时,这与url-pattern匹配,以便Servlet再次运行.这会产生一个循环,直到它以java.lang.StackOverflowError消失.
如何在不阻止其他脚本运行的情况下匹配根目录?
我正在使用JSP,Servlet开发我的Web应用程序.
我希望获得客户信息,例如:操作系统,浏览器,分辨率......每当客户使用我的网站时.
ServletConfig和ServletContext界面有什么区别?
我正在使用JSP和JDBC实现MVC.我已将数据库类文件导入到我的JSP文件中,并且我想显示数据库表的数据.我不知道应该如何ResultSet从Java类返回到JSP页面并将其嵌入HTML中.
我怎样才能做到这一点?
有人可以解释每个连接的每个请求和线程的线程是什么?servlet工作的模型是什么?如何分配线程来处理HTTP请求?是线程/请求还是连接?
让我们说如果我想在我Servlet的doGet()方法中异步执行一个耗时的任务,我会使用Java执行程序启动一个新线程,以便在一个单独的线程中完成冗长的计算,并立即发送响应.
现在这样做是否确保我已经释放了处理我的线程,HttpServletRequest或者它仍然被使用,因为子线程仍在运行?
我正在尝试使用SpringMVC编写Web应用程序.通常情况下,我只是将一些伪造的文件扩展名映射到Spring的前端控制器并幸福地生活,但这次我要使用类似REST的URL,没有文件扩展名.
将我的上下文路径下的所有内容映射到前端控制器(让我们称之为" app ")意味着我也应该处理静态文件,这是我不想做的事情(为什么要重新发明另一个呢?),所以某些与tomcat默认的组合servlet(让我们称之为" tomcat ")似乎是要走的路.
我有工作做的事情
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>tomcat</servlet-name>
<url-pattern>*.ext</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
并为我的静态内容的每个文件扩展名重复后者.我只是想知道为什么以下设置,对我来说等同于上面的设置,不起作用.
<!-- failed attempt #1 -->
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>tomcat</servlet-name>
<url-pattern>*.ext</url-pattern>
</servlet-mapping>
<!-- failed attempt #2 -->
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>tomcat</servlet-name>
<url-pattern>/some-static-content-folder/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
任何人都能解释一下吗?
在Java中管理会话的最佳方式.我听说cookie不是可靠的选项,因为它们存储在浏览器中,以后可以访问?它是否正确?如果可能的话,请用编码示例提出答案.
哪个是最好的:
有人可以向我解释为什么ServletRequest.getParameterMap()返回类型
Map<String, String[]>
Run Code Online (Sandbox Code Playgroud)
ServletRequest.getParameter() 只返回类型 String
我不明白为什么地图会映射到多个值.TIA.
如何将变量从servlet传递给jsp?
setAttribute并getAttribute没有为我工作:-(
servlets ×10
java ×8
java-ee ×2
jsp ×2
web.xml ×2
cookies ×1
jdbc ×1
session ×1
spring-mvc ×1
threadpool ×1
unit-testing ×1