语言标准编辑
-
静态数据,如 HTML
-
JSP指令,如include指令
-
JSP脚本元素和变量
-
JSP动作
-
用户自定义标签
-
包含指令include –包含指令通知JSP编译器把另外一个文件完全包含入当前文件中。效果就好像被包含文件的内容直接被粘贴到当前文件中一样。这个功能和C 预处理器所提供的很类似。被包含文件的扩展名一般都是"jspf"(即JSP Fragment,JSP碎片):
-
页面指令page –页面指令有以下几个选项:
import
|
使一个JAVA导入声明被插入到最终页面文件。
|
contentType
|
规定了生成内容的类型。当生成非HTML内容或者当前字符集character set并非默认字符集时使用。
|
errorPage
|
处理HTTP请求时,如果出现异常则显示该错误提示信息页面。
|
isErrorPage
|
如果设置为TRUE,则表示当前文件是一个错误提示页面。
|
isThreadSafe
|
表示最终生成的servlet是否安全线程(
threadsafe)。
|
-
标签库指令taglib –标签库指令描述了要使用的JSP标签库。该指令需要指定一个前缀prefix(和C++的命名空间很类似)和标签库的描述URI:
-
out – JSPWriter用来写入响应流的数据
-
page – servlet自身
-
pageContext –一个PageContext实例包括和整个页面相联系的数据,一个给定的HTML页面可以在多个JSP之间传递。
-
request –HTTP request对象
-
response –HTTP response对象
-
session –
-
一种是声明标签,在JAVA SERVLET的类体中放入一个变量的定义。静态的数据成员也可以如此定义。
-
<%! int serverInstanceVariable = 1; %>
-
-
一种是脚本标签,在JAVA SERVLET的类的_jspService()方法中放入所包含的语句。
-
<% int localStackBasedVariable = 1; out.println(localStackBasedVariable); %>
-
-
一种是表达式标签,在JAVA SERVLET的类中放入待赋值的表达式,表达式注意不能以分号结尾。
-
<%= "expanded inline data " + 1 %>
-
jsp:include
|
和子过程类似,JAVA SERVLET暂时接管对其它指定的JSP页的请求和响应。当处理完该JSP页后就马上把控制权交还当前JSP页。这样JSP代码就可以在多个JSP页中共享而不用复制。
|
jsp:param
|
可以在jsp:include, jsp:forward或jsp:params块之间使用。指定一个将加入请求的当前参数组中的参数。
|
jsp:forward
|
用于处理对另一个JSP或SERVLET的请求和响应。控制权永远不会交还给当前JSP页。
|
jsp:plugin
| |
jsp:fallback
|
如果浏览器不支持APPLETS则会显示的内容。
|
jsp:getProperty
|
从指定的
JavaBean中获取一个属性值。
|
jsp:setProperty
|
在指定的JavaBean中设置一个属性值。
|
jsp:useBean
|
创建或者复用一个JavaBean变量到JSP页。
|
HTTP Status 500 - /JavaServerPage.jsp(2,18) quote symbol expected
TTP Status 500 - org.apache.jasper.JasperException: Unable to load class for JSP
严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 75 in the jsp file: /JavaServerPage.jsp
The method getDate() is undefined for the type JavaServerPage_jsp
2015-3-28 17:50:47 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.ClassNotFoundException: org.apache.jsp.JavaServerPage_jsp
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
JSP 代码body 部分
info : <br>
localip:<%=request.getRemoteAddr() %><br>
hostname:<%=request.getRemoteHost() %><br>
requestport:<%=request.getRemotePort() %><br>
server address:<%=request.getServerName() %><br>
serverport:<%=request.getServerPort() %><br>
request method:<%=request.getMethod() %><br>
requst url:<%=request.getRequestURI() %><br>
request protocol:<%=request.getProtocol() %><br>
receive custome info url:<%=request.getServletPath() %><br>
request info length:<%=request.getContentLength()%><br>
request query string:<%=request.getQueryString()%><br>
<div align="center">
<table>
<tr>
<th>姓名</td>
<td>id</td>
</tr>
<%
int i;
String color1="9cf";
String color2="8c3";
for(i=1;i<=10;i++)
{
String color="";
if(i%2==0) color=color1;
else color=color2;
out.println("<tr bgcolor="+color+">");
out.println("<td>姓名"+i+"</td>");
out.println("<td>"+i+"</td>");
out.println("</tr>");
}
%>
</table>
</div>
<div align="left">
<p><%=new Date() %></p>
</div>
<div>
<!-- for loops-->
<%
for(i=1;i<10;i++)
{
out.println(i*i);
}
%>