jsp 指令 标准标签库 动作 的使用
来源:互联网 发布:免费发贴软件 编辑:程序博客网 时间:2024/05/14 21:37
/********************************************************************************/>jsp指令和动作以及标准标签库的使用/********************************************************************************/0.<%@include file="ok.jsp" %>>ok.jsp中定义的成员变量和成员方法/////////////////////////////////////////////////// <%!public PageContext pgct=null; %>// // <%pgct=pageContext; %>// <%!// public void demonstrate_include_directive(){// try{// pgct.getOut().print("只有一个java文件吗?");// }catch(Exception e){// e.printStackTrace();// }// }// %>// <%// demonstrate_include_directive();// %>//////////////////////////////////////////////////////////////////////////////////////////////////////>jsp_action.jsp中的代码//<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>//<%@include file="ok.jsp" %> -->只使用了include指令//////////////////////////////////////////////////////////////////////////////////////////////////////>经过编译后// root:\apache-tomcat-6.0.30\apache-tomcat-6.0.30\apache-tomcat-6.0.30// \work\Catalina\localhost\jsp// \org\apache\jsp// \jsp_005faction//jsp_005faction_jsp.java-->只有一个类文件和一个java文件//这说明是动态包含include指令将会把自己和另外一个jsp//进行一个合并然后再翻译成一个类来使用//////////////////////////////////////////////////>两个jsp合并后的代码/***********************************************************************************/public final class jsp_005faction_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent {public PageContext pgct=null; //在ok.jsp中定义的成员变量 public void demonstrate_include_directive(){//在ok.jsp中定义的成员方法 try{ pgct.getOut().print("只有一个java文件吗?"); }catch(Exception e){ e.printStackTrace(); } } private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory(); private static java.util.List _jspx_dependants; static { _jspx_dependants = new java.util.ArrayList(1); _jspx_dependants.add("/jsp_action/ok.jsp"); } 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'); out.write('\n'); out.write('\r'); out.write('\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>ok.jsp</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(" </head>\r\n"); out.write(" \r\n"); out.write(" <body>\r\n"); out.write(" \r\n"); out.write(" /////////////////////////////////////////////////\r\n"); out.write(" "); out.write("\r\n"); out.write(" \r\n"); out.write(" "); /****************************************/ //动态追加的代码 //pgct=pageContext; //out.write("\r\n"); //out.write(" \t"); //out.write("\r\n"); //out.write(" \t"); //demonstrate_include_directive(); /****************************************/ out.write("\r\n"); out.write(" /////////////////////////////////////////////////\r\n"); out.write(" \t</body>\r\n"); out.write("</html>\r\n"); out.write("\r\n"); 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=\"\">\r\n"); out.write(" \r\n"); out.write(" <title>jsp_action.jsp</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(" </head>\r\n"); out.write(" \r\n"); out.write(" <body>\r\n"); out.write(" </body>\r\n"); out.write(" \r\n"); out.write(" "); out.write("</html>\r\n"); } 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); } }}/***********************************************************************************/}/***********************************************************************************/1.<%page >指令// <%@ page language="java" contentType="text/html;charset=Shift_JIS"%> // <%@ page import="java.util.*, java.text.*" %> // <%@ page import="java.sql.Date" %>// contentType="text/html;charset=Shift_JIS"里面可以设置字符编码但是如果// 在pageEncoding中制定了那么在进行指定是无效的// 如何统一制定error页面// 当我在jsp_action.jsp使用int a=2/0;的时候就会跳转到ok.jsp不知道怎么的我自己抛出个异常他就不跳转了// 还有那个错误页面要指定为isErrorPage="true"没指定也是可以的// <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="ok.jsp"%>//isELIgnored这个属性用于页面是否忽略el表达式语言的使用2.taglib就是用于导入jsp标签的指令/***********************************************************************************/3.jsp标准标签库/***********************************************************************************///<s:catch var="ArithmeticException">//<%int a =2/0;%>//</s:catch> 相当于在try{}catch(){}块中执行>jsp标准标签有几个类别core-->一些比较常用的标签fmt-->用于格式字符窜如日期和数字等的标签functions-->用于调用字符窜操作如截取字符窜,数组长短等的标签sql-->用于数据库操作方面的标签xml-->用于xml操作方面的标签/***********************************************************************************/4.jsp标准动作/***********************************************************************************/>概要JSP一共有8个标准动作(element、forward、getProperty、include、plugin、setProperty、text和useBean)和5个只能出现在别的动作元素体内的子动作(attribute、body、fallback、param和params)。 //静态包含就是讲另外一个jsp页面执行后将这个jsp执行后的结果的html代码复制到本jsp中//><jsp:include page="a.jsp">///////////////////////////////////////////////////////////////这几个元素用于构造xml//<jsp:element name="employee">// <jsp:attribute name="name">张三</jsp:attribute>// <jsp:body>张三是销售部经理</jsp:body>//</jsp:element>//>>生成的xml//<employee name="张三">张三是销售部经理</employee>//////////////////////////////////////////////////////////////***********************************************************************************/