1.jsp的入门
jsp就是一个servlet,最终会被编译成servlet,jsp:java server pages,java服务器端页面,包含html+java+jsp的指令
使用servlet向页面输出内容,需要使用字节流或者字符流向页面输出
jsp:java server pages,java服务器端的页面
执行过程:放到tomcat work目录,在访问的时候,会编译成servlet。
嵌入java代码的三种方式
第一种: <%!int num=10 %>:表示的一个是成员变量(很少用)
第二种:<%= %>:页面输出内容,它会给我们生成到service里面,向页面输出内容;不能加分号
第三种:<% %>:也是在service里面加载
例子:五行五列
<table border="1" bordercolor="blue">
<%
for (int i = 1; i <= 5; i++) {
%>
<tr>
<%
for (int j = 1; j <= 5; j++) {
%>
<td>aaa</td>
<%
}
%>
</tr>
<%
}
%>
</table>
2.el的入门
el的表达式:获取域对象的值
如果多个域对象名称是相同的,使用el表达式获取范围小的,
${requestScope.msg} :得到request域的对象
${application.masg}:得到ServletContext的值
如果没有这个值得到的是null
3.会话管理
打开浏览器,到关闭浏览器
购物信息的存储,
requset域对象的特点:范围一次请求
sevletContext域
用会话来存储购物的技术
cookie技术:客户端技术
使用cookie
首先第一次买东西A,到服务器得到A,A通过Cookie返回到浏览器内存中,
第二次买B,携带内存中的A一起发送,到服务器端,得到A,B,通过Cookie返回到浏览器的内存中
结算的时候,把内存中的两个值一起发送给服务器,然后进行结算
session技术:服务器端的技术
4,案例一:实现用户上一次的访问时间
方法:
得到cookie
Cookie[] getCookies()
//得到所有cookie
Cookie[] cookies = request.getCookies();
通过cookie把值返回到浏览器的内存中(回写)
addCookie(Cookie cookie)
使用Cookie的构造
Cookie(java.lang.String name, java.lang.String value)
name:cookie的名称
value:cookie值
5.cookie的api的使用
getName():得到cookie名称
getValue():得到cookie的值
setMaxAge(int expiry):设置cookie的有效时长
有两种会话方式:
第一种会话级别:特点是浏览器关闭了,cookie销毁,在默认的情况下会话级别
第二种持久性cookie:在一定范围内容cookie会一直有效
设置有效时长:使用setMaxAge方法设置 setMaxAge(int expiry)参数:秒
设置有效路径:使用setPath(java.lang.String uri)
技巧 setPath("/");
setPath(uri)
销毁持久的cookie,到时间销毁,setMaxAge(0);
setDomain("www.sina.com");
和这个域名相同会携带域名信息
技巧:setDomian(".sina.com");
6.cookie的细节问题
一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。
一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。
浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
如果创建了一个cookie,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),
用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge和有效路径,
并给出一个以秒为单位的时间。
删除持久cookie,可以将cookie最大时效设为0,注意,删除cookie时,path必须一致,否则不会删除
8.session的简介
session是服务器端技术
session也是一个域对象
范围:会话里面
存值:setAttribute
取值:getAttribute
一个浏览器独占一个session对象
10、session创建和销毁
session创建,执行request方法getSession创建
session销毁有三种方式
第一种方式:非正常关闭服务器
第二种方式:session有一个默认的过期时间 30分钟
<session-config>
<session-timeout>30</session-timeout>
</session-config>
第三种:调用session经行销毁
清空购物车的功能
代码
//得到session
HttpSession session = request.getSession();
//销毁session
session.invalidate();
12、禁用cookie之后session的使用
session技术也是基于cookie,
回写浏览器一把钥匙 jsessionid=qwwe233445
禁用cookie之后使用session
在地址后面;jsessionid=sessionid的值
response. encodeRedirectURL(java.lang.String url)
用于对sendRedirect方法后的url地址进行重写。
response. encodeURL(java.lang.String url)
用于对表单action和超链接的url地址进行重写
* 在一般网站中,如果禁用了cookie,直接不让登录