<%
String fname=request.getParameter("fname");
String username=getVal("lname");
%>
<%!
private String getVal(String param){
return request.getParameter("fname");
}
%>
/*
--err
org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP
PWC6197: An error occurred at line: 5 in the jsp file: /register.jsp
PWC6199: Generated servlet error:
string:///register_jsp.java:12: cannot find symbol
symbol : variable request
location: class org.apache.jsp.register_jsp
/*
JSP 通过 JSP 编译器将 JSP 页面转换为 servlet,自动生成 java 代码。
JSP 指令指示 JSP 编译器在哪里放置什么内容。里面的一切<% %>
(称为JSP 脚本)将被放入service()
生成的 servlet 的方法。里面的一切<%! %>
(称为JSP 声明) 将成为生成的 servlet 的实际类的一部分,因此您的 getVal() 将成为实例方法。
标准request
(and session
and pageContext
等)对象实例在内部定义service()
方法,因此实际上它们只能在 JSP scriptlet 部分中使用。
例如,如果您在 Tomcat 上运行,则如果您查看 Tomcat 安装中的“work”目录,则可以查看为 JSP 页面实际生成的 Java 代码。如果不能更好地了解“幕后”发生的事情,可能会很有趣。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)