转载自百度知道。
<%%>标签里面的内容表示的是在doservice方法里面(jsp编译成的类)执行的,为了可以定义方法,必须放到外面,用标签:<%! %>
比如我这样就可以 <%! public void gg(){ } %> 这样就不行 <% int a=0; public void gg(){ } %> 为什么定义变量就可以,定义一个方法一定要在<%! %>中呢?
提问者采纳
2012-05-10 15:52
jsp的内容都隶属于一个方法中 doservice方法 你见过在方法中写方法么?因为这是不符合语法规则的 所以不行 《!%%》表示声明书写,写的内容位于doservice方法外部
-
追问
-
虽然不是特别明白 我自己百度也找了好久,如果写方法的话 一定要在<%! %>中。顺便在问下,你说的jsp的内容都隶属于一个方法中 doservice方法 这个能再说的稍微具体点吗 谢谢了
-
回答
-
你是否明白jsp有几大内置对象? 为什么有? public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException { final javax.servlet.jsp.PageContext pageContext; javax.servlet.http.HttpSession session = null; final javax.servlet.ServletContext application; final javax.servlet.ServletConfig config; javax.servlet.jsp.JspWriter out = null; final java.lang.Object page = this; javax.servlet.jsp.JspWriter _jspx_out = null; javax.servlet.jsp.PageContext _jspx_page_context = null; 这些代码在你写完JSP并运行的时候 就会在tomcat的work文件夹下生成,是以.java命名的,然后编译成.class文件 再交给tomcat 然后tomcat去找虚拟机解析并执行代码 我贴的只是很小一部分 关于内置对象的定义 其中你写的所有JSP非声明型代码(import ! 这一类的属于声明、引用型 隶属于方法外部)都在_jspService这个方法中执行 \apache-tomcat-7.0.26\work\Catalina\localhost\工程名\org\apache\jsp\WEB_002dINF\view 在这下面你会找到这些.java的jsp文件 看懂了看一下 看不懂就看一眼就行了 这个不用深究 没有太大用处
-
提问者评价
-
非常感谢,内置对象我知道 什么out session 等等 就是不知道具体里面的含义 谢谢了
评论(2)
|
2