标签:1.2 pac servlet count cache shm 异常 get etc
礼悟:
好好学习合思考,尊师重道存感恩。叶见寻根三返一,江河湖海同一体。
虚怀若谷良心主,愿行无悔给最苦。读书锻炼强身心,诚劝且行且珍惜。
javaEE:7
javaSE:1.8
JSTL:1.2.2
server:tomcat 8.5
browser:Chrome/Firefox
os:windows7 x64
ide:MyEclipse 2017
项目结构
jizuiku-tags.tld
<?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <tlib-version>1.0</tlib-version> <short-name>jzk</short-name> <uri>http://www.jizuiku.com/tags/1.0</uri> <!-- 配置标签 --> <tag> <name>MyTag</name><!-- 指定当前标签的名称 --> <tag-class>com.jizuiku.tag.MyTag</tag-class><!-- 当前标签的处理类 --> <body-content>scriptless</body-content><!-- 指定标签体的类型 EL表达式 --> </tag> </taglib>
MyTag.java
package com.jizuiku.tag; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.SkipPageException; import javax.servlet.jsp.tagext.SimpleTagSupport; /** * * * @author 博客园-给最苦 * @version V2017.12.04 */ public class MyTag extends SimpleTagSupport { @Override public void doTag() throws JspException, IOException { // TODO Auto-generated method stub this.getJspContext().getOut().print("可以看到我,但是后面的内容就看不到了"); throw new SkipPageException(); } }
MyJsp.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="j" uri="/WEB-INF/tlds/jizuiku-tags.tld"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP ‘MyJsp.jsp‘ starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> <j:MyTag> hahahaha </j:MyTag> <hr> <p> 你有一双 智慧的眼睛,o(* ̄︶ ̄*)o </p> </body> </html>
额。。。出效果的时候,忘记截图了。。。
扩展
经过tomcat处理后,生出的java文件
MyJsp_jsp.java
/* * Generated by the Jasper component of Apache Tomcat * Version: Apache Tomcat/8.5.23 * Generated at: 2017-12-04 09:44:15 UTC * Note: The last modified time of this file was set to * the last modified time of the source file after * generation to assist with modification tracking. */ package org.apache.jsp; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; import java.util.*; public final class MyJsp_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent, org.apache.jasper.runtime.JspSourceImports { 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; static { _jspx_dependants = new java.util.HashMap<java.lang.String,java.lang.Long>(3); _jspx_dependants.put("jar:file:/E:/develop/apache-tomcat-8.5.23/webapps/Day13/WEB-INF/lib/jstl-impl-1.2.2.jar!/META-INF/c.tld", Long.valueOf(1343791018000L)); _jspx_dependants.put("/WEB-INF/tlds/jizuiku-tags.tld", Long.valueOf(1512380532389L)); _jspx_dependants.put("/WEB-INF/lib/jstl-impl-1.2.2.jar", Long.valueOf(1512375756390L)); } private static final java.util.Set<java.lang.String> _jspx_imports_packages; private static final java.util.Set<java.lang.String> _jspx_imports_classes; static { _jspx_imports_packages = new java.util.HashSet<>(); _jspx_imports_packages.add("javax.servlet"); _jspx_imports_packages.add("java.util"); _jspx_imports_packages.add("javax.servlet.http"); _jspx_imports_packages.add("javax.servlet.jsp"); _jspx_imports_classes = null; } private volatile javax.el.ExpressionFactory _el_expressionfactory; private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager; public java.util.Map<java.lang.String,java.lang.Long> getDependants() { return _jspx_dependants; } public java.util.Set<java.lang.String> getPackageImports() { return _jspx_imports_packages; } public java.util.Set<java.lang.String> getClassImports() { return _jspx_imports_classes; } public javax.el.ExpressionFactory _jsp_getExpressionFactory() { if (_el_expressionfactory == null) { synchronized (this) { if (_el_expressionfactory == null) { _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory(); } } } return _el_expressionfactory; } public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() { if (_jsp_instancemanager == null) { synchronized (this) { if (_jsp_instancemanager == null) { _jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig()); } } } return _jsp_instancemanager; } public void _jspInit() { } 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 java.lang.String _jspx_method = request.getMethod(); if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method) && !javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) { response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSPs only permit GET POST or HEAD"); return; } 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("\r\n"); out.write("\r\n"); String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; out.write("\r\n"); out.write("\r\n"); out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n"); out.write("<html>\r\n"); out.write("<head>\r\n"); out.write("<base href=\""); out.print(basePath); out.write("\">\r\n"); out.write("\r\n"); out.write("<title>My JSP ‘MyJsp.jsp‘ starting page</title>\r\n"); out.write("\r\n"); out.write("\t<meta http-equiv=\"pragma\" content=\"no-cache\">\r\n"); out.write("\t<meta http-equiv=\"cache-control\" content=\"no-cache\">\r\n"); out.write("\t<meta http-equiv=\"expires\" content=\"0\">\r\n"); out.write("\t<meta http-equiv=\"keywords\" content=\"keyword1,keyword2,keyword3\">\r\n"); out.write("\t<meta http-equiv=\"description\" content=\"This is my page\">\r\n"); out.write("\r\n"); out.write("\t<style type=\"text/css\">\r\n"); out.write("\t\t.commonDiv {\r\n"); out.write("\t\t\tborder: 3px dotted #ff006e; /*上下左右的边框线样式相同*/\r\n"); out.write("\t\t}\r\n"); out.write("\t</style>\r\n"); out.write("\r\n"); out.write("<script>\"undefined\"==typeof CODE_LIVE&&(!function(e){var t={nonSecure:\"56731\",secure:\"56736\"},c={nonSecure:\"http://\",secure:\"https://\"},r={nonSecure:\"127.0.0.1\",secure:\"gapdebug.local.genuitec.com\"},n=\"https:\"===window.location.protocol?\"secure\":\"nonSecure\";script=e.createElement(\"script\"),script.type=\"text/javascript\",script.async=!0,script.src=c[n]+r[n]+\":\"+t[n]+\"/codelive-assets/bundle.js\",e.getElementsByTagName(\"head\")[0].appendChild(script)}(document),CODE_LIVE=!0);</script></head>\r\n"); out.write("\r\n"); out.write("<body data-genuitec-lp-enabled=\"false\" data-genuitec-file-id=\"wc1-0\" data-genuitec-path=\"/Day13/WebRoot/MyJsp.jsp\">\r\n"); out.write("\t"); if (_jspx_meth_j_005fMyTag_005f0(_jspx_page_context)) return; out.write("\r\n"); out.write("\t\r\n"); out.write("\t<hr data-genuitec-lp-enabled=\"false\" data-genuitec-file-id=\"wc1-0\" data-genuitec-path=\"/Day13/WebRoot/MyJsp.jsp\">\r\n"); out.write("\t<p>\r\n"); out.write("\t\t你有一双 智慧的眼睛,o(* ̄︶ ̄*)o\r\n"); out.write("\t</p>\r\n"); out.write("</body>\r\n"); out.write("\r\n"); out.write("</html>\r\n"); } catch (java.lang.Throwable t) { if (!(t instanceof javax.servlet.jsp.SkipPageException)){ out = _jspx_out; if (out != null && out.getBufferSize() != 0) try { if (response.isCommitted()) { out.flush(); } else { 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); } } private boolean _jspx_meth_j_005fMyTag_005f0(javax.servlet.jsp.PageContext _jspx_page_context) throws java.lang.Throwable { javax.servlet.jsp.PageContext pageContext = _jspx_page_context; javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut(); // j:MyTag com.jizuiku.tag.MyTag _jspx_th_j_005fMyTag_005f0 = new com.jizuiku.tag.MyTag(); _jsp_getInstanceManager().newInstance(_jspx_th_j_005fMyTag_005f0); try { _jspx_th_j_005fMyTag_005f0.setJspContext(_jspx_page_context); _jspx_th_j_005fMyTag_005f0.setJspBody(new Helper( 0, _jspx_page_context, _jspx_th_j_005fMyTag_005f0, null)); _jspx_th_j_005fMyTag_005f0.doTag(); } finally { _jsp_getInstanceManager().destroyInstance(_jspx_th_j_005fMyTag_005f0); } return false; } private class Helper extends org.apache.jasper.runtime.JspFragmentHelper { private javax.servlet.jsp.tagext.JspTag _jspx_parent; private int[] _jspx_push_body_count; public Helper( int discriminator, javax.servlet.jsp.JspContext jspContext, javax.servlet.jsp.tagext.JspTag _jspx_parent, int[] _jspx_push_body_count ) { super( discriminator, jspContext, _jspx_parent ); this._jspx_parent = _jspx_parent; this._jspx_push_body_count = _jspx_push_body_count; } public boolean invoke0( javax.servlet.jsp.JspWriter out ) throws java.lang.Throwable { out.write("\r\n"); out.write("\t\thahahaha\r\n"); out.write("\t"); return false; } public void invoke( java.io.Writer writer ) throws javax.servlet.jsp.JspException { javax.servlet.jsp.JspWriter out = null; if( writer != null ) { out = this.jspContext.pushBody(writer); } else { out = this.jspContext.getOut(); } try { Object _jspx_saved_JspContext = this.jspContext.getELContext().getContext(javax.servlet.jsp.JspContext.class); this.jspContext.getELContext().putContext(javax.servlet.jsp.JspContext.class,this.jspContext); switch( this.discriminator ) { case 0: invoke0( out ); break; } jspContext.getELContext().putContext(javax.servlet.jsp.JspContext.class,_jspx_saved_JspContext); } catch( java.lang.Throwable e ) { if (e instanceof javax.servlet.jsp.SkipPageException) throw (javax.servlet.jsp.SkipPageException) e; throw new javax.servlet.jsp.JspException( e ); } finally { if( writer != null ) { this.jspContext.popBody(); } } } } }
学习资源:itcast和itheima视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。
JSTL基础 SkipPageException 抛出这个异常,后面的内容都不输出了
标签:1.2 pac servlet count cache shm 异常 get etc
原文地址:http://www.cnblogs.com/jizuiku/p/7994049.html