JSP(java server page):静态HTML+动态java脚本。实际生成Servlet,一种"java小程序"
Web应用结构
<webDemo>
|-WEB_INF
| |-classes -保存单个.class文件
| |-libs -保存打包后的JAR文件
| |-web.xml -配置描述符
|-<a.jsp> -放在根目录即可访问
基本语法
1. 注释 <%--something--%>
2. 声明 <%! 声明部分 --%>
3. 输出 <%= 输出表达式值 %>
4. 脚本 <% something %>
编译指令:<%@编译指令名 属性名="属性值" …%>
1. <%page [language=""][extends=""]…%>
2. <%include file=".jsp"%>
3. taglib 用于定义和访问自定义标签
动作指令
1. forward
<jsp:forward page="">
{<jsp:param…/>}
</jsp:forward>
用户请求的地址,即地址栏的URL没有改变,客户端的请求参数也不会丢失。
2. include
<jsp:include page="" flush="true">
<jsp:param name="" value=""/>
</jsp:include>
仅仅导入页面的body部分。flush指定输出缓存是否转移到被导入文件中。
3. useBean、setProperty和getProperty
与Javabean相关。
<jsp:useBean id="name" class="classname" scope="page|request|session|application"/>
<jsp:setProperty name="BeanName" property="propertyName" value="value"/>
<jsp:getProperty name="BeanName" Property="propertyName"/>
4. plugin
主要用于下载服务器端的JavaBean或Applet到客户端执行。使用场景不多。
5. param
与jsp:include、jsp:forward、jsp:plugin结合使用。使用request内置对象获取。
内置对象
1. application:jsp对应的web应用本身
a. 让多个JSP、Servlet之间共享数据
b. 获得Web应用配置参数
2. config:该jsp的配置信息
3. exception:代表其他页面的异常和错误
4. out:输出流
<%=...%>表达式的实质就是out.write();
5. page:该页面自身,等同于this
6. pageContext:该jsp上下文
访问page|request|session|application范围内的JSP之间的共享数据
7. request:获取客户端请求参数
a. 获取请求头、请求参数;
b. 操作request范围的属性
c. 执行forward或include
8. response:代表服务端对客户端的响应
a. response响应生产非字符响应
b. 重定向,此时丢失所有的请求参数和request范围的属性,相当于生成第二次请求
c. 增加Cookie
9. session:代表一次会话,整个客户端浏览器与站点建立连接到客户端关闭浏览器的过程。