<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Test</title> </head> <body> <%! String test1 = "定义一些成员变量或者方法"; %> <% String test2 = "定义局部变量或者一些逻辑操作"; %> <%="test" %> equals <% out.println("test"); %> </body> </html>
这里列举了三个标签<%%>、<%! %>、<%= %>。这里kk从编译成的Servlet来PK下这三者的区别。
- <% %> PK <%! %>
<% %>: 用来放入一些逻辑操作和局部变量,其中的一些逻辑将会放入到_jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)方法中(如下图),上面的jsp中<% String test1 = "定义局部变量或者一些逻辑操作"; %>就是方法中的局部变量。
<%! %>: 用来定义成员变量或者成员方法,<%! String test2 = "定义一些成员变量或者方法"; %>将会最终编译成Servlet中的成员变量(如下图)。
- <% %> PK <%= %>
<%=123 %> 相当于 <% out.println("123");%>,会在前台页面输出指定的内容。
注:在使用<%= %>时其后不能有封号。
令附上jsp在tomcat中编译成的Servlet(jsp页面在程序tomcat启动后并访问该页面,会在tomcat path\work\Catalina\localhost\KKWebTest\org\apache\jsp中编译成Servlet)如下:
package org.apache.jsp; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent { String test1 = "定义一些成员变量或者方法"; private static final javax.servlet.jsp.JspFactory _jspxFactory = javax.servlet.jsp.JspFactory.getDefaultFactory(); private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants; private javax.el.ExpressionFactory _el_expressionfactory; private org.apache.tomcat.InstanceManager _jsp_instancemanager; public java.util.Map<java.lang.String,java.lang.Long> getDependants() { return _jspx_dependants; } public void _jspInit() { _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory(); _jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig()); } public void _jspDestroy() { } 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; 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>Test</title>\r\n"); out.write("</head>\r\n"); out.write("<body>\r\n"); out.write(" "); out.write("\r\n"); out.write(" "); String test2 = "定义局部变量或者一些逻辑操作"; out.write("\r\n"); out.write(" \r\n"); out.write(" "); out.print("test" ); out.write(" \r\n"); out.write(" equals\r\n"); out.write(" "); out.println("test"); out.write("\r\n"); out.write("</body>\r\n"); out.write("</html>"); } catch (java.lang.Throwable t) { if (!(t instanceof javax.servlet.jsp.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); else throw new ServletException(t); } } finally { _jspxFactory.releasePageContext(_jspx_page_context); } } }
相关推荐
asp.net 中<%# %> 、<% %>、<%= %>和<%@ %>的区别
<br> 和 <p> 标签的区别 , 快速了解 <br> 标签 和 <p> 标签...
j<=i; j++) //倒置<br> { <br> pval[j] = strval[i-j]; <br> } <br> pval[j] = '\0'; <br> }<br> d)请编写一个 C 函数,该函数将一个字符串逆序。<br>void AntitoneValue(char* father, char* child) <br> { <br> ...
=%>相当于Response.Write(),是输出变量的值 <%#%>专门用于数据绑定,可以绑定一些变量或者数据源中的信息,中间绑定是数据源的条目,若想让它起作用,必须调用DataBind()方法 您可能感兴趣的文章:HighCharts图表...
6.成员变量和成员方法前加static的作用是什么? 7.using和new有什么区别? 8.如何理解面向对象的多态性?...9.有一个泛型类class List<T>{},则正确实例化该泛型类的语句是( ...D)List<int> t=new List<int>();
><br><ARCXML version="1.1"><br><REQUEST><br><GET_IMAGE><br><PROPERTIES><br><ENVELOPE minx="-125" miny="25" maxx="-67" maxy="50" /><br><IMAGESIZE width="700" height="500" /><br></PROPERTIES><br></GET_...
发生异常时,异常周围信息(抛出对象本身类型)-------------异常处理程序<BR><BR>12.5一个异常处理的简单实例:除数为0<BR><BR>需求:使用一个小应用程序,完成两数相除的计算<BR><BR><BR><BR><BR><BR><BR><BR><BR>...
88<br><br>0136 如何进行文本加密与解密 88<br><br>0137 如何区别0、空字符串、Null、Empty和Nothing 89<br><br>0138 从字符串中分离文件路径、文件名及扩展名 89<br><br>0139 如何批量替换某一类字符串 89...
<em> <i> <dfn>标签的区别
状语从句和宾语从句 <br><br>实力测验 <br><br>附录 <br><br>英语语法Q&A <br><br>名词 Q1 <br><br>代词 Q6 <br><br>冠词·形容词·副词 Q10 <br><br>动词 Q19 <br><br>现在时·过去时 Q22 <br><br>进行时 Q27 <br>...
(55#)<br><br>处理冲击波(56#)<br><br>磁盘格式的问题(57#)<br><br>电脑死机故障分析(58#)<br><br>更改IE的默认搜索引擎(59#)<br><br>更改临时文件夹的路径(60#)<br><br>更改屏幕保护程序关联方式(61#...
Winsw将jar包部署为windows服务: 1.下载winsw官网上的xml文件和.exe文件(已下载...<executable>E:\jdk\bin\java.exe</executable> <arguments>-jar testjar.jar</arguments> <startmode>Automatic</startmode> <logpa
本文给大家解析使用<![CDATA[ ]]>解决xml文件不被转义的问题, 对mybatis 中的<![CDATA[ ]]>相关知识感兴趣的朋友一起看看吧
1.<%@include file="head.jsp" %> 2.<jsp:include page="head.jsp" /> 或者: <jsp:include page="jieshou.jsp"> <jsp:param name="canshu" value="magci" /> </jsp:include> 两者的区别: 1.<%@include ...
<br> 2004年度中文非主流网站100强评选结果揭晓√ <br> 广告联盟看起来很“完美” <br> Google AdSense与其他广告联盟的区别是什么? <br> 当当失算于Email营销 <br> 知己知彼分析:何防止google adsense fraud ...
var num = 1; var str = '1'; var test = 1; test == num //true 相同类型 相同值 test === num //true 相同类型 相同值 test !== num //false test与num类型相同,其值也相同, 非运算肯定是false ...
<script type="text/javascript" src="jquery-1.8.0.min.js"></script> </head> <body> <form action="a2.php" name="form1" method="post"> 姓名:<input type="text" name="username" value="wjj"> 年龄:<input ...
<=或者lte:判断左边值是否小于等于右边值 注意:=和!=可以用于字符串,数值和日期来比较是否相等,但=和!=两边必须是相同类型的值,否则会产生错误,而且FreeMarker是精确比 较,"x","x ","X"是不等的.其它的运行符可以...