解惑

解己之惑,解人之惑

标签:jsp

The method getXxx() is undefined for the type Yyy

今天遇到这个问题都快崩溃了,那个方法明明定义了,在JSP中用反射拿到类声明的全部方法并打印出来都可以看到的,但是修改回来后就是编译不过。
Google了下,也是很多人遇到,但是没有人解决,有人说是tomcat的问题,不太相信。
突然想到我的工程是hot deploy的,那个class有两份,一份新的一份旧的,jboss的tomcat在编译那个JSP时用的是旧的类,运行时用的是我Hot deploy的新的类定义。
重新编译发布整个工程,问题解决。

JSP的一个小误区

相信很多人在面试的时候都会被问到JSP和Servlet的区别,我认为JSP就是功能受限的Servlet,因为JSP不能作为后台的控制Servlet用,但是实际上我的这个想法是错误的,JSP是可以像普通的Serlvet那样作为控制用的Servlet用的,在web.xml里面定义一下就行了:
    <servlet>
        <servlet-name>control</servlet-name>
        <jsp-file>/jsp/control.jsp</jsp-file>
    </servlet>

Response被关闭

这个是一个朋友问起的,他的后台有一些错误信息,大意就是response的流被关闭了。这个问题我原来遇到过一次,出错的原因是我的代码走到一个地方的时候我foward到另外的页面去了,但是代码并没有return,而是继续执行,并且后续的代码对response还继续写入内容了,报错的地方就发生在那个继续写入内容的地方。
但是这个朋友检查了他的代码,不是这个因素,他后来自己上网查了一下,发现是另外的原因,他的jsp代码是:
<jsp:include page="xxx.do?flag=true">
他使用的是struts,我也不清楚为什么会这样,但是猜测struts在进入新的action的时候会做一些工作,特别是对response的处理。有时间再仔细研究下原因。

© 2024 解惑

本主题由Anders Noren提供向上 ↑