简介
跟着崔希凡+广陵散的视频学web,记录一下jsp相关知识。jsp是html+java+jsp命令的组合方式,特点是比较灵活,处理不太复杂的事务。
java内容
插入java的几种方法
- <%! %>定义变量域函数声明。相当于类的成员变量与结构体
- <% %>存放多条语句,相当于一个函数,这样的结构体重的变量可以相互调用,相当于函数内部
- <%= %>一条输入语句。
其他相当于在非/开头的地址前增加一个基址。如果是/开头保持不变。 html与java语句相关嵌套,输出多个语句
<%
for(int i=0;i<10;i++){
%>
zhaoshuyou <br/>
<%
}
%>
复制代码
输出如下:
zhaoshuyou
zhaoshuyou
zhaoshuyou
zhaoshuyou
zhaoshuyou
zhaoshuyou
zhaoshuyou
zhaoshuyou
zhaoshuyou
zhaoshuyou
复制代码
jsp的原理:
jsp会编程成一个servlet,在第一次调用的时候生成servlet对象,在以后的调用中直接调用对象的方法就好。 如果这样理解的话,嵌入式的java程序可以很容易理解:jsp对象标签采用java语句只是输出,<% %>的语句与jsp的标签组成service函数。<%= %>是单句输出函数;<%! 是定义成员变量:函数与变量%> jsp有8个内置对象: jsp的注释:<%-- --%>:不会出现在jsp的servlet程序中
是html的注释,在客户端可以显示cookie
简介:
cookie是有服务器生成对session进行标记的字节端,浏览器在发送求其的时候讲cookie放到头部。
- 服务器发送的指令,1:可以直接设置都不 setheader(“cookie”,“aaa=AAA”);2:直接增加增加cookie对象,response.addcookie();
- 服务读取cookie:1.读取头部。2:读取cookie对象。quest.getCookies();
- 浏览器接受cookie,头部,每个cookie一行
- 浏览器发送cookie,所有的cookie一起发送:Cookie: bbb=BBB; JSESSIONID=0244B6AD39CDCF50CA12AC7F2FAFD429
- cookie声明周期:setMaxage(xx);xx>0 保存在硬盘中时间为xx。xx=0 删除。xx<0 保存在内存中
- cookie 服务器一般发送cookie不要超过20个,每个不大于4k。浏览器最多报错300个cookies。由于浏览器是个性化定制的,所以浏览器的改变很多。各个浏览器的cookie相关独立。
- path地址,只有请求的地址在cookie的地址范围内,浏览器才会发送cookie
- 域,是针对于域名共享cookie的设置。
session:
- 概念:session是浏览访问服务器,一系列交互的过程,在浏览器关系之前。
- 创建时刻:session只是在需要的创建,servlet中调用request.getsession():首先获取cookie的id如果不存在,创建session对象;如果存在,但不存在对象,创建一个返回;如果存在id与session对象,直接返回对象。为什么会存在存在id而不存在对象,长时间不访问服务器,被服务器删除。
- 实现原理:采用浏览器缓存的cookie
- 域作用:可以使域对象,传递对象。
- 使用场合:标记用户名
url重新
session依靠cookie的实现sessionid的标识,如果在不能使用cookie的场合下session就需要url的参数信息进行标记。如下:(注意sessionid的标记方法是;session=) address remot
另外有一种比较方便的写法: response.encodeurl("/day11/hello.jsp");服务器自动检测request包中是否有cookie,如果没有自动增加cookis标识。
其他
9个内置函数
- out:输出流
- page:当前对象this
- pageContext。当前页环境,可以作为域,可以调用其他对象
- config:配置对象,与servletconfig类似
- application:环境,与servletContext类似
- session:回话,与servlet中的session类似
- exception:异常,只有在<%@page isErrorpage%>的标签的时候才起作用。其他对象调用不了
- request请求。域、参数等
- response:答复
相关标签:
- page。用的比较多,距离如下
-
<%@page language="java"%>编译语言与java。 复制代码
-
<%@page pageEncoding="" contextEncoding="" %>编码语言,如果只有一个,另外一个与之相同 复制代码
-
<%@page isErrorPage="true"%> 异常处理也,给浏览器发送状态码500,并且可以调用exception对象 复制代码
-
<%@page errorPage="/"%>z如果发生异常调用页面。同样可以在web中配置错误处理页面。<br> 复制代码
-
<%page autoFlush="true" buffer= %>:是否自动刷新,当缓存满了。如果true自动刷新;false抛出异常。buffer设置response的缓存。 复制代码
-
<%page is ELIgnored=true%>是否忽略EL标签。true忽略,默认flase 复制代码
-
extends继承类 复制代码
-
session="true",是否支持session 复制代码
-
info:标注信息 复制代码
-
isThreadSafe=“true”是否是线程安全, 默认为false,true就是单线程模式,一个servlet只有一个对象处理。 复制代码
-
<%@include file="" %>引用到内部,直接生成一个对象 复制代码
-
<%@taglib prefix='' uri= %>prefix指出标签的前缀,对标签进行标记,原因方式标签名字冲突;uri指出标签的位置 复制代码
动作标签
- <jsp:forward page="" />函数调用forward
- <jsp:include page="" />函数掉能用incude
- <jsp:param value="" name="" /> 设置1 2的参数标
jsp关于javabean的三个标签。
<jsp:userBean id="user1" class="cn.itcast.domin.user" scope="session>
:<jsp:setProperty property="username" name="user1" value="admin">:
::<jsp:getProperty property="username" name="user1" >;
注意:class 需要<%page improt="page.Person"%>
复制代码
EL
1、{ sessionScopet.attribute} 3. { applicationScope.attribute} 5. param:request 6. paramvalues:request 7. header:request 8. headerValuses:request 9. initParam初始化context 10. cookie
11. PageContext:对象