JSP程序开发-JavaWeb程序开发总结.ppt
文本预览下载声明
保持用户会话 HTTP协议无状态记忆和一次连接的的特点导致Servlet不能自动记忆用户的访问状态; Servlet的线程运行的特点,也不允许Servlet自动记忆用户的访问状态,否则将出现线程不安全的情况; Web程序保持用户会话方法都是将用户会话信息保存在浏览器端,当用户下次访问的时候,通过浏览器告知服务器上次会话的状态 Web程序保持用户会话的三种通用方式 Cookie URL重写 隐藏表单域 Cookie的工作方式 服务器在发给用户浏览器的HTTP响应头中包含所要相应的Cookie信息; 浏览器接收到Cookie后,将Cookie保存在客户端的文件系统中; 浏览器再次访问该Web服务器时,自动在发往服务器的HTTP请求头中的加入该服务器所保存的Cookie; 服务器通过Cookie得到用户上次访问的状态; Cookie的概念 在Servlet中处理Cookie 建立cookie: new Cookie(name,value) 在响应头中放置cookie:HttpServletResponse.addCookie(); 从请求中读取cookie: HttpServletRequest.getCookies(); 得到Cookie的属性 getValue()得到Cookie的值 getName()得到Cookie的名字 getPath()得到Cookie的路径 getDomain()得到Cookie的域名 getMaxAge()得到Cookie的失效时间 Session 使用Cookie保持用户会话比较麻烦,同时将大量用户的隐私信息放在Cookie中保存也非常不安全; 在Servlet中提供了Session机制,通过Session用以保持用户会话; Session指的是用户操作某个应用的时间概念,例如从用户打开浏览器访问某个网站到用户关闭浏览器离开该网站,这就是一个Session,或者是一个用户会话; Session的实现是以Cookie为基础的; Session的基本概念 Session的工作方式 Servlet已经生成一个可以唯一标识用户Session的序列号-Session Id; 将Session Id作为Cookie的值反馈给浏览器; 以Session Id为文件名,在服务器文件系统(或内存中)中建立一个文件,保存用户会话的内容; 当浏览器将Session Id作为Cookie发送给Web服务器时,Web服务器根据Session Id查找相应的文件,并读取文件的内容,获得用户会话; Session的基本概念 在Servlet中处理Session 查找与当前请求相关关的HttpSession对象 HttpServletRequest.getSession,查找session 查找保存的会话信息 session.getAttribute,从session中提取之前存储的值 对会话信息进行处理 session.setAttribute 设置属性值 session.removeAttribute 取消属性值 session.invalidate 使会话不活动 JSP 的概念 Java服务器页面(Java Server Pages); 在传统的网页HTML文件(*.htm,*.html)中加入Java程序片断(Scriptlet)和JSP标记,就构成了JSP网页(*.jsp); 将静态HTML与动态内容相结合,用 % % 将动态部份的代码括起来。 % String userName = “abc”; out.println(userName); % JSP的基本概念 JSP的执行过程 接收客户端发出的HTTP请求; JSP 容器将JSP转译成Servlet的源代码; 将产生的Servlet 源代码编译成Class 加载Class到内存执行; 把处理结果封装成结果响应至客户端。 JSP程序的执行分为两个阶段:转译期(Translation Time)和请求期(Request Time) 转译期:JSP网页转译成Servlet类 请求期:Servlet类执行后,响应结果至客户端 反复调用的时候,如果已经转译过一次,就不会再次进行,而是直接执行编译后的的Servlet 类 JSP的基本概念 JSP的基本概念 JSP/Servlet的对应关系 所有的JSP在执行时都会被转译成servlet 可以在WEB-INF/work/_jsp目录下查看转译后的自动生成的.java文件和编译后的.class文件 JSP API javax.servlet.jsp.* JSP容器将JSP脚本转换为Servlet时实现了三个接口方法: js
显示全部