1、jsp 介绍
- 什么是jsp?
jsp(Java Server Page),用户角度看待,其实也是一个网页;程序员角度,其实就是一个java 类,它继承了servlet,所以可以直接说jsp 就是一个servlet。 - 为什么会有jsp?
html 多数情况下用来显示静态内容,一成不变的。但是有时候我们需要在页面上显示一些动态数据,比如:查询所有的学生信息,根据姓名去查询某个学生。这些动作都需要去查询数据库,然后显示在页面上。html 不支持java代码,jsp 中可以写java 代码。
2、JSP三大指令
用法:<%@ 指令名字 %>
page指令
- language,表名jsp页面可以写java 代码。
- contentType,指明这个文件是什么类型,告诉浏览器我是什么内容类型,以及使用什么编码。
contentType=“text/html,charset=utf-8”,text/html MIMEType 这是一个文本,html网页 - pagEncoding,jsp 内容编码
- import,导包使用的,一般不用手写
- session,可选的值有true 和false,用于控制在这个页面中是否能使用session 对象。如果设置成true,那么可以调用getSession(),false的话,没有session对象调用,页面上也就自然不能使用session。
- errorPage,指的是错误的页面,只需要给出错后跳转的页面路径(即错误的页面路径)。
- isErrorPage,上面的errorPage 用于指定错误的时候跳转到哪个页面,这个isErrorPage 用于声明某一个页面就是错误的页面。二者搭配使用。
include命令
静态包含,包含另外一个jsp 的内容进来,即把另外一个页面的所有内容拿过来一起输出,所有的标签元素都包含进来。
taglib命令
3、JSP动作标签
- jsp:include,包含指定的页面,这里是动态包含。也就是不把包含页面的所有元素标签全部那过来输出,而是把它的运行结果拿过来。
- jsp:forward,前往哪一个页面,等同于以下代码:
- jsp:param,在包含某个页面的时候,或者在跳转某个页面的时候,加入这个参数。
在other02.jsp 中获取参数:
4、JSP九大内置对象
所谓内置对象,就是我们可以直接在jsp 页面中使用这些对象。不用创建。下面是四大作用域(表示这些对象可以存值,他们的取值范围有限定。):
- pageContext,类型PageContext,作用域值仅限于当前页面,还可以获取到其他八个内置对象。
- request,类型HttpServletRequest,作用域仅限于一次请求,只要服务器对该请求做出了响应,这个域中存的值就没有了。
- session,类型HttpSession,作用域仅限于一次会话(多次请求和响应)中。
- application,类型ServletContext,整个工程都可以访问,服务器关闭后不能访问。
- out,类型是JspWriter
- response,类型是HttpServletRespnse
- exception,类型是Throwable
- page,类型是Object,就是这个jsp翻译成的java 类的实例对象
- config,类型是ServletConfig
5、EL表达式
为了简化jsp 代码,具体一点就是为了简化在jsp 里面的那些java 代码。用法:${ 表达式 }
使用EL表达式取作用域中的值
使用EL表达式取数组中的值
使用EL表达式取集合中的值
使用EL表达式取map 中的值
注意:
6、EL表达式的11个内置对象(隐式对象)
${ 对象名.成员 }
- pageContext
作用域相关对象
- pageScope
- requestScope
- sessionScope
- applicationScope
参数信息相关对象
- param
- paramValues
头信息相关对象
- header
- headerValues
- cookie
全局初始化参数
- initParam
7、JSTL基本用法
Java Standard Tag Library,jsp 标准标签库。简化jsp 代码编写,替换<% %>写法,一般与EL 表达式配合使用。
导入jar 包
在jsp 页面上,使用taglib 指令,来引入标签库。注意,引入1.1版本的标签库,1.0版本不支持EL 表达式。
常用标签
- c:set
- c:if,判断test 里面的表达式是否满足,如果满足,就执行c:if 标签中的输出,没有else。
定义一个变量名flag ,去接收前面表达式的值,存在session域中
- c:forEach
8、案例 - 学生管理系统
login.jsp
UserDao.java
UserDaoImpl.java
JDBCUtil.java 工具类
jdbc.properties
Student 实体Bean
略
StuDao.java
StuDaoImpl.java
loginServlet.java
stu_list.jsp