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结束!!!