`
AILIKES
  • 浏览: 184030 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSP语法、指令(乱码、9大隐式对象、4大域)

阅读更多

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,taglibTaglib和标签相关。

指令的基本语法格式:

<%@ 指令 属性名=“值”%>

例如:<%@ 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

ApplicationseveltContext 类型,代表整个应用。

Config servletConfig类型

Page代表页面本身

pageContext

OutJspWriter  writer的子类  

 带缓存功能的输出流,可通过pagebuffer属性指定缓冲大小或关闭

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方法和2include方法来简化和替代

reqeustDispatcher.forward 方法和include方法。

方法中的资源地址代表当前WEB应用

pageContext.forwoard("/message.jsp");

pageContext.include("/head.jsp");//会翻译成2servlet

<%@ 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的隐式对象实例教程文档

    **JSP隐式对象详解** JavaServer Pages (JSP) 是一种用于开发动态网页的技术,它允许开发者在HTML代码中嵌入Java代码。在JSP中,有一些预先定义好的对象,被称为“隐式对象”,这些对象可以直接在JSP页面中使用,...

    jsp的九大隐式对象详解

    "JSP 九大隐式对象详解" JSP 九大隐式对象是指在 JSP 编程中可以直接使用的九个内置对象,这九个对象分别是:request、response、session、application、out、pageContext、config、page、exception。下面对每个...

    03-JSP隐式对象.ppt

    03-JSP隐式对象.ppt

    TP4 JSP 隐式对象TP4

    TP4 JSP 隐式对象TP4

    EL表达式 隐式对象

    ### EL表达式 隐式对象 ...通过掌握 EL 的基本语法和隐式对象,开发者可以更加高效地处理页面数据,提高开发效率。同时,EL 与其他技术(如 JSTL)的结合使用,能够进一步增强其功能,满足更复杂的应用需求。

    JSP 隐式对象

    JSP九大隐式对象学习,比较基础,适用入门人群

    jsp学习笔记

    jsp隐式对象是jsp技术的核心之一,jsp隐式对象是指在jsp页面中可以直接使用的java对象,这些对象都是jsp引擎提供的,jsp隐式对象共有九大对象,分别是: 1. request对象 2. response对象 3. pageContext对象 4. ...

    jsp语法详解

    jsp语法详解中还有其他一些重要的知识点,例如jsp指令、jsp动作、jsp隐式对象等。jsp指令用于在jsp文件中指定指令,例如&page指令、include指令等。jsp动作用于在jsp文件中执行某些操作,例如jsp:useBean动作、jsp:...

    JavaWeb程序设计入门课件JSP隐式对象共8页.pdf

    本入门课件聚焦于JSP的隐式对象,这些预定义的对象极大地简化了开发流程,提高了开发效率。 1. JSP隐式对象: - application:全局应用程序范围的对象,所有用户共享,常用来存储在整个应用生命周期内都需要访问的...

    完整版Java JSP web开发教程 07_JSP隐式对象(共32页).ppt

    本教程中的第七章重点介绍了JSP的隐式对象,这些对象是Web容器自动创建并为JSP页面提供的便捷引用,无需通过`new`关键字实例化。 1. **JSP 脚本元素** - JSP脚本元素包括`&lt;jsp:scriptlet&gt;`、`&lt;jsp:declaration&gt;`、...

    JSP 作用域与隐式对象

    JSP 作用域与隐式对象[SP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1] 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似...

    JSP应用开发-JSP基本语法与常用指令.pptx

    JSP应用开发-JSP基本语法与常用指令 JSP(Java Server Pages)是一种基于Java技术的动态网页开发技术,它允许开发者在HTML页面中嵌入Java代码,从而实现动态网页的开发。本章主要介绍JSP的基本语法和常用指令,旨在...

    Java Web程序设计入门课件-JSP隐式对象.pptx

    在JSP2.0规范中,预定义了9个隐式对象,它们可以直接在JSP页面中使用,无需显式声明或实例化。这些对象包括out、pageContext、request、response、session、application、page、config以及exception。 4.4.1 out...

    Java Web程序设计入门课件-EL隐式对象.pptx

    Web开发中常见的四大域对象是PageContext、HttpServletRequest、HttpSession和ServletContext。每个对象都包含一个Map集合,这些Map用于存储不同作用域的数据。`pageScope`、`requestScope`、`sessionScope`和`...

    JavaWeb开发技术-JSP隐式对象.pptx

    JSP隐式对象是JSP提供的一组预定义的对象,可以直接在JSP页面中使用,无需显式声明,极大地简化了开发工作。以下是对JSP隐式对象的详细说明: 1. **out对象**: `out` 对象是 `javax.servlet.jsp.JspWriter` 类的...

    JSP基础语法

    JSP基础语法是JSP开发的基础,包括注释、Scriptlet、page指令、包含指令、跳转指令等。 1. JSP 中的三种注释 JSP 中有三种注释方式:显式注释、隐式注释和 JSP 自己的注释。显式注释使用 HTML 风格的注释,例如 &lt;!...

    JSP运行原理和九大隐式对象说明

    JSP运行原理和九大隐式对象说明,需要的朋友可以参考一下

    JSP中隐式对象用法实例

    在JSP页面中,有一些特殊的对象被称为隐式对象。这些对象被自动创建,并且可以直接在JSP页面中使用,无需额外声明或实例化。常见的JSP隐式对象包括request、response、session、application、out、pageContext等。...

    JSP 内置对象:request 对象.pptx

    request 对象是 JSP 中九个可供使用的隐式对象之一,它属于输入/输出对象,主要用于处理客户端传送给服务器端的请求参数。 request 对象提供了多种方法来获取请求参数,例如: 1. String getParameter(String name...

Global site tag (gtag.js) - Google Analytics