1.Java Server Pages,Java服务端页面。
2.JSP = HTML + Java代码
3.JSP的作用:简化开发,避免了在Servlet中直接输出HTML标签。
JSP 快速入门
JSP 原理
1.JSP 本质上就是一个 Servlet。
2.JSP 在被访问时,由JSP容器(Tomcat)将其转换为 Java文件(Servlet),在由JSP容器 (Tomcat)将其编译,最终对外提供服务的其实就是这个字节码文件。
JSP 脚本
JSP脚本用于在 JSP页面内定义 Java代码。
1.<%
Java代码放在 _jspService方法中
%>
2.<%=变量%> 把数据打印到浏览器
3.<%!
Java代码 会放在成员位置,作为成员变量或成员方法
%>
EL 表达式
JSTL 标签
:相当于 if 判断
if标签: 做判断,如果条件为true,就打印里面的内容到浏览器
代码
:相当于 for 循环
<%--foreach标签遍历集合
items:要遍历的数据或集合,使用EL从request取出来
var:随便取名字,保存每次遍历到的元素
varStatus:随便取名字,遍历时的状态对象
index:元素的索引,从0开始
count:要几个,从1开始--%>
<c:forEach items="${brands}" var="brand" varStatus="stat">
<tr align="center">
<td>${stat.count}</td>
<td>${brand.brandName}</td>
<td>${brand.companyName}</td>
<td>${brand.ordered}</td>
<td>${brand.description}</td>
<c:if test="${brand.status==0}">
<td>禁用</td>
</c:if>
<c:if test="${brand.status==1}">
<td>启用</td>
</c:if>
<td><a href="#">修改</a> <a href="#">删除</a></td>
</c:forEach>
</tr>
MVC 模式和三层架构
MVC 是一种分层开发的模式,其中:
M:Model,业务模型,处理业务;
V:View,视图,界面展示;
C:Controller,控制器,处理请求,调用模型和视图。
MVC 好处:
职责单一,互不影响;
有利于分工协作;
有利于组件重用。
JSP.pptx
综合案例.pptx
综合案例代码在day25 JSP
会话跟踪技术
会话:
用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应.
会话跟踪技术的作用:
因为Http协议设计成无状态协议,每次请求和响应都是独立的,多次请求无法共享数据。
会话跟踪技术: 解决一个会话的多次请求间共享数据:
Cookie: 浏览器保存数据
Session: 服务器保存数据
Cookie
Cookie 基本使用
Cookie 原理
Cookie的实现是基于HTTP协议的
响应头:set-cookie
请求头:cookie
Cookie 使用细节
1.设置Cookie的过期时间,单位是秒;
2.默认值为负数,当浏览器关闭则Cookie被销毁;
_3.零:删除对应的Cookie。
_cookie.setMaxAge(60);
Tomcat 8 Cookie可以存储中文不能存储空格
String encode = URLEncoder.encode(“张 三”, “UTF-8”);
Cookie cookie = new Cookie(“username”, encode);
但是读取的时候需要进行URL解码
_value=URLDecoder._decode(value,”UTF-8”);
Session
服务端会话跟踪技术:将数据保存到服务端;
JavaEE 提供 HttpSession接口,来实现一次会话的多次请求间数据共享功能。
Session 基本使用
// 1.获取Session对象
_HttpSession session = request.getSession();
// 2.存储数据
_session.setAttribute(“username”,”李四”);
session.setAttribute(“money”,300);
// 1.获取Session对象
_HttpSession session = request.getSession();
// 2.获取数据
_String username = (String) session.getAttribute(“username”);
Integer money = (Integer) session.getAttribute(“money”);
Session 原理
Session 使用细节
// 3.获取Session过期时间: 默认1800秒 = 30分钟
//获取Session最大非活动时间(Session自动销毁)
_int interval = session.getMaxInactiveInterval();
// 4.立即销毁session,会话失效后不能再使用这个会话了
_session.invalidate();
Cookie和Session的区别:
Cookie 和 Session 都是来完成一次会话内多次请求间数据共享的;
区别:
1.键值对数量:Cookie 存一个键和一个值,Session 存n个键和值;
2.存储位置:Cookie 是将数据存储在客户端,Session 将数据存储在服务端;
3.安全性:Cookie 不安全,Session 安全;
4.数据大小:Cookie 最大4KB,Session 无大小限制;
5存储时间:Cookie默认浏览器关闭,Session 默认30分钟;
6.服务器性能:Cookie 不占服务器资源,Session 占用服务器资源。
登录综合案例
用户登录:
注册用户:
能够使用会话跟踪技术完成验证码功能
1.生成验证码时,把验证码文字保存到session;
2.用户注册时填写验证码,在Servlet中得到用户填写的验证码和Session中的验证码对比,验证码正确才进行注册。