Jsp:
Servlet 负责响应请求,产生动态数据,存在request中,forward数据给jsp显示
JSP执行过程:服务器将JSP翻译成servlet,并将 servlet编译成.class文件执行。
Jsp翻译成servlet中,会提供8大对象。标签,换行用out.write翻译,java代码部分不变。
JSP语法:
语法:模板元素
原来html中的内容,都是模板元素
语法:脚本表达式
<%=变量或表达式%>,括号中不能有分号
中间是表达式,则是标本表达式,用来输出变量的值。
变量或表达式会被out.write 原封不动的翻译过去
<%
多行JAVA代码
%>
中间是代码,则是脚本代码,中间可以有分号
Java代码会被翻译到 service方法中。
<%! // JSP声明, 会被翻译成 servlet中的静态代码块,成员变量和方法
Public void run(){
}
%>
多个脚本片段组合后的结果必须是完整的java语句
不推荐在JSP中嵌
入JAVA代码。
JSP注释:
<%--注释--%>
JSP指令:
指令不输出任何数据,而是告诉JSP引擎如果处理JSP页面的其余部分。
JSP 的3种指令:page ,include,taglib。Taglib和标签相关。
指令的基本语法格式:
<%@ 指令 属性名=“值”%>
例如:<%@ page contentType="text/html;UTF-8"%>
一个指令有多个属性,可以写在一个指令里,也可以分开来写。
JSP指令: page指令
Page指令用于定义JSP页面的各种属性,推荐放在JSP页面的起始位置。
完整语法:
<%@ page
language="java"//嵌入的是否java代码
extends="package.class"//翻译后的servlet 的父类是谁
Import="java.util.Date"//导包。
Session="true" //是否创建session.默认为TRUE
Buffer="8KB"//输出给浏览器的缓冲大小
autoFlush="true"//缓冲满了,自动刷新
isThreadSafe="false"
Info="text"
errorPage="错误页面相对地址/相对于工程"
isErrorPage="true"//指定当前页面是否是错误页面,会创建exception 对象
contentType=""//设置页面类型
pageEncoding=""//设置页面编码方式
isElIgnored="true"//是否使用了El表达式
%>
错误页面配置到xml中,可以成为全局错误页面
专门新建一个errors文件夹,处理各种常见的错误页面
错误页面要大于1K,否则可能不显示
错误页面的page指令的isErrorPage属性设置为True,服务器调用错误页面时,会将异常封装到exception对象中传给页面。此时JSP会有第9大隐士对象exception.
根据异常类型配置:
<error-page>
<exception-type>异常的完整类名</excetpion-type>
<location>/error/error.jsp</location>
</error-page>
根据状态码配置:
<error-page>
<error-code>404</error-code>
<location>/error/error.jsp</location>
</error-page>
JSP乱码问题:
解决办法:
<%@ page pageEncoding=
"UTF-8" content-type="text/html;charset=gb2312"%>
开发中pageEncoding设置后,content-type系统会自动设置
Jsp指令:include
Include指令用于引入其他JSP页面。被引入的JSP中不能包含HTML标签
引入的JSP和原来的JSP,会被翻译到同一个servlet中。
<%@ include file="/head.jsp"%>
细节:
是给服务器用的,/ 代表当前WEB应用
被引入文件可以用任意扩展名,建议使用.jspf
被引入JSP和原来的JSP指令不能冲突
JSP指令:taglib
用于导入标签库
9大隐士对象:
Request,response,out,session,exception,application,config,
page,pageContext
Application是seveltContext 类型,代表整个应用。
Config 是servletConfig类型
Page代表页面本身
pageContext
Out是JspWriter writer的子类
带缓存功能的输出流,可通过page的buffer属性指定缓冲大小或关闭
out细节:
因为标签和空格是用out输出,所以,JSP中使用字节流会出异常
解决办法:删除所有的标签和空格
pageContext对象:JSP中最重要对象,代表JSP页面的运行环境。
封装了对其他8大对象的引用,本身也是域(可存取数据),封装了WEB开发的常用操作(引入,跳转等)。
通过pageContext获得其他隐士对象:
参考JSP文档
getException()
getPage()
。。。。。
setAttribute("name","xxxxxx");//数据的作用域限于当前页面
getAttribute();
removeAttribute();
4大域:pageContext----request-------session--------application
pageContext还提供了访问其他域的方法:
pageContext.getAttribute("data",PageContext.REQUEST_SCOPE);//第二个参数指定要访问的域
pageContext.setAttribute("data","xxx",PaContext.APPLICATION_SCOPE);
pageContext.setAttribuete("data","xxx");//不指定域,则是在pageContext域
自动依次从4个域中查找数据:
pageContext----request-------session--------application
pageContext.findAttribute("data");//4个域都没有才返回NULL
pageContext定义了一个forward方法和2个include方法来简化和替代
reqeustDispatcher.forward 方法和include方法。
方法中的资源地址/ 代表当前WEB应用
pageContext.forwoard("/message.jsp");
pageContext.include("/head.jsp");//会翻译成2个servlet
<%@ include file="/head.jsp"%>//会翻译成一个servlet,效率高(推荐)
JSP标签:
也称jspAction ,JSP动作元素
JSP常用标签:
<jsp:include>//<jsp:include page="/1.jsp"></jsp:include>
<jsp:forward>实现转发
<jsp:param>//<jsp:param name="data" value=""/>可以设置参数
引入页面就有了3种方式:
推荐使用标签和指令。
pageContext.include()
<%@ include file=""%>
<jsp:include=""></jsp:include>
JSP地址映射:
默认不需要映射。
可在XML中映射成其他地址:
<servelt>
<servlet-name>xxxx</servlet-name>
<jsp-file>/5.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servelt-name>xxxx</servlet-name>
<url-pattern>/1.html</url-pattern>
</servlet-mapping>
Jsp错误检查:
1.JSP语法错误//不能编译成class
2.翻译成Servlet错误 //不能装载这个类
3.Servlet运行时错误//service抛异常
WEB开发的4个域对象:
域的作用范围:就是域对象的生命周期
pageContext:页面范围内
Request:请求范围内。产生的数据看完就没用的东西(例如:新闻)
Session:会话范围内。第一次访问创建,30分钟后销毁(产生的数据现在看完,等会儿还要用,例如购物车,验证码)
Application:产生的数据,自己用完了,等会儿别人还要用。(聊天)
请求转发:是同一次请求,可以存储到request中
请求重定向:是2次不同的不同的请求,不同的request,所以不能存储到request中。
相关推荐
**JSP隐式对象详解** JavaServer Pages (JSP) 是一种用于开发动态网页的技术,它允许开发者在HTML代码中嵌入Java代码。在JSP中,有一些预先定义好的对象,被称为“隐式对象”,这些对象可以直接在JSP页面中使用,...
"JSP 九大隐式对象详解" JSP 九大隐式对象是指在 JSP 编程中可以直接使用的九个内置对象,这九个对象分别是:request、response、session、application、out、pageContext、config、page、exception。下面对每个...
03-JSP隐式对象.ppt
TP4 JSP 隐式对象TP4
### EL表达式 隐式对象 ...通过掌握 EL 的基本语法和隐式对象,开发者可以更加高效地处理页面数据,提高开发效率。同时,EL 与其他技术(如 JSTL)的结合使用,能够进一步增强其功能,满足更复杂的应用需求。
JSP九大隐式对象学习,比较基础,适用入门人群
jsp隐式对象是jsp技术的核心之一,jsp隐式对象是指在jsp页面中可以直接使用的java对象,这些对象都是jsp引擎提供的,jsp隐式对象共有九大对象,分别是: 1. request对象 2. response对象 3. pageContext对象 4. ...
jsp语法详解中还有其他一些重要的知识点,例如jsp指令、jsp动作、jsp隐式对象等。jsp指令用于在jsp文件中指定指令,例如&page指令、include指令等。jsp动作用于在jsp文件中执行某些操作,例如jsp:useBean动作、jsp:...
本入门课件聚焦于JSP的隐式对象,这些预定义的对象极大地简化了开发流程,提高了开发效率。 1. JSP隐式对象: - application:全局应用程序范围的对象,所有用户共享,常用来存储在整个应用生命周期内都需要访问的...
本教程中的第七章重点介绍了JSP的隐式对象,这些对象是Web容器自动创建并为JSP页面提供的便捷引用,无需通过`new`关键字实例化。 1. **JSP 脚本元素** - JSP脚本元素包括`<jsp:scriptlet>`、`<jsp:declaration>`、...
JSP 作用域与隐式对象[SP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1] 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似...
JSP应用开发-JSP基本语法与常用指令 JSP(Java Server Pages)是一种基于Java技术的动态网页开发技术,它允许开发者在HTML页面中嵌入Java代码,从而实现动态网页的开发。本章主要介绍JSP的基本语法和常用指令,旨在...
在JSP2.0规范中,预定义了9个隐式对象,它们可以直接在JSP页面中使用,无需显式声明或实例化。这些对象包括out、pageContext、request、response、session、application、page、config以及exception。 4.4.1 out...
Web开发中常见的四大域对象是PageContext、HttpServletRequest、HttpSession和ServletContext。每个对象都包含一个Map集合,这些Map用于存储不同作用域的数据。`pageScope`、`requestScope`、`sessionScope`和`...
JSP隐式对象是JSP提供的一组预定义的对象,可以直接在JSP页面中使用,无需显式声明,极大地简化了开发工作。以下是对JSP隐式对象的详细说明: 1. **out对象**: `out` 对象是 `javax.servlet.jsp.JspWriter` 类的...
JSP基础语法是JSP开发的基础,包括注释、Scriptlet、page指令、包含指令、跳转指令等。 1. JSP 中的三种注释 JSP 中有三种注释方式:显式注释、隐式注释和 JSP 自己的注释。显式注释使用 HTML 风格的注释,例如 <!...
JSP运行原理和九大隐式对象说明,需要的朋友可以参考一下
在JSP页面中,有一些特殊的对象被称为隐式对象。这些对象被自动创建,并且可以直接在JSP页面中使用,无需额外声明或实例化。常见的JSP隐式对象包括request、response、session、application、out、pageContext等。...
request 对象是 JSP 中九个可供使用的隐式对象之一,它属于输入/输出对象,主要用于处理客户端传送给服务器端的请求参数。 request 对象提供了多种方法来获取请求参数,例如: 1. String getParameter(String name...