博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jsp中<%! %>
阅读量:5068 次
发布时间:2019-06-12

本文共 4175 字,大约阅读时间需要 13 分钟。

jsp中<%! %>

1    2 <%!   3    4 //1、可定义方法   5 public String outMethod(){   6     return "outMethod";   7 }   8 //2、可定义static方法   9 public static String outStaticMethod(){  10     return "outStaticMethod";  11 }  12 //3、可定义static属性  13 public static int count = 0;  14   15 //4、不可以使用out对象  16 %>  17   18 <%  19 //1、不可定义方法  20 //2、不可定义static方法  21 //3、不可定义static属性  22   23 //可以使用out对象  24 out.print(outMethod());  25 out.print("
"); 26 out.print(outStaticMethod()); 27 out.print("
"); 28 out.print(count); 29 %> 30

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

1 package org.apache.jsp;    2     3 import javax.servlet.*;    4 import javax.servlet.http.*;    5 import javax.servlet.jsp.*;    6     7 public final class test_jsp extends org.apache.jasper.runtime.HttpJspBase    8     implements org.apache.jasper.runtime.JspSourceDependent {    9    10    11    12 //1、可定义方法   13 public String outMethod(){   14     return "outMethod";   15 }   16 //2、可定义static方法   17 public static String outStaticMethod(){   18     return "outStaticMethod";   19 }   20 //3、可定义static属性   21 public static int count = 0;   22    23 //4、不可以使用out对象   24    25   private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();   26    27   private static java.util.List _jspx_dependants;   28    29   private javax.el.ExpressionFactory _el_expressionfactory;   30   private org.apache.AnnotationProcessor _jsp_annotationprocessor;   31    32   public Object getDependants() {   33     return _jspx_dependants;   34   }   35    36   public void _jspInit() {   37     _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();   38     _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());   39   }   40    41   public void _jspDestroy() {   42   }   43    44   public void _jspService(HttpServletRequest request, HttpServletResponse response)   45         throws java.io.IOException, ServletException {   46    47     PageContext pageContext = null;   48     HttpSession session = null;   49     ServletContext application = null;   50     ServletConfig config = null;   51     JspWriter out = null;   52     Object page = this;   53     JspWriter _jspx_out = null;   54     PageContext _jspx_page_context = null;   55    56    57     try {   58       response.setContentType("text/html; charset=utf-8");   59       pageContext = _jspxFactory.getPageContext(this, request, response,   60                 null, true, 8192, true);   61       _jspx_page_context = pageContext;   62       application = pageContext.getServletContext();   63       config = pageContext.getServletConfig();   64       session = pageContext.getSession();   65       out = pageContext.getOut();   66       _jspx_out = out;   67    68       out.write("\r\n");   69       out.write("\r\n");   70       out.write("\r\n");   71       out.write("\r\n");   72       out.write("
\r\n"); 73 out.write("Insert title here\r\n"); 74 out.write("\r\n"); 75 out.write("\r\n"); 76 out.write("\r\n"); 77 out.write("\r\n"); 78 79 //1、不可定义方法 80 //2、不可定义static方法 81 //3、不可定义static属性 82 83 //可以使用out对象 84 out.print(outMethod()); 85 out.print("
"); 86 out.print(outStaticMethod()); 87 out.print("
"); 88 out.print(count); 89 90 out.write("\r\n"); 91 out.write("\r\n"); 92 out.write(""); 93 } catch (Throwable t) { 94 if (!(t instanceof SkipPageException)){ 95 out = _jspx_out; 96 if (out != null && out.getBufferSize() != 0) 97 try { out.clearBuffer(); } catch (java.io.IOException e) {} 98 if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); 99 } 100 } finally { 101 _jspxFactory.releasePageContext(_jspx_page_context); 102 } 103 } 104 }

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

 

转载于:https://www.cnblogs.com/Renyi-Fan/p/8041072.html

你可能感兴趣的文章
我所理解的前端
查看>>
form详解
查看>>
CentOS升级Python 2.6到2.7
查看>>
Hibernate 三种状态变化 与 sql 语句的关系
查看>>
2018NOIP游记
查看>>
vue-cli——vue-resource登录注册实例
查看>>
对Dictionary<TKey,TValue>进行插入与替换操作
查看>>
Ubuntu 18.04.1 LTS + kolla-ansible 部署 openstack Rocky all-in-one 环境
查看>>
Linux常用命令大全
查看>>
mysql root登陆问题
查看>>
谈谈绘画为什么要重视画人物肖像?
查看>>
Android jni/ndk编程三:native访问java
查看>>
Android ViewPager使用详解
查看>>
静态传递闭包
查看>>
当你输入一个网址后都发生什么
查看>>
day23-1 isinstance、issubclass和反射
查看>>
js面试题
查看>>
第五件:mysql优化原则
查看>>
稳定婚姻问题学习笔记
查看>>
mtr 命令详解
查看>>