本帖最后由 学习让我快乐啊 于 2018-5-21 18:16 编辑
Cookie
什么是会话 :用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为是一次会话. 常见的会话技术: * Cookie :将数据保存到客户端浏览器. * Session :将数据保存到服务器端. 为什么使用会话技术? * 私有的数据,购物信息数据保存在会话技术中. 获得Cookie:Cookie[] cookies = request.getCookies(); 向客户端写Cookie:response.addCookie(Coookie cookie) 创建Cookie:Cookie cookie = new Cookie(String name,String value);
作用范围:默认是一次会话,关闭浏览器就销毁,可以设置Cookie的有效期
关于cookie存储中文的问题: 向客户端写Cookie:
String value = URLEncoder.encode("中文", "UTF-8");
Cookie cookie = new Cookie("name",value);
response.addCookie(cookie);
获得Cookie:
Cookie [] cookies = request.getCookies();
Cookie aa= CookieUtils.findCookie(cookies, "name");
if(name!=null){
String value = aa.getValue();
String a = URLDecoder.decode(value, "utf-8");
}Session(HttpSession)JSP
JSP的脚本<%! %> :翻译成Servlet中的成员内容. 定义变量,方法,类. -- 不建议使用. <% %>:翻译成Servlet中service方法内部的内容. 定义类,变量 <%= %>:翻译成Servlet中service方法中out.print(); 注:里面的代码不用写分号
JSP的注释JSP的指令JSP指令的语法JSP的三个指令page指令language:JSP脚本中使用的语言,现在只能写java contentType:设置浏览器打开这个JSP的时候采用的默认的字符集的编码 pageEncoding:设置文件保存到本地硬盘,以及生成Servlet后,Servlet保存到硬盘上的编码 import:在JSP中引入类对象,可以出现多次 extends:设置JSP翻译成Servlet后继承的类,默认值:org.apache.jasper.runtime.HttpJspBase,这个值要想修改,这个类必须是HttpServlet的子类 autoFlush:设置JSP的缓存自动刷出.true:自动刷出. buffer:设置JSP的缓冲区的大小,默认8kb. session:设置在JSP中是否可以直接使用session对象.默认值是true. isELIgnored:设置在JSP中是否忽略EL表达式.默认值是false不忽略. errorPage:设置错误友好页面的提示. isErrorPage:通过这个设置显示JSP的错误信息.
include指令指示JSP包含(静态包含)其他的页面,注被包含的页面不需要写结构体 <%@ include file="相对路径" %>taglib指令指示JSP引入标签库
<%@ taglib uri="标签的URI的路径" prefix="标签的别名" %>JSP的9大内置对象[对象名 | 对应的Servlet对象 | request | HttpServletRequest | responsse | HttpServletRequest | session | HttpSession | application | ServletContext | page | Object | pageContext | PageContext | config | ServletConfig | out | JspWriter | exceeption | Throwable |
域范围名称 | 作用范围 | 对应的内置对象 | 对应的Servlet对象 | PageScope | 当前页面 | pageContext | PageContext | RequestScope | 一次请求范围 | request | HttpServletRequst | SessionScope | 一次会话范围 | session | HttpSession | ApplicationScoope | 应用范围 | application | ServletContext | JSP的动作标签什么是JSP :JavaServer Pages(Java服务器端页面).JSP = Java代码 + HTML的元素 + JSP内置东西 作用:简化代码 <jsp:forward page="路径"></jsp:forward>:用于页面转发 <jsp:include page="路径"></jsp:include>:用于页面的包含(动态包含) 动态包含和静态包含的区别?(<%@ include page="路径" %>和<jsp:include file="相对路径" page>的区别)
静态包含相当于代码的copy,指挥翻译成一个java类,只有一个执行结果 动态包含的各个jsp各自翻译,执行,最终包含的是执行的结果
EL表达式
语法:
功能:
获取数据(JSP的四个域中的数据) 执行运算 操作web开发的常用的对象 调用Java中的方法----很少用
EL获取数据EL执行运算算术运算${ n1 + n2 + n3 } 逻辑运算
${ n1 < n2 } - ${ n1 lt n2 } <!-- less than -->
${ n1 > n2 } - ${ n1 gt n2 } <!-- great than -->
${ n1 <= n2 } - ${ n1 le n2 } <!-- less equal -->
${ n1 >= n2 } - ${ n1 ge n2 } <!-- great equal -->
${ n1 == n2 } - ${ n1 eq n2 } <!-- equal -->关系运算
${ n1<n2 && n3 < n4 } - ${ n1<n2 and n3 < n4 }
${ n1<n2 || n3 < n4 } - ${ n1<n2 or n3 < n4 }
${ !(n1 < n2) } - ${ not(n1<n2) }
EL操作常用的web对象JSTLJSTL的标签库:包含了五类标签. core(核心标签),fmt(国际化标签),xml(XML标签),sql(SQL标签),fn(JSTL提供EL的函数库)
JSTL判断
<c:if test="${}">
test:如果test返回true,标签内的内容就会被输出
</c:if>
if标签没有else,如果想表达else的情况,从条件着手JSTL遍历
<c:forEach var="" items="" varStatus="status">
status.index
status.count
</c:forEach>
<c:forEach var="" begin="" end="" step="" varStatus="status">
</c:forEach>
|