一.编译器指令
1.include<%@ include file="相对位置"> //静态导入,是在servlet引擎转译时,就把此文 件内容包含进去(两个文 件的源代码整合到一起,全部放到jspService方法中),所以只生成一 个servlet,所以两个页面不能由同名的变量。运行效率高一点点,耦合 性较高,不够灵活<jsp:include page="相对位置"></jsp:include>//动态导入,是在servlet引擎转译后,请求的此页面,所以共生成 了两个servlet ,所以可以有同名的变量生成两个servlet,相当于两 个类之间的调用,耦合性较低,非常灵活
2.page<%@page contentType="text/html;charset=utf-8"%> //设置内容类型,字符集编码
<%@page import="java.util.*,java.lang.*"%> //导入包,多个包用逗号隔开
<%@page errorPage="error.jsp"%> //发生异常时跳转的页面
<%@page session="false"%> //是否自动建立session,默认为true
3.taglib<%@taglib uri=""%>
二.脚本语法
1.注释: <!--...-->HTML注释,servlet中会生成,会发给浏览器<%--...--%>隐藏注释,servlet中不会生成,不会发给浏览器
2.声明:<%!...%> //可以声明变量和方法,如<%!
int i=3;
void test(){
System.out.println("test");
}
%>
3.表达式:<%=...%> //相当于out.print(...),如<%
int d=3;
%>
<%=d%> 输出3
4.java脚本段:<%...%>
3、动作指令
<jsp:forward>用于请求转发!标签以后的代码,将不会执行!<span style="font-size:14px;"><jsp:forward page=...>
<jsp:param value="" name=""/>
<jsp:param value="" name=""/>
</jsp:forward>
<%String a=...;%>
<jsp:forward page="<%=a %>"></jsp:forward></span>
<jsp:include>包含一个静态或动态文件
<span style="font-size:14px;"><jsp:include page="..."></jsp:include>
<%String a=...;%>
<jsp:include page="<%=a %>"></jsp:include>
<jsp:include page="...">
<jsp:param value="" name=""/>
<jsp:param value="" name=""/>
</jsp:include></span>
<jsp:plugin>
<jsp:getProperty><jsp:setProperty>
<jsp:useBean>创建一个Bean实例并指定他的名字和作用范围。getProperty,setProperty结合 useBean使用,一般用于读写bean的属性
<span style="font-size:14px;"><%@ page contentType="text/html; charset=utf-8" import="com.zucc.demo.User" %>
<html>
<head></head>
<body>
<jsp:useBean id="u1" class="com.zucc.demo.User" scope="page"></jsp:useBean>
<%--
<%
//和上面的代码功能相同
pageContext.setAttribute("u1", new User());
%>
--%>
<jsp:setProperty property="username" name="u1" value="zhangsan"/>
<jsp:setProperty property="password" name="u1" value="123456" />
<%--
<%
//和上面的代码功能相同
User user=(User)pageContext.getAttribute("u1"); //作用域的寻找顺序:pageContext/request/session/application
user.setUsername("zhangsan");
user.setPassword("123456")
%>
--%>
<jsp:getProperty property="username" name="u1"/>
<%--
<%
//和上面的代码功能相同
User user=(User)pageContext.getAttribute("u1");
out.println(user.getUsername());
%>
--%>
</body>
</html></span>
四.九大内置对象
request:代表来自客户端的请求,常用方法getParameter(),getParameterValues(),
getParameterNames(),来获取请求对象中所包含的参数的值
response:代表对客户端的相应,一般不使用,建议使用“out”
out:代表向客户端发送数据,内部包含一个缓冲区,所以需要一些对缓冲区进行操作的方法
session:代表服务器和客户端所建立的会话,当需要在不同的jsp页面中保留客户信息的情况下使用
application:负责提供应用程序在服务器中运行时的一些全局信息,常用方法有getMimeType()和getRealPath()
pageContext:页面上下文对象,封装了当前jsp页面的运行信息,它提供了返回jsp页面的其他隐藏对象的方法: getRequest(),getResponse(),getPag(),,getOut()getServletContext(),getSession(),getException(), getServletConfig()
pageContext.forward(...);相当于request.getRequestDispatcher(...).forward(request, response);
pageContext.include)(...);相当于 request.getRequestDispatcher(...).include(request, response);
config:提供一些配置信息,常用的方法有getInitParameter()和getInitParameterName(),以获得Servlet初始化使 得参数。
page:代表了正在运行的得由JSP文件产生的类对象,一般不建议使用。
exception:代表了JSP文件运行时所产生的例外对象,次对象不能在一般的JSP文件中直接使用,而只能在使用 了"<%@ page isErrorPage="true"%>"的JSP文件中使用。