jsp:Java Server Pages 也就是java服务器端的页面,也和Servlet一样,用于动态web技术!
最大的特点:
浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet。所以当访问一个jsp页面的时候,其实也是在访问一个Servlet。服务器执行jsp时,会把jsp翻译成成Servlet。
//初始化 public void _jspInit() { } //销毁 public void _jspDestroy() { } //JSPService public void _jspService(.HttpServletRequest request,HttpServletResponse response)
final javax.servlet.jsp.PageContext pageContext; //页面上下文 javax.servlet.http.HttpSession session = null; //session final javax.servlet.ServletContext application; //applicationContext final javax.servlet.ServletConfig config; //config javax.servlet.jsp.JspWriter out = null; //out final java.lang.Object page = this; //page:当前 HttpServletRequest request //请求 HttpServletResponse response //响应
response.setContentType("text/html"); //设置响应的页面类型 pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true); _jspx_page_context = pageContext; application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); _jspx_out = out;
以上的这些对象我们都可以在jsp中直接使用!
在JSP页面中;
只要是 JAVA代码就会原封不动的输出;
如果是HTML代码,就会被转换为:
out.write("<html>\r\n");
这样的格式,输出到前端!
任何语言都有自己的语法,JAVA中有,。 JSP 作为java技术的一种应用,它拥有一些自己扩充的语法(了解,知道即可!),Java所有语法都支持!
注释分为输出注释和隐藏注释
在JSP中,声明表示一段Java源代码,用来定义类的属性和方法,声明后的属性和方法可以在JSP文件的任意地方使用。
语法:<%! 声明 %>
<%! static { System.out.println("Loading Servlet!"); } private int globalVar = 0; public void kuang(){ System.out.println("进入了方法Kuang!"); } %>
JSP声明:会被编译到JSP生成Java的类中!其他的,就会被生成到_jspService方法中!
在JSP,嵌入Java代码即可!
脚本程序是一段在客户端请求时先被服务器执行的Java代码,它可以产生输出,并把输出发送到客户的输出流,同时也可以是一段流程控制语句。
语法:<% 代码块 %>
<%--jsp脚本片段--%> //隐藏注释 <% int sum = 0; for (int i = 1; i <=100 ; i++) { sum+=i; } out.println("<h1>Sum="+sum+"</h1>"); %>
<% int x = 10; out.println(x); %> <p>这是一个JSP文档</p> <% int y = 2; out.println(y); %> <hr> <%--在代码嵌入HTML元素--%> <% for (int i = 0; i < 5; i++) { %> <h1>Hello,World <%=i%> </h1> <% } %>
page指令作用于整个JSP页面,定义了许多与页面相关的属性,这些属性将被用于和JSP容器通信,描述了和页面相关的指示信息。在一个JSP页面中,page指令可以出现多次,但是该指令中的属性只能出现一次,重复的属性设置将覆盖先前的设置。
语法: <%@ page attr1="value1" attr2="value2" … %>
注:page 指令的作用对整个页面有效,与其书写的位置无关,但习惯把 page 指令写****在 JSP 页面的最前面。
contentType属性
contentType
属性设置JSP页面和生成的响应页面的字符编码。 默认内容类型为:text/html
,它是HTML页面的标准内容类型。
如果要从JSP输出为XML,请使用以下page
指令
<%@ page contentType = "text/xml" %>
errorPage属性
如果希望在当前页面运行时出现错误时,指定一个错误提示页面,那么errorPage
属性告诉JSP引擎显示哪个页面。errorPage
属性的值是相对URL。
当抛出所有未捕获的异常时,以下指令用于在页面出错时指定显示MyErrorPage.jsp
的内容
<%@ page errorPage = "MyErrorPage.jsp" %>
include指令用于在JSP页面中静态包含一个文件,该文件可以是JSP页面、HTML网页、文本文件或一段Java代码。使用了include指令的JSP页面在转换时,JSP容器会在其中插入所包含文件的文本或代码,同时解析这个文件中的JSP语句,从而方便地实现代码的重用,提高代码的使用效率。
i语法: <%@ include file="relativeURL" %>
<%@ include file="date.jsp" %> <h1> 阳光明媚 </h1>
include指令的主要功能会将两个页面合二为一 上面的代码就是会将date.jsp页面和 < h1>所在的页面合二为一。
该动作标签告诉 JSP 页面动态包含一个文件,即 JSP 页面运行时才将文件加入。与静态插入文件的 include 指令标签不同,当 JSP 引擎把 JSP 页面转译成 Java 文件时,不把JSP 页面中动作指令 include 所包含的文件与原 JSP 页面合并一个新的 JSP 页面,而是告诉Java 解释器,这个文件在 JSP 运行时(Java 文件的字节码文件被加载执行)才包含进来。如果包含的文件是普通的文本文件,就将文件的内容发送到客户端,由客户端负责显示;如果包含的文件是 jsp 文件,JSP 引擎就执行这个文件,然后将执行的结果发送到客户端,并由客户端负责显示这些结果。
<jsp:include page="/common/header.jsp"/> <h1>网页主体</h1> <jsp:include page="/common/footer.jsp"/>
page: 要包括的页面的相对URL。
jsp:include:拼接页面,本质还是三个 和include指令有一定的区别 前后是拼接,后者是将网页合并