一、Jsp基础
什么是JSP?
jsp,即 java server pages,java服务器页面,运行在服务器端的页面。它是由sun公司倡导,许多国际性大公司参与,一起建立的一种动态网页技术。JSP技术是在传统静态网页HTML文件中插入java代码片段和JSP标签后形成的一种文件,其后缀名为.jsp。使用JSP开
发的Web应用是跨平台的,既能在Linux上运行,也能在其他操作系统上运行。
JSP的java代码块
JSP的java代码块也称为JSP小脚本,是以<% %>括起来的部分,其中可以编写java代码。编写在java代码块中的代码,会被JSP翻译引擎置入到Servlet的_jspService()方法中作为方法中的java语句出现。所以,其中存放的必须是以分号结尾的java语句。
需要注意的是,JSP代码块可以放置在JSP页面的任意位置,可以放置任意数量。但他们都会被按照顺序放置到Servlet的_jspService()方法中。也就是说,其执行顺序是于其在JSP页面中出现的顺序是一致的。
<% double sum=0; %>
<% int count=3; %>
<% double price=2.5; %>
<% sum = count*price; %>
JSP的声明语句块
在JSP页面中使用<%! %>括起来的部分,称为声明语句块。声明语句块中的内容,将被JSP引擎翻译到Servlet的类体中。
这样的话,在JSP的声明语句块中就可声明实例变量、实例方法、静态方法、静态代码块等内容。并且,这些内容均可被JSP的java代码块中的代码访问。因为他们原本是一个Servlet类中的代码。不过,还是不建议在JSP的声明语句块中声明实例变量。因为JSP是运行在单例多线程环境下的,实例变量会引起线程安全问题。
JSP的表达式块
在JSP页面中使用<%= %>括起来的部分,称为表达式块。其可在JSP页面中输出变量、常量,及他们组成的各种表达式的值。注意,是表达式,而不是语句,是没有分号的。该表达式将被JSP引擎翻译到_jspService()方法的out.write()方法中输出。
二、Jsp核心
内置对象
在JSP的java代码中,表达式块等中可以直接使用的引用,称为JSP的内置对象。常用的内置对象有9个:
- pageContext:其具一个只在当前页面范围的域属性空间;用一些get方法可以获得其他8个内置对象
- request:
- sessio
- application:
- response:
- config:
- out:
- page:
- exception:
这九个对象在JSP的java代码块、表达式中可以直接使用。之所以可以直接使用,是因为java代码块与表达式块被JSP引擎翻译后均出现在Servlet的_jspService()方法中。而这九个对象,就是_jspService()方法中的局部变量。在JSP的java代码块、表达式中的代码就是_jspService()方法中的代码,所以在其中可以直接使用。
以session为例:
<%session.setAttribute("sum1","sum"); %>
session=<%=session.getAttribute("sum1") %>
以out为例:
<% String sum1 =(String)session.getAttribute("sum1");
out.print("sum"+sum1); %>