您现在的位置是:首页 > 文章详情

初识 JSP---(注释/小脚本/声明/指令/动作/内置对象)

日期:2018-08-02点击:298

注释

java : // /* */ /** */

html : <!-- -->

jsp <%-- --%>

jsp注释和html注释的区别

jsp注释对jsp引擎有作用,当jsp引擎看到这个注释后,生产servlet文件是会忽略他

html注释对jsp引擎没有作用,jsp引擎把他当成普通标签输出到浏览器,所以在浏览器的

查看源文件时可以看到这个注释,但是浏览器看到这个注释之后,不会把它显示到页面上

小脚本

写在<% %>中的Java代码成为Java小脚本,这些代码,通过jsp引擎转换成servlet后,这些代码

放在service方法当中

脚本片段

就是在Java脚本中间包括html标签

<%

if(true){

%>

<a href="http://www.baidu.com">百度</a>

<%

}else{

%>

<a href="http://www.taobao.com">淘宝</a>

<%

}

%>

声明

<%!

%>

在jsp文件转换为Java后,写在声明中的语句会放在service方法外面,所以

在声明中不能写执行语句,只能写声明语句或者方法,用的很少

表达式

写在<%= %>这个标签中的代码成为表达式,里面可以放表达式,这些表达是会通过

out.print()方法写入到客户端

注意 百分号和等于号(%=)中间不要有空格

指令 : 三大指令

page

标签:<%@page %>

常用的属性

contentType="text/html; charset=utf-8"

这个属性是用来修改页面编码方式

import="java.util.Date,java.util.Random"

这个属性是用来导入在这个jsp中用到的Java类

isELIgnored="false"

是否忽略EL表达式,默认为 false ,即不忽略

errorPage

指定当我们这个jsp页面发生错误的时候要跳转的页面,被指定为errorPage的jsp

要设置 isErrorPage属性,设置为true

isErrorPage

指定当前jsp页面是否错误页面,默认是false

输出:只有设置 isErrorPage = “true” 时,才可以响应 exception 内置对象,将异常信息输出到页面

(不设置isErrorPage 属性页面也可以跳转,但无法响应对象)

include

<%@include %>

将其他页面导入本页,只产生一个servlet类

file="include.jsp"

taglib

引入JSTL标签

prefix

prefix="c"

自定义标签前缀

uri

JSTL标签的统一资源标识符(jstl标签的url地址)

如:uri="http://java.sun.com/jsp/jstl/core"

tagdir

将自定义的标签库或者是第三方的标签(如JSTL)放到项目的路径下,通过tagdir进行指定(引入自己的标签库)

动作

include

<jsp:include>

导入其他jsp页面

page

page="include.jsp" : 导入其include.jsp页面

forward

相当于servlet中的request.getRequestDispatcher("include.jsp").forward(request,response);

会转发到include.jsp页面,页面展示的内容就是转发后页面的内容

userBean

该标签会先在设置的域中查找有没有该类的对象,如果有就从域中获取,如果没有就

根据class中的类的全名创建一个对象,将该对象放入域中,相当于

com.oaec.pojo.User user = new com.oaec.pojo.User();

request.setAttribute("u",user);

域包括下面四个值

    page :当前页面有效

    request :一次请求有效

    session :一次回话(根据浏览器)

    application 整个web项目共享

在index.jsp中设置后,转发到include.jsp中仍然可以获取(在request域中)

    <jsp:useBean id="u" class="com.oaec.pojo.User" scope="request"></jsp:useBean>

    <jsp:setProperty property="name" name="u" value="zhangsan"/>

    <jsp:setProperty property="age" name="u" value="50"/>

    <jsp:forward page="include.jsp"></jsp:forward>

在include.jsp页面中获取

    <jsp:useBean id="u" class="com.oaec.pojo.User" scope="request"></jsp:useBean>

    <jsp:getProperty property="name" name="user"/>

九大内置对象

在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创建就会特别的繁琐.SUN公司因此在设计jsp时,在jsp页面加载完毕之后自动帮开发者创建好了这些对象,开发者只需要使用相应的对象调用相应的方法即可.这些系统创建好的对象就叫做内置对象.

内置对象名          类型
request           HttpServletRequest
response       HttpServletResponse
config         ServletConfig
application    ServletContext
session        HttpSession
exception      Throwable
page           Object(this)
out            JspWriter
pageContext    PageContext 

 

解析:

1.pageContext(jsp 运行上下文)【可以获取其他八个对象】

页面的上下文,可以获取其他的内置对象,可以设置在page域的键值对

如:pageContext.setAttribute("username","zhangsan");

使用场景:在自定义标签时会频繁使用到PageContext对象;或者是定义一个方法需要用到多个对象时,传一个pageContext对象就能解决问题.

2.out : JspWriter向浏览器中写入数据(,相当于带缓存的PrintWriter(不带缓存)

PrintWriter:write("内容")           直接向浏览器输出内容

JspWriter:writer("内容")            向jsp缓冲区写出内容

JspWriter当满足以下条件时之一时,缓冲区的内容写出:

a,缓冲区满了

b,刷新缓冲区

c,关闭缓冲区

d,jsp页面执行完毕

3.exception

只能错误页面也就是 isErrorPage="true"

配置异常信息,这些异常信息只能ErrorPage页面进行显示

4.application  :对应的ServletContext

5.config:ServletConfig

域对象(4个):

在servlet程序中,如果开发者希望使用session对象,必须通过request.getSession()来得到session对象;而在jsp程序中,开发中可直接使用session(系统帮我们创建好的session对象的名字就叫session)调用相应的方法即可,如:session.getId()

ServletContext     context域
HttpServletRequet  request域
HttpSession        session域     --前三种在学习Servlet时就能接触到
PageContext        page域     --jsp学习的

域对象的作用:保存数据,获取数据,共享数据.

保存数据:

pageContext.setAttribute("内容");//默认保存到page域 pageContext.setAttribute("内容",域范围常量);//保存到指定域中 //四个域常量 PageContext.PAGE_SCOPE PageContext.REQUEST_SCOPE PageContext..SESSION_SCOPE PageContext.APPLICATION_SCOPE

获取数据:

pageContext.getAttribute("内容"); pageContext.getAttribute("name",域范围常量); //自动在四个域中搜索数据 pageContext.findAttribute("内容"); //在四个域中自动搜索数据,顺序:page域->request域->session域->application域(context域)

 

原文链接:https://yq.aliyun.com/articles/623927
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章