1 JSP基本语法 2 3 指令 <%@ 指令%> 4 JSP指令是JSP的引擎 5 主要的两种指令是page和include(taglib) 6 <%@ page import="java.util.*" %> 7 8 声明 <%! 声明%> 9 <%! int i = 0; %> 10 11 可以直接使用在<% @ page %>中被包含进来的已经声明的变量和方法,不需要对它们重新进行声明。 12 13 14 表达式 <%= 表达式%> 15 <font color="blue"><%= map.size() %></font> 16 17 18 代码段/脚本段 <% 代码段%> 19 <% 20 String name = null; 21 if (request.getParameter("name") == null) { 22 %> 23 24 注释 <%-- 注释--%> 25 26 --------------------------- 27 JSP的动作 28 jsp:include:在页面被请求的时候引入一个文件。 29 jsp:useBean:寻找或者实例化一个JavaBean。 30 jsp:setProperty:设置JavaBean的属性。 31 jsp:getProperty:输出某个JavaBean的属性。 32 jsp:forward:把请求转到一个新的页面。 33 jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。 34 35 36 <jsp:include page="relative URL" flush="true" /> 37 <jsp:include page=" /page1.html" flush="true"/> 38 或者 39 <%@ include file="/header.jsp"%> 40 41 42 jsp:useBean动作 43 在JSP文件被转jsp:useBean动作用来装载一个将在JSP页面中使用的JavaBean。这个功能非常有用,因 44 45 为它使得我们既可以发挥Java组件重用的优势,同时也避免了损失JSP区别于Servlet的方便性。 46 此动作用来生成一个bean组件,并设定它的id号及使用范围 47 48 <jsp:useBean id=”beanName” scope="page|request|session| 49 50 application|"class="package.class” type="package.class" beanName="{package.class|< 51 52 %=expression%>} type="package.class"">action for bean </jsp:useBean> 53 54 ---------------------------------上午 55 五种基本语法 56 指令、声明、表达式、代码段/脚本段、注释 57 58 JSP执行原理: 59 webapps:发布的项目在这里 60 work:真正运行的工作环境 61 62 JSP就是Servlet(从work下查看one_jsp.java文件) 63 64 表达式相当于out.write(xxx) 65 66 以后要是JSP有问题的,就到底层去查看servlet源码 67 68 -----JSP指令 69 page指令:只需了解 language、import、pageEncoding 70 71 include指令: 72 <%@ include file="one.html"%> 73 //只能引入静态文件 74 在jsp转换为Servlet的时候引入文件 75 76 77 ----JSP动作 78 <jsp:include page="" flash="true"/> 79 在页面请求的时候动态的加载进去 80 //注:动态比静态好 81 82 jsp:useBean jsp1.0-1.2 83 84 85 <jsp:forward page="one.jsp"> 86 //服务端跳转 87 88 -----JavaBean 89 是一个比较复杂的概念,但是在jsp中使用较为简单 90 91 简单javabean:一个类 需要提供: 92 1、所有相关属性 私有化 93 2、提供属性的 set get 方法 94 3、提供无参的构造函数 95 4、实现序列化接口(************了解)//适用于网络应用 96 97 98 EJB: 3种 bean对象 99 100 使用JavaBean: 101 102 <jsp:useBean id="test" scope="page" class="xxx"/> 103 104 //解释 105 //Object o=session.getAttribute("test"); 106 //if(o==null){ 107 //Student test=Class.forName("xxx").newInstance(); 108 //session.setAttribute("test",test); 109 //} 110 111 注意:这就是为什么在控制台中syso("构造函数名") 112 request每次都显示,而session只显示一次,由以上代码可看出 113 114 115 116 117 <jsp:getProperty name="test" property="sname"/> 118 //在页面中显示属性name的值 119 120 <jsp:setProperty name="test" property="age" value="30"/> 121 //value与param 只能有一个存在 122 123 //第二种方式,在useBean里设置setProperty 124 125 126 127 jsp:四种范围 128 page:页面范围 当前页面 比request还要窄 129 request: request 130 session: session 131 application: servletContext 132 133 134 -----------九大内置对象 135 <% 136 1、pageContext //page范围 Servlet没有此范围,JSP独有 137 pageContext.setAttribute("name","page"); 138 139 2、request:相当于Servlet中的request 用法一样 140 request.setAttribute("name","request"); 141 //Servlet中为request.setAttribute(name,value) 142 143 3、session:相当于Servlet中的session 144 session.setAttribute("name","session"); 145 //Servlet中为request.getsession().setAttribute(name,value) 146 147 4、application:相当于Servlet中的servletContext 148 application.setAttribute("name","application"); 149 //Servlet中为request.getsession().getServletContext().setAttribute(name,value) 150 151 5、response:相当于Servlet中的ServletResponse 152 response.sendRedirect(); 153 //Servlet中为response.sendRedirect("/项目名/路径名"); 154 155 6、out:相当于Servlet中的response.getWriter(); 156 out.write("0000000"); 157 //Servlet中为PrintWriter out = response.getWriter(); out.println("<HTML>"); 158 159 7、config:相当于Servlet中的servletConfig 160 //out.write(config.getServletName()) 161 162 8、page:JSP网页本身 163 //使用方式为pageContext.setAttribute("name","page"); 164 //即pageContext是page的对象 165 166 9、exception:针对错误网页,未捕捉的例外 167 //在JSP指令中使用,即 isErrorPage="true|false" 168 169 %> 170 171 172 173 174 175 176 177 178 179 180 ---------------------------------备注 181 等EL表达式上完了,接下来两个星期小组做项目 182 要需求文档、阶段设计、说明书等 183 等下周EL结束!!!