jsp学习(一)

jsp:

java 服务器页面

作用:将内容的生成和信息的展示相分离

运行在服务端,本质上就是一个servlet,产生的java文件和class保留在tomcat的word目录下


jsp脚本:

<%..%>java代码片段

<%=..%>输出表达式 相当于out.print();

<%!..%> 声明成员

jsp指令:

作用:生命jsp页面的一些属性和动作

格式:<%@指令名称 属性="值" 属性="值" %>

分类:

page:主要生命jsp页面的一些属性

include:静态包含

taglib:导入标签库

注意:一个页面中可以出现多个指令

指令可以出现任意位置,一般都房在jsp页面的最上面

page指令:

重要属性:3个

contentType:设置响应流编码,及通知浏览器用什么编码打开,设置文件的mimetype

pageEncoding:设置页面的编码

import:导入所需要的包(jsp本质也是一个类

contentType和pageEncoding的联系:

若两者都出现的时候,各自使用各自的编码

若只出现一者,两个都使用出现的这个编码

若两者都不出现,使用服务器默认的编码 tomcat7使用iso-8859-1(不支持中文

了解属性:

language:当前jsp页面里面可以嵌套的语言

buffer:设置jsp页面的流的缓冲区大小

autoFlush:是否自动刷新,默认自动刷新

extends:声明当前jsp页面继承于哪个类,必须继承的是httpServlet及其子类

session:设置jsp页面中是否可以使用session内置对象

isELIgnored:是否忽略el表达式

isErrorPage:当前页面是否是一个错误页面,若值为true,可以使用jsp页面的一个内置对象 exception

errorPage:当前jsp页面出现异常的时候跳转到jsp页面

inlude指令:

静态包含,就是将其他页面或者servlet的内容包含进来,一起进行编译运行,生成一个java文件

格式:<%@include file="相对路径或者是内部路径" %>

相对路径: ./或什么都不写 当前路径

上一级路径 ../

绝对路径:项目的内部路径 <%@include file="/jsp/include/" %>

带协议和主机的绝对路径

不带协议和主机的绝对路径 /项目名/资源

内部路径:

不带协议和主机的绝对路径去掉项目名

请求转发 静态包含 动态包含

taglib指令:导入标签库

导入jar包

<%@tagliv prefix="前缀名" uri="名称空间" %>

若导入之后

<前缀名:标签 ..>

例如:

<c:if test="">输出内容</c:if>


jsp内置对象:☆☆(9大内置对象)

在jsp页面上可以直接使用的对象

内置对象 类型

out JspWriter

request HttpServletRequest

response HttpServletResponse

session HttpSession

exception Throwable

page(当前jsp、servlet相当于this) Servlet(this)

config(servletConfig) servletConfig

application(servletContext) servletContext

pageContext(当前页面的上下文) pageContext

pageContext使用:理解

1.域对象

xxxAttribute()

2.操作其他域对象(设置获取删除值)

xxxAttibute(...,int scode);

scope取值:

APPLICATION_SCODPE

SESSION_SCOPE

REQUEST_SCOPE

PAGE_SCOPE


3.获取其他的内置对象:getXXX()

注意:

getRequest():获取request内置对象

4.便捷查找

findAttibute(String key):

依次从pagecontext,request,session,application四个域中,查找相应的属性,若查找到了返回值,且结束该次查找,若查找不到返回一个null


jsp域对象:理解

application 整个项目

session 一次会话

request 一次请求(可以跨页面多个页面)

pageContext 一个页面

jsp的动作标签

<jsp:forward>:请求转发 相当于java中 request.getRequestDispatcher.forward(...);


<jsp:include>:动态包含

就是将被包含页面或者servlet的运行结果包含到当前页面中



el:

jsp的内置表达语言,从jsp2.0开始。用来替代<%=..%>

作用:

1.获取域中数据☆

2.执行运算☆

3.获取常见的web对象

4.调用java的方法

格式:

${el表达式}

获取域中数据:

注意:若属性名称中出现了"."|"+"|"-"等特殊符号,需要使用scope获取

例如:${requestScope.[arr.age]}

获取简单数据:

${pageScope|requestScope|sessionScope|aplicationScope.属性名称}



便捷获取用的 findAttibute,以后经常使用:

${属性名}:一次从pageContext,request,session,application查找指定属性,若查找到返回值,结束该次查找,若查找不到返回""


获取复杂数据:

获取数组中的数据:${域中的名称[index]}




获取list中的数据:${域中的名称[index]}


获取map中的数据:${域中的名称.键名}


获取特殊名字的数据:${requestScope["arr.age"]}


javabean导航:

javabean:java语言写成的可重用组件。类必须是具体的和公共的,并且具有无参构造器。狭义上来说就是我们编写的普通java类 例如:User Person

javabean规范:

1.必须是一个公共的具体的类 public class

2.提供私有字段 private String id;//id称之为字段

3.提供公共访问字段的方法 get|set|is方法

public String getId(){..}

一旦有公共的方法之后,get|set|is之后的内容,将首字母小写,将这个东西称之为bean属性

id就是一个bean属性

4.提供一个无参的构造器

5.一般实现序列化接口 serializable



jsp中要导入bean。

${域中javabean名称.bean属性}

执行运算:

四则运算 关系(>..) 逻辑(&& ||)

+:只能进行加法运算,字符串形式的数字可以进行加法运算,不能做拼接字符串



empty:判断一个容器的长度是否为0(array,set,list,map),还可以判断一个对象是否为空





三元运算符:${3 > 4 ? "yes" : "no"}



el的内置对象(了解)

可以在el中直接使用的对象(11个)

pageScope

requestScope

sessionScope

applicationScope

    param

paramValues


了解:和请求头相关的el内置对象

header

headerValues

了解:和全局初始化参数相关的el内置对象

initParam

web.xml 文件 [content-param]

cookie☆

${cookie}  获取map{key=Cookie}

例如:创建cookie

Cookie c = new Cookie("username","tom");

通过${cookie}获取相当于

{username=new Cookie("username","tom")}

相当于map的key是cookie的键

map的值是当前cookie

若想获取名称为username的cookie的value值(获取tom)

${cookie.username.value} --javabean导航

注意:

java中Cookie的api

getName():获取cookie的名称

getValue():获取cookie的value值

我们称name和value是cookie的bean属性

使用cookie内置对象

${cookie.给cookie起名字.value}

例如:

获取jsession的值

${cookie.JSESSIONID.value}


pageContext☆ 获取不是map集合,相当于jsp的pageContext内置对象

在jsp中获取项目名称

${pageContext.request.contextPath}

注意:

除了pagecontext其余对象获取的全是map集合  

         了解:和参数相关的el内置对象

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值