java学习与应用(4.5)--Cookie、Session、JSP等

Cookie

会话技术:Cookie(客户端),Session(服务端)。一次会话中包含多次请求和响应直到一端断开,在一次会话范围内多次请求间共享数据。
Cookie由服务器发送给客户端使用,供客户端多次使用。服务端:创建Cookie(Cookie对象的构造函数传入Cookie信息)、发送Cookie(response.addCookie方法传入参数),接收Cookie(getCookies)。
idea的Settings-->File and Code Templates-->Web-->Java code templates下可以修改Servlet Annoteated Class自动生成的代码以方便自定义自动生成。
服务器发送cookie保存在,响应头的set-cookie下的参数被客户端获取。当客户端再次请求数据时,请求头中的cookie字段添加了之前获取的cookie。
一次请求可以发送多个cookie键值对(多个Cookie对象通过addCookie方法添加),cookie默认在浏览器关闭时被销毁,可设置持久化存储到硬盘时间(Cookie的setMaxAge方法传入整数秒设定存活时间,0为删除,负数为默认方式)
cookie在tomcat8之后支持中文数据(直接使用,但特殊字符仍需编码),在tomcat8之前需要编码(可以使用URLEncoder.encode方法decode解码)。cookie范围,默认情况下tomcat服务器多个项目的cookie不能共享(只能在当前虚拟目录下共享),可以使用setPath方法设置为/则可以共享。
不同的tomcat服务器直接的cookie也可以共享,使用setDomain(String path),设置一级域名,则可以在指定一级域名下共享。
浏览器下的cookie大小有限制(4kb,20个),用于存储少量,不太敏感的数据(不安全)。可以用于网页离线的信息设置和同步(不登录情况下的网页偏好设置)。

JSP

JSP(Java Server Page java服务器端页面),可定义html标签和java代码,用于简化书写。
服务器将jsp文件转换为java文件,将java文件编译为字节码文件,字节码文件用于响应客户端,该字节码文件或说jsp实质上是一个Servlet。
html写入java格式为:<% java代码 %>,在selvlet的service方法中。<%! java代码 %>转换后对应到Servlet的成员变量。<%= 代码 %>,转换后为Servlet的service中的输出方法的参数。
JSP的内置对象:request、response、out(字符输出流对象,相比较response.getWriter字符流比out的方法先输出[tomcat响应数据的机制]。建议out一致)
jsp使用<% { %> <% } %>等截断方案,将out语句输出直接写为标签。

JSP指令,用于配置JSP页面,导入资源文件,page配置JSP页面,<%@ page contentType="设置MINE类型,设置页面编码,(低级IDE使用pageEncoding)" language="x" import导包,errorPage转到的错误界面,isErrorPage标记为错误界面用于使用内置exception对象%>。
include引入其他页面,<%@include file="" %>     taglib导入资源<%@taglib prefix="前缀" uri="标签库"%>,使用时用前缀开头使用标签库中内容。
注释:html:<!--    -->,jsp注释:<%--   --%>。jsp注释不会在转换后发送给客户端,html注释会发送。
内置对象:pageContext,request,session,application,response,page,out,config,exception。在对应的Servlet中定义

Session

Session服务器端会话技术(HTTPSession对象[使用request.getSession方式获取]),在一次会话的多次请求间共享数据,存放在服务器端。方法如setAttribute,getAttribute,removeAttribute。
Session依赖于cookie。客户端从服务器获取Session,并且没有cookie,则服务器端响应头set-cookie包含JSESSIONID字段为一个id(session对象)。其他次访问客户端携带cookie的sessionid请求服务器,服务器对比session是否一致,确保一次会话获取的多个session是同一个。
客户端请求数据时session的是否相同依赖于cookie的存活状态。服务器端重启后session会重建,需要使用session的钝化,将对象序列化到硬盘,session的活化,服务器启动后将保存session加载到内存中。
tomcat的work目录下存储了session,在关闭时自动钝化操作,启动自动活化。idea中无法自动活化。
session的实效时间:服务器关闭时,invalidate方法,session默认失效时间为30分钟(定义在web.xml中)。
session用于存储一次会话的多次请求数据,存储在服务器端,存储任意类型任意大小。session相对安全。

MVC开发模式

MVC开发模式:java的web开发借鉴mvc开发模式,使得程序的设计更合理(弥补jsp的难以维护)(Model View Controller 模型 视图 控制器),服务器中控制器调用模型,返回的数据交给视图展示数据。
Mode使用JavaBean查询数据库,封装对象,Controller使用Servlet获取用户输入调用模型,数据返回给视图,View使用jsp展示数据(jsp中少写入java代码)。MVC使得项目架构复杂。

数据操作:三层架构,使用控制器Servlet处理,控制器调用XXXService.java数据(JavaBean)操作,该数据操作调用UserDao.java。最后控制器重定向地址。
js中使用location.href可以转到指定Servlet处理数据。
设计过程中分析输入和输出有助于更好的分析和实现。

EL、JSTL

EL表达式:Expression Language表达式语言。替换和简化jsp页面的java代码编写,也可以在js中使用。格式如 ${ 表达式 }, page的 isELIgnore全局忽略EL表达式, 或使用\转义符忽略单个。

运算:可以使用的运算符为:使用算数运算符,比较运算符,逻辑运算符,empty(判断字符串集合数组对象是否为null且长度是否为0)。
获取值:从域对象中获取值,使用域名.键名方式获取,获取不到则为空字符串。省略域名,直接使用键名获取,则会依次从小到大范围查找域名的键值。
获取自定义的对象值,使用域名和键名获取对象后,使用其属性(getter,setter去掉get和set,首字母小写)获取值(实质会调用getter和setter)。
List集合对象获取后,获取值直接使用[]即可,Map集合使用[]或""通过键获取值。
empty使用格式如${empty str},判断str是否为空或null。not empty取反。
EL表达式中有11个隐式对象,如pageContext获取jsp其他8个内置对象。获取其它隐式对象如request,可以获取虚拟目录contextPath,

JSTL标签(JavaServer Pages Tag Library JSP标准标签库,由apache提供),用标签简化和替换java代码。导入jstl的jar包后,使用taglib引入标签库
if 选择语句标签。使用test属性接收boolean表达式,以确定是否显示标签体内容。test中可以写入EL表达式。该标签没有else,需要则重新写一个标签逻辑。
choose类似switch语句:使用choose内的使用when标签做数字判断,otherwise做其他情况。
foreach标签:使用begin属性开始值,使用end结束值,使用var临时变量,使用step表示步长,varStatus循环状态index容器中元素索引从1开始和count次数,完成重复操作。
使用items容器对象,var临时变量,varStatus循环状态对象的index和count,获取容器或域对象的内容在var中存在并取出。

原文地址:https://www.cnblogs.com/bai2018/p/12314986.html

时间: 2024-08-29 21:23:17

java学习与应用(4.5)--Cookie、Session、JSP等的相关文章

JavaWeb学习笔记五 会话技术Cookie&amp;Session

什么是会话技术? 例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端的状态.会话技术是帮助服务器记住客户端状态(区分客户端). 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话.会话技术就是记录这次会话中客户端的状态与数据的.会话技术分为Cookie和Session: Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除

从.Net到Java学习第八篇——SpringBoot实现session共享和国际化

SpringBoot Session共享 修改pom.xml添加依赖 <!--spring session--> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency> 添加配置类RedisSessionConfig @Config

会话技术: Cookie Session JSP

##  Cookie A..概念:客户端会话技术,将数据保存到客户端 B.使用步骤: 1.创建Cookie对象,绑定数据 new Cookie(String  name, String value) 2.发送Cookie对象 response.addCookie(Cookie cookie) 获取Cookie,拿到数据 request.Cookie[]getCookies `      C.实现原理 基于相应头set-cookie和请求头cookie实现 D.cookie的细节 1.一次可不可以

Java进阶学习第十一天——cookie&amp;session入门

文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 2016.05.04 lutianfei none JSP.EL表达式的入门(重点) Servlet/JSP 是两种动态的WEB资源的两种技术. * Servlet的缺点* 开发人员要十分熟悉JAVA 不便于页面调试和维护 修改.重新编译 很难利用网页设计工具进行页面设计 HTML内容导入到servlet中 用PrintWriter的对象进行输出 JSP简介 JSP( JavaServer Pages )是由Sun公司倡导.许多

【学习】013 Servlet、Cookie、Session的简述

Servlet核心内容 Sevlet的生命周期(重点) Servlet重要的四个生命周期方法 构造方法: 创建servlet对象的时候调用.默认情况下,第一次访问servlet的时候创建servlet对象只调用1次.证明servlet对象在tomcat是单实例的. init方法: 创建完servlet对象的时候调用.只调用1次. service方法: 每次发出请求时调用.调用n次. destroy方法: 销毁servlet对象的时候调用.停止服务器或者重新部署web应用时销毁servlet对象.

【转】学习总结--Cookie &amp; Session总结

转载地址:http://www.phperzone.cn/portal.php?aid=718&mod=view 一.状态管理1)什么是状态管理?   将浏览器与web服务器之间多次交互过程当做一个整体来处理,并且将多次交互所涉及的数据进行管理.2)状态管理技术cookie:    a,什么是cookie?   是一种客户端(浏览器)的状态管理技术.   浏览器在访问web服务器的时候,服务器会将少量的数据以set-cookie消息头的方式发送给浏览器,浏览器会将这结数据保存下来:当浏览器再次访

Java web基础总结六之—— Cookie与Session

Java web基础总结六之-- Cookie与Session 当我们在使用浏览器与服务器进行会话的过程中,就必然会产生一些数据.这个时候就需要对数据进行保存.比如常见的购物网站购物车信息的保存.保存客户端与服务器会话数据的两种技术是Cookie与Session. 一.Cookie 1.什么是Cookie? Cookie是保存在客户端的,以name,value的形式保存.当用户使用浏览器访问服务器产生数据时,服务器程序把每个用户的数据以cookie的形式写给用户各自的浏览器.当用户使用浏览器再去

【JAVA学习】struts2的action中使用session的方法

尊重版权:http://hi.baidu.com/dillisbest/item/0bdc35c0b477b853ad00efac 在Struts2里,如果需要在Action中使用session,可以通过下面两种方式得到1.通过ActionContext class中的方法getSession得到2.Action实现org.apache.struts2.interceptor.SessionAware接口的方式来对session进行操作 下面先看一个采用第一种方式,在action中得到sessi

javaWeb学习总结(7)-关于session的实现:cookie与url重写

本文讨论的语境是java EE servlet.我们都知道session的实现主要两种方式:cookie与url重写,而cookie是首选(默认)的方式,因为各种现代浏览器都默认开通cookie功能,但是每种浏览器也都有允许cookie失效的设置.由于浏览器默认启动cookie功能,而且普通客户一般都不会取消cookie功能.久而久之,我们写代码的时候,也就不会在意session的具体实现,其实这里面还是有很多值得注意的地方,尤其在用户取消cookie功能的情况下.一 servlet sessi

Servlet学习(七)——会话技术cookie&amp;session

一.会话技术简介 1.存储客户端的状态 例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端的状态.会话技术是帮助服务器记住客户端状态(或者说区分客户端,是张三登录的还是李四登录的) 2.会话技术 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话.会话技术就是记录这次会话中客户端的状态与数据的. 会话技术分为Cookie和Session: Cookie:数据