JSP 初始化参数:
tomcat启动的时候就会执行那个函数;
xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>TestBootWeb</display-name> <servlet> <servlet-name>index007</servlet-name> <jsp-file>/index007.jsp</jsp-file> <init-param> <param-name>email</param-name> <param-value>s@s.com</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>index007</servlet-name> <url-pattern>/index007.jsp</url-pattern> <!-- 写成/index007.jsp的话,竟然index007.jsp和index0071.jsp都可以访问,而且是两个实例,但是获取初始化参数的时候有问题 --> </servlet-mapping> <jsp-config> <jsp-property-group> <url-pattern>/index006.jsp</url-pattern> <scripting-invalid>true</scripting-invalid> </jsp-property-group> </jsp-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>007index</title> </head> <body> cnt is :<%=++cnt%> <hr> <%!int cnt = 0;%> <%! public void jspInit(){ ServletConfig config = getServletConfig(); String s = config.getInitParameter("email"); System.out.println("s is :"+s); } %> </body> </html>
生成的java:
/* * Generated by the Jasper component of Apache Tomcat * Version: Apache Tomcat/7.0.35 * Generated at: 2015-10-20 01:19:21 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 index007_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent { int cnt = 0; public void jspInit(){ ServletConfig config = getServletConfig(); String s = config.getInitParameter("email"); System.out.println("s is :"+s); } 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(' '); out.write(' '); String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; out.write(" "); out.write("<!DOCTYPE html> "); out.write("<html> "); out.write("<head> "); out.write("<meta charset="UTF-8"> "); out.write("<title>007index</title> "); out.write("</head> "); out.write("<body> "); out.write(" cnt is :"); out.print(++cnt); out.write(" "); out.write(" <hr> "); out.write(" "); out.write(' '); out.write(' '); out.write(' '); out.write(" "); out.write("</body> "); 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); } } }