一、JSP引言
JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计。它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
作用:替代在java web开发中负责显得的Servlet。
二、jsp编程语法
1、脚本
a、输出脚本(表达式脚本)
作用:用于把java表达式的结果,输出到页面中。
语法:<%=java表达式%>
b、声明脚本
作用:用于声明(定义)变量或者函数。
语法:<%!java语法 声明变量或者函数%>
注意:声明脚本中声明的内容,只能用于输出脚本或者普通脚本。
c、普通脚本
作用:可以应用一切的java语法,除了定义函数。
语法:<% java语法 %>
注意:脚本与脚本、脚本与html标签是不能嵌套的。
2、指令
a、page
<%@page attribute1=value1 attrubute2=value2%>
(1)language="java"
(2)contentType="text/html;charset=UTF-8"
其中的charset=UTF-8,表示的是服务器相应client浏览器的编码方式。
(3)pageEncoding="UTF-8"
这个代表的是jsp转换成java源文件的字符集编码。
(4)import="包1,包2"
(5)session="true|false"
true(默认):如果当前没有创建session,则创建session,有session的话,直接使用该session。
false:如果当前有session,则使用该session,如果没有,则不应用session。
(6)isElIgnored="true|false"
true:忽略EL表达式。
false(默认):不忽略EL表达式。
(7)errorPage
指定当发生错误时,跳转到该页面。
(8)isErrorPage
指定当前页面是否为错误页面
b、include
静态包含,源代码包含,将不同的jsp页面整合到同一个页面中。
不建议在开发中使用,风险多。
c、taglib
作用:引入jsp中的标签库
<%@taglib uri="" prefix="">
3、动作
a、include
动态包含,输出包含,推荐使用这种包含,代码没有入侵性。
b、forward
jsp之间的跳转(没有任何意义)
4、内置对象
在jsp中的输出脚本,或者普通脚本中,不用创建便可以直接使用的java对象。
a、request
相关操作:
request.setAttribute();
request.getAttribute();
request.getContextPath(); //用于动态获取应用名
b、response(不怎么用)
c、session
相关操作:
session.setAttribute();
session.getAttribute();
d、application(ServletContext作用域)
e、out
用于页面输出,等价于<%= %>
f、config(ServletConfig)
g、exception
这个内置对象只能使用在声明isErrorPage的jsp页面中,代表上一张发生错误的页面产生的异常。
h、page
代表当前的jsp页面,类似于this。
i、pageContext
(1)pageContext可以获得其他的8种内置对象
pageContext.getRequest();
pageContext.getResponse();
pageContext.getOut();
....
(2)pageContext是一个作用域(request,session,application)
pageConetxt在本页面有效。
pageContext.setAttribute();
pageContext.getAttribute();
(3)pageContext可以操作设置其他的作用域
pageContext.setAttribute("key","value",PageContext.REQUEST_SCOPE);
pageContext.getAttribute("key",PageConetxt.REQUEST_SCOPE);
...