转自huangqiqing123.iteye.com/blog/1922014

 <body>
<%! //1、可定义方法
public String outMethod(){
return "outMethod";
}
//2、可定义static方法
public static String outStaticMethod(){
return "outStaticMethod";
}
//3、可定义static属性
public static int count = 0; //4、不可以使用out对象
%> <%
//1、不可定义方法
//2、不可定义static方法
//3、不可定义static属性 //可以使用out对象
out.print(outMethod());
out.print("<br>");
out.print(outStaticMethod());
out.print("<br>");
out.print(count);
%>
</body>
 <body>
<%! //1、可定义方法
public String outMethod(){
return "outMethod";
}
//2、可定义static方法
public static String outStaticMethod(){
return "outStaticMethod";
}
//3、可定义static属性
public static int count = 0; //4、不可以使用out对象
%> <%
//1、不可定义方法
//2、不可定义static方法
//3、不可定义static属性 //可以使用out对象
out.print(outMethod());
out.print("<br>");
out.print(outStaticMethod());
out.print("<br>");
out.print(count);
%>
</body>

经Tomcat编译后,生成的java文件如下:

package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*; public final class test_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent { //1、可定义方法
public String outMethod(){
return "outMethod";
}
//2、可定义static方法
public static String outStaticMethod(){
return "outStaticMethod";
}
//3、可定义static属性
public static int count = 0; //4、不可以使用out对象 private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory(); private static java.util.List _jspx_dependants; private javax.el.ExpressionFactory _el_expressionfactory;
private org.apache.AnnotationProcessor _jsp_annotationprocessor; public Object getDependants() {
return _jspx_dependants;
} public void _jspInit() {
_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
_jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());
} public void _jspDestroy() {
} public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException { PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null; try {
response.setContentType("text/html; charset=utf-8");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out; out.write("\r\n");
out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n");
out.write("<html>\r\n");
out.write("<head>\r\n");
out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n");
out.write("<title>Insert title here</title>\r\n");
out.write("</head>\r\n");
out.write("<body>\r\n");
out.write("\r\n");
out.write("\r\n"); //1、不可定义方法
//2、不可定义static方法
//3、不可定义static属性 //可以使用out对象
out.print(outMethod());
out.print("<br>");
out.print(outStaticMethod());
out.print("<br>");
out.print(count); out.write("\r\n");
out.write("</body>\r\n");
out.write("</html>");
} catch (Throwable t) {
if (!(t instanceof SkipPageException)){
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
try { out.clearBuffer(); } catch (java.io.IOException e) {}
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
}
} finally {
_jspxFactory.releasePageContext(_jspx_page_context);
}
}
}

在生成的java文件中,我们可以看到,<%! %>中的代码对应于java类文件的成员方法、静态方法,静态变量,而<%  %>中的代码对应于java类文件的_jspService方法中的代码(_jspService对应于servlet中的service方法), 这也就是为什么在<% %>中不能声明方法、静态变量的原因了(方法中是不可以再创建方法的)。

jsp <%! %> 与 <% %> 区别的更多相关文章

  1. JS和JSP的区别

    最近很多同学在纠结于名词缩写之间的相似性,因此本人也来写一篇,讲讲JS和JSP的区别. SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方 ...

  2. Servlet与JSP的区别(转)

    原文链接:Servlet与JSP的区别 两者之间的联系和区别 [1]JSP第一次运行的时候会编译成Servlet,驻留在内存中以供调用. [2]JSP是web开发技术,Servlet是服务器端运用的小 ...

  3. 6.servlet和jsp的区别

    servlet和jsp的区别 jsp作为Servlet技术的扩展,经常会有人将jsp和Servlet搞混.本文,将为大家带来servlet和jsp的区别,希望对大家有所帮助. servlet和jsp的 ...

  4. JSP serverlet区别与联系

    jsp是html包含java servlet是java包含html jsp请求到tomcat---tomcat封装了jsp到servlet实现. 所以jsp请求时候,会自动创建session 而不用在 ...

  5. html 与 jsp 文件格式区别

    html 与 jsp 文件格式区别 html5 <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...

  6. Servlet概念及与Jsp的区别

    一.Servlet概念 Servlet是在服务器上运行的小程序.一个Servlet就是一个Java类,并且可以通过”请求-响应”编程模型来访问这个驻留在服务器内存里的Servlet程序 二.Servl ...

  7. jsp中的@include与jsp:include区别详解

    1 前言 搞java开发的人也许都知道在jsp中引入项目中其他文件有如下两种方式 <%@include file="xxx.jsp"%> <jsp:include ...

  8. Servlet与JSP的区别

    一.基本概念 1.1 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器 ...

  9. Servlet的生命周期,并说出Servlet和CGI的区别,Servlet与JSP的区别

    一.Servlet 生命周期 1.加载 2.实例化 3.初始化 4.处理请求 5.销毁 二.Servlet与cgi的区别: Servlet处于服务器进程中,它通过多线程方式运行其service方法,一 ...

  10. Java从入门到精通——基础篇之Servlet与JSP的区别

    一.基本概念 1.1 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器 ...

随机推荐

  1. 如何使用json在前后台进行数据传输

    上一篇博客写到用javascript生成多组文本,可以让数据的输入不受显示,现在我们需要把这些输入写入数据库,这里就用到json传入. 首先,我们来写一下后台如何生成要传输的数据 function g ...

  2. Boolean类源码分析

    Boolean类里面的常量: Boolean.TRUE:这个是调用Boolean的构造函数,新建了一个Boolean对象,所以TRUE是Boolean类型的.用来避免每次都创建新的Boolean对象, ...

  3. PGA突破pga_aggregate_target限制

    SQL> show parameter pga NAME         TYPE  VALUE ------------------------------------ ----------- ...

  4. Linux Shell编程(1)——shell编程简介

    Shell是一个命令解释器.它不仅是操作系统内核与用户之间的绝缘层,同时也是一种功能相当强大的编程语言.一个Shell程序,通常称为脚本,它是一个由系统调用,命令工具,软件包和已编译的二进制包&quo ...

  5. Hat's Fibonacci(大数问题)

    #include <iostream>#include <stdio.h>#include <string.h>using namespace std;int a[ ...

  6. 算法对比:Prim算法与Dijskra算法

    在图论中,求MST的Prim算法和求最短路的Dijskra算法非常像.可是我一直都对这两个算法处于要懂不懂的状态,现在,就来总结一下这两个算法. 最小生成树(MST)—Prim算法: 算法步骤: •将 ...

  7. ACM编程网站

    ACM:ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate ProgrammingContest(ACM-ICPC或ICPC)是由美国计算机协会(ACM) ...

  8. Selenium firefox 版本问题

    问题:Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms 原因: selenium-server-standalone-x. ...

  9. 用Myeclipse 编写struts.xml时,自动提示

    之所以不自动提示,是因为这个xml它不知道自己的xml格式是什么有哪些标签,所以不知道该怎么提示 所以就要给它引入格式,所以要引入XSD或者DTD文件 1.首先打开MyEclipse的窗口,选择“Wi ...

  10. getting start with storm 翻译 第八章 part-2

    转载请注明出处:http://blog.csdn.net/lonelytrooper/article/details/12435641 The Bolts 首先我们看一下该topology中的标准bo ...