我必须处理其他人所做的java Web应用程序。由于我是java web开发的新手,我扫描了一些代码,偶然发现了一些实例化的对象,我无法找到它实例化的引用,即在.jsp
页面中
...some includes
UserFactory uf=null;
if (application.getAttribute("userFactory") == null){
...
strUser=request.getParameter("user");
pw=request.getParameter("pw");
...
(注意application, request, response
)
现在我意识到它本来可以在一些包含中声明,我确实通过了它们但是找不到声明(虽然我可以监督它)。 现在的问题是: 这些对象是否以某种方式由tomcat全局实例化(如果是这样我可以在哪里找到),如果不是这样,那么如何在一个相当大的项目中找到它们(顺便说一句,我正在使用Eclipse JUNO)(即像eclipse的功能,以找到实例化),最好不要手动查看每一个包含。
答案 0 :(得分:1)
在JSP中,这些变量称为“隐式对象”。在此处查找JSP中可用的所有隐式对象:http://docs.oracle.com/javaee/5/tutorial/doc/bnahq.html#bnaij:
隐含物品
JSP表达式语言定义了一组隐式对象:
- pageContext:JSP页面的上下文。提供对各种对象的访问,包括:
- servletContext:JSP页面的servlet的上下文以及同一应用程序中包含的任何Web组件。请参阅访问Web上下文。
- session:客户端的会话对象。请参阅维护客户状态。
- request:触发JSP页面执行的请求。请参阅从请求中获取信息。
- 响应:JSP页面返回的响应。请参阅构建响应。
此外,还有几个隐式对象可以轻松访问以下对象:
- param:将请求参数名称映射到单个值
- paramValues:将请求参数名称映射到值数组
- 标头:将请求标头名称映射到单个值
- headerValues:将请求标头名称映射到值数组
- cookie:将Cookie名称映射到单个Cookie
- initParam:将上下文初始化参数名称映射到单个值
最后,有些对象允许访问使用范围对象中描述的各种范围变量。
- pageScope:将页面范围的变量名称映射到其值
- requestScope:将请求范围的变量名称映射到其值
- sessionScope:将会话范围的变量名称映射到其值
- applicationScope:将应用程序范围的变量名称映射到其值
答案 1 :(得分:0)
它们是servlet引擎为所有JSP页面提供的变量。使用servlet,您将HttpServletRequest
和HttpServletResponse
传递给doXXX
方法,并且它们在JSP处理期间也可用。