JSP
1.JSP (java Server Page) java服务页面
2.JSP和Servlet一样,都可以为我们提供动态的HTML响应,它与Servlet 唯一不同的就是:Servlet 以 java 代码为主,
而JSP 以 html为主然后内嵌少量的java代码。
3.Jsp 和 Servlet 的关系
JSP 经过转译和编译最终形成了一个servlet类,servlet类经过构造调用初始化形成一个servlet对象,这个servlet对象可以源源不断地为客户端提供服务,直到Servlet对象销毁。
4.JSP基本语法
(1)声明区
语法:<%! 声明内容%>
作用:用来定义变量 或者 定义方法
(2)表达式
语法:<%=对应的表达式%>
作用:用来取变量 或者 对象对应的值,也可以调用方法
(3)代码块
语法:<%这里进行java代码的编写%>
作用:编写java代码
5.JSP中的注释
<!-- 标记语言的注释,可以发送给客户端-->
<%--JSP注释,不会发送到客户端--%>
【提示::在代码块中可以使用java注释】
6.JSP中的指令
(1)指令的语法格式
<%@指令名 指令属性=“值” 指令属性2=“值2”%>
(2)JSP 中的三大指令和常见的属性
A. page指令 用于导包 和 页面属性的设置
import 用于导包
contentType 用于显示和编码格式
pageEncoding 用于页面保存编码
isErrorPage 用来指定是否是错误页面 默认是false
erroerPage 当页面出错时,可以通过这个属性跳转到对应的错误页面
B. taglib指令 标签库指令,用来指点对应的标签库引入
prefix 标签库的简写 标签库前缀
uri 统一资源标识 用来指定标签库的位置
C. include指令 包含指令,用于包含对应的页面
file 用来指定被包含页面的位置路径
jsp include指令 又叫静态包含,它会先把被包含页面的内容加载到
对应的页面,在把对应的页面转换成servlet,这样最终只有一个jsp变
成 servlet。
7.JSP中的动作
(1)包含动作
<jsp:include page="被包含页面的路径">
用来包含指定的jsp或者html页面,这个包含动作也叫动态包含,
它会先把被包含页面转换成对应的servlet 然后在进行包含,
所以这样有两个servlet产生,包含页面还可以向被包含的页面
传递数据。
使用<jsp:param name=" " value=" "/>
(2)转发动作
<jsp:forward 转发动作>
<jsp:param name=" " value=" "/>
8.JSP中的九大内置对象
(1)out JSPWriter 向jsp页面输出内容
(2)request HttpServletRequest 封装Http请求信息
(3)response HttpServletResponse 封装Http响应信息
(4)application ServletContext 针对应用程序封装的对象
(5)pageContext PageContext 针对页面上下文(环境)的对象
(6)page Object JSP页面本身对应的对象
(7)config ServletConfig 获取Servlet配置信息
(8)exception Throwable 封装异常信息的对象
(9)session HttpSession 封装会话信息
9.九大内置对象对应的API
(1)out 对象
输出流对象,和PrintWriter区别是,out对象哪里出现写哪里,PrintWriter必须从页面的头开始输出。对应的API println
(2) request对象
getCookies() 获取请求路径对应的Cookie信息
getMethod() 获取请求方式 get post put delete
getQueryString() 获取url问号后面的部分
getServletPath() 获取servlet的请求路径
getRequestURI() 获取项目名和项目名后面的部分
getRequestURL() 获取包含协议、主机端口、项目名、servlet路径部分
getSession(true) 没有session对象会自动创建一个
getSession(Boolean b) 没有session对象不会创建
getAttribute(key) setAttribute(key,value)
removeAttribute(key) 对属性值的操作
getParameter(key) getParameterValues(key)请求参数
setCharacterEncoding(encoding) 设置编码
getLocalAddr() 获取服务器地址
getRemoteAddr() 获取客户端地址
getRequestDispatcher(pagepath) 获取请求的转发器
(3)response对象
Http中的状态码:500服务器错误 200请求成功
404路径错误 302重定向
addCookie(Cookie cookie) 添加Cookie
encodeRedirectURL(path) 重写url对path进行了一个;jsessionid的拼接
sendRedirect(path) 实现重定向
setContentType(“text/html;charset=utf-8”) 设置响应格式和编码
getOutputStream() 得到向客户端输出的输出流
(4)session对象
getId() 获取session对象的id
getAttribute(key) setAttribute(key,value) removeAttribute(key) 对属性值的操作
invalidate() 让session失效,让session中的数据和session对象解绑
setMaxInactiveInterval(seconds) 设置最大不活动时间
(5)application对象
getAttribute(key) setAttribute(key,value) removeAttribute(key) 对属性值的操作
getRealPath(webContent下的文件夹) 获取文件夹对应的磁盘真实路径
(6)pageContext对象
getAttribute(key) setAttribute(key,value) removeAttribute(key) 对属性值的操作
getXXX() 获取其它内置对象
如 getOut() getRequest()
(7)page对象 页面本身
(8)config对象
getInitParameters(String name) 根据初始化参数的名字获取值
getServletContext() 获取servlet上下文对象 即application
(9)exception对象
只能在错误页面中使用 isErrorPage=”true”
getMessage() 获取错误消息
printStackTrace() 打印堆栈信息
可以通过web.xml配置全局异常处理,也可以说使用errorPage指定局部页面异常处理
10.JavaBean
(1)概念:javaBean是一个可以被重复使用的组件
规则:A.要有一个包结构,类型是公开的
B.成员变量私有化,并提供get set 方法
C.要带有无惨构造器
D.需要被外界访问,方法都是public的
E.一般要实现序列化接口
(2)JavaBean在jsp中的使用
A.导包,然后创建javaBean对象
B.<jsp:useBean 动作完成 scope=“”page|request|session|application“”>
<jsp:setProperty property="属性名" value="属性值" name="对象id" />
【取值 可以使用 表达式 或 代码块】
<jsp:getProperty property="属性名" name = " 对象id" />
11.MVC设计模式
Model 模型层 javaBean
封装数据、封装数据的访问、封装业务逻辑
View 视图层 html 或 jsp
展示数据、展示操作、发起操作
Controller 控制层 Servlet
流程控制、页面跳转、调用服务层准备一份模型层的数据