欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年servlet教程和JSP教程 .pdf

    • 资源ID:34880710       资源大小:305.62KB        全文页数:13页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年servlet教程和JSP教程 .pdf

    达内 IT 培训集团- 1 - 由于本人知识水平有限,总结的笔记中倘若有错误的地方,欢迎联系我批评指证;Email :Servlet&JSP Day01Day06 2011/7/25系列班级 : SD1105主讲 : 程祖红助教 : 滕宝鑫1、架构: . - 2 -2、什么是 servlet? . - 2 -3、如何开发一个servlet? . - 2 -4、web.xml 的模板 (一个 web.xml 中可以配置多个Servlet): . - 3 -5、tomcat 的安装: . - 4 -6、Servlet 的运行过程(重点):. - 4 -7、http 协议(了解 ):. - 5 -8、get/post 请求: . - 5 -9、表单处理: . - 6 -10、中文问题: . - 6 -11、重定向(重点): . - 6 -12、系统异常处理: . - 7 -13、Servlet 容器如何处理请求资源地址:. - 7 -14、servlet 的生命周期及核心的类与接口(重点): . - 7 -15、JSP (Java Server Page ): . - 9 -16、转发(重点): . - 10 -17、转发与重定向的区别: . - 10 -18、状态管理: . - 10 -19、cookie 技术(重点): . - 11 -20、session技术(重点): . - 12 -名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - 达内 IT 培训集团- 2 - 由于本人知识水平有限,总结的笔记中倘若有错误的地方,欢迎联系我批评指证;Email :1、架构:c/s 架构(client 客户端 -server 服务端 ) (胖客户端 :要求客户端运行业务;把业务放到服务器端,则是瘦客户端) 典型的 c/s 应用: ftp 工具、 QQ、邮件系统、杀毒软件. 1.建立在 tcp/ip 协议之上,有自己的通信规则(建立业务 ) 2.需要相互配合才能完成一个完整业务逻辑3.允许多个客户端程序同时接入一个server 程序 (并发 ) 4.每一个 client(机器 )都必须安装客户软件5.修改了 server 程序,通常client 程序都要修改 (升级 ) 优点:利用客户端的计算能力,分担服务器的负荷(大型网络游戏就利用这点) 缺点:用户必须安装客户端程序;客户端需要升级(麻烦 ) b/s 架构(browser - web server(cluster集群 ) (极瘦客户端 :最低限度地减少客户端程序,只需要browser(浏览器 ) 1.基于 http 协议 (应用层 ) 2.几乎所有的业务逻辑处理都在server 完成3.支持并发4.client 要求很少,只需要安装browser(浏览器 ) 5.修改 server 之后, client 不需要任何变化6.server 端开发技术: html/js,xhtml,. php,asp,jsp,servlet 缺点:所有业务都在服务器端完成,服务器负荷大。优点:支持高并发访问;不需另外安装软件(只需浏览器 ),免去更新的麻烦。2、什么是 servlet? servlet 是 sun 公司制订的一种用来扩展web 服务器功能的组件规范。Server + Applet =Servlet 意为服务器端的小程序。如何理解:a,扩展 web 服务器功能:指的是标准的web 服务器只具有与客户端(浏览器)通讯的功能,不能够处理业务、逻辑的请求,需要编写相应的程序来负责处理客户端的请求。b,组件 : 实现了特定规范的可以单独部署的软件模块;组件一般用来实现业务逻辑;组件必须依赖容器来运行。c,容器 : 实现了特定规范的程序,提供组件的运行环境,并且管理组件的生命周期。一般的 web 服务器,比如tomcat,weblogic,was 都内置有一个servlet 容器。3、如何开发一个servlet? 1)写一个 java 类,实现Servlet 接口或者继承HttpServlet 类。2)编译 :(servlet-api.jar) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - 达内 IT 培训集团- 3 - 由于本人知识水平有限,总结的笔记中倘若有错误的地方,欢迎联系我批评指证;Email :3)打包 : appname(名称任意 ) WEB-INF classes( 放字节码文件) lib(可选,放一些jar 文件 ) web.xml( 部署描述文件) 4)部署 : 将第 3 步生成的文件夹或者使用jar 命令将该文件夹压缩所生成的.war 文件copy toweb 服务器特定的文件夹下面。然后启动服务器。5)访问 : http:/ip:port/appname/url-pattern 4、 web.xml 的模板 (一个 web.xml中可以配置多个Servlet) : servlet 的名字 1 /servlet 的逻辑名servlet 类全名 1 / 类的完全限定名 servlet 的名字 2 servlet 类全名 2 servlet 的名字 1 / 要和 servlet 标签中的相同 指定 servlet 相对于应用目录的路径 /servlet 的访问路径 servlet 的名字 2 指定 servlet 相对于应用目录的路径 index.jsp/指定默认的欢迎页面 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - 达内 IT 培训集团- 4 - 由于本人知识水平有限,总结的笔记中倘若有错误的地方,欢迎联系我批评指证;Email :5、tomcat的安装:1)将/opt/apache-tomcat压缩文件,解压缩到/homt/soft01下。比如,解压缩以后,在soft01 下,有了一个文件夹叫apache-tomcat-5.5.29 。2)配置环境变量cd /home/soft01 vi .bash_profile JAVA_HOME CATALINA_HOME:/home/soft01/apache-tomcat-5.5.29 PATH:/home/soft01/apache-tomcat-5.5.29/bin . .bash_profile 3)启动服务器cd apache-tomcat-5.5.29 cd bin sh startup.sh 4)在浏览器地址栏输入: http:/localhost:8080 5)关闭服务器cd apache-tomcat-5.5.29 cd bin sh shutdown.sh 6)tomcat 的几个文件夹的作用。bin:是一些可执行文件,比如启动和关闭服务器的脚本。conf:是一些配置文件,比如 server.xml,可以配置 tomcat 的监听端口号等等。webapps:部署文件夹,将一个应用copy 到这儿,服务器会自动部署。work: 服务器在运行时,临时生成的一些文件,比如,调用jsp 所生成的servlet 源代码及字节码。6、Servlet 的运行过程(重点) :在浏览器地址栏输入: http:/ip:port/appname/hello?name=zs a,浏览器会依据ip,port 连接服务器,浏览器将/appname/hello?name=zs( 请求资源路径)存放到请求数据包(依据 http 协议打包 )。b,Servlet 引擎 (web server 当中负责通讯的模块)会创建Request 对象 (一般称为请求对象,Servlet 引擎会将请求数据包中的数据封装到Request 对象当中,方便Servlet 获取数据,也就是说,Servlet 不用处理http 协议相关的代码),还会创建Response对象 (一般称为响应对象,方便Servlet 将处理之后的结果返回给客户端)。c,Servlet 引擎依据/appname找到对应的应用。依据应用所对应的web.xml ,找到url-pattern 元素。接下来,依据servlet-class 元素指定的类名,创建Servlet 实例。d,Servlet 实例可以通过Request 对象获取请求参数值。 也可以通过Response对象输出结果。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - 达内 IT 培训集团- 5 - 由于本人知识水平有限,总结的笔记中倘若有错误的地方,欢迎联系我批评指证;Email :e,Servlet 引擎从 Response对象中获取结果,生成响应数据包。f,浏览器解析服务器返回的响应数据包,生成相应的界面。7、http 协议 (了解 ):http 协议是什么?超文本传输控制协议,其作用是:定义了浏览器与web 服务器之间数据传输的过程及数据的格式。a,数据传输的过程:浏览器向服务器发送建立连接的请求。浏览器向服务器发送请求数据。服务器处理请求数据,返回响应数据。服务器立即关闭连接。b,数据的格式 : 请求数据包:1 请求行请求方式 (get/post) 请求资源的路径协议的版本号2 消息头由 w3c 定义的一些关键字,用于浏览器与服务器之间发送一些特定的消息,比如,浏览器可以发送cookie 消息头,向服务器发送cookie 数据。3 实体内容如果请求方式是post 方式,则请求参数会存放在实体内容里面。如果是get 方式,则请求参数会存放在请求资源路径后面。响应数据包:1 状态行协议的版本状态码描述常见的状态码: 404:找不到资源500:系统出错(应用程序出错)200:正确2 消息头3 实体内容服务器返回的数据8、get/post请求:1)哪一些是 get 请求:a,在浏览器地址栏直接输入一个地址。b,点击链接地址。click c,表单默认的提交方式。 2)哪一些是 post 请求:表单设置了method=post 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - 达内 IT 培训集团- 6 - 由于本人知识水平有限,总结的笔记中倘若有错误的地方,欢迎联系我批评指证;Email :3)get 方式的特点 : 因为请求参数都添加在请求资源路径后面,所以,添加的参数大小有限制。并且,请求参数会在浏览器地址栏显示,不安全。浏览器会缓存get 方式所获取的资源。4)post 方式的特点 : 请求参数都添加到了实体内容里面,添加参数大小理论上没有限制。因为请求参数不会在浏览器地址栏显示,相对安全。get 请求一般用于向服务器请求资源。post 请求一般用于向服务器提交数据。9、表单处理:如何获取表单中的数据String request.getParameter(String paraName); 需要注意: paraName 对应的参数名不存在,返回null。String request.getParameterValues(String paraName); Map request.getParameterMap(); 返回所有的请求参数与请求参数值对。10、中文问题:a,如果是一个静态页面(html) ,里面有中文,一定要设置, 并且要保证保存该页面的编码也是utf-8 。当然, charset 也可以 gbk,gb2312。其作用是,模拟Conent-Type 消息头,告诉浏览器当前返回的页面的编码是什么。b,在 Servlet 类的 service 方法里:request.setCharacterEncoding(utf-8); 其作用是, 告诉服务器, 以指定的编码格式去解码。如 果Servlet还 要 将 结 果 输 出 到 客 户 端 ( 浏 览 器 ), 还 需 要 :response.setContentType(text/html;charset=utf-8); 其作用是:第一,告诉服务器,输出数据到PrintWriter 时,所采用的编码格式;第二,生成一个消息头,告诉浏览器,以指定的编码来显示返回的数据。c,数据库useUnicode=true&characterEncoding=utf8 11、重定向(重点) :1)什么是重定向?服务器向浏览器发送一个状态码302 及一个消息头location(location 的值是一个地址 ),浏览器会立即向location 所指定的地址发送一个新的请求。我们把这样一种机制叫重定向。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - 达内 IT 培训集团- 7 - 由于本人知识水平有限,总结的笔记中倘若有错误的地方,欢迎联系我批评指证;Email :2)编程:response.sendRedirect(String url); 3)需要注意的问题在重定向之前,不能够有任何的输出;如果response 缓存当中有数据,在重定向之前,会自动清空。4)重定向的特点:a,地址任意b,浏览器地址栏地址会变化(即变化为跳转之后的地址)。12、系统异常处理:程序在执行过程当中,发生了不可恢复的错误(程序不能够处理,需要人工参与),这种类型的错误称为系统异常。处理方式:step1 throws 系统异常。step2 在 web.xml 中,配置一个错误处理页面。 500 /error.html 13、Servlet容器如何处理请求资源地址:比如http:/ip:port/appname/abc step1, 依据 appname,找到对应的应用;然后,依据web.xml 中的 url-pattern与/abc匹配。step2,匹配过程 : a,精确匹配b,通配符匹配 :即使用 *,* 代表任意的字符串。c,后缀匹配 : 以*. 开头,后面加上任意的字符串。比如 *.do 。匹配任意以 .do 结尾的请求。step3 如果匹配不成功,此时,会查找对应的资源,,认为这是一种静态资源,若找到,则返回,找不到,返回404。14、servlet的生命周期及核心的类与接口(重点):1、生命周期是什么?Servlet 容器如何去创建Servlet 实例、分配资源、调用其方法、销毁实例的整个过程。2、Servlet 的生命周期分为四个阶段:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 13 页 - - - - - - - - - 达内 IT 培训集团- 8 - 由于本人知识水平有限,总结的笔记中倘若有错误的地方,欢迎联系我批评指证;Email :1) 创建 servlet 对象,第一次请求到来时才会创建servlet 对象(默认)。2) 调用 servlet 对象的 init ()方法,初始化servlet 的信息, init()方法只会在创建后立即被调用一次;而不是每一个用户请求都会调用该方法。3) 响应请求,调用service()或者是doGet(),doPost()方法来处理请求,这些方法是运行在多线程的状态下。4) 在长时间没有调用或者是服务器关闭,会销毁servlet 对象 ,同时在销毁 servlet 对象之前调用destroy()方法。3、通过 web.xml 配置 servlet对象的创建时机:在 标签中使用 数字 ,表示服务器启动时创建,并依照数字的大小按顺序创建,小数字先加载。4、通过 web.xml 配置 servlet初始化参数:通过在 标签中使用 标签配置初始化参数,并可以通过ServletConfig 对象调用getInitParameter(String name)方法来得到初始化参数;当没有要取的参数时,会返回null。5、生命周期相关的类与接口:a,Servlet 接口:初始化方法: init(ServletConfig config); 销毁 Servlet 实例之前,执行该方法:destroy(); 处理请求: service(ServletRequest req,ServletResponse res); b,GenericServlet 抽象类:实现了 init(),destroy() 方法。c,HttpServlet 抽象类:继承 GenericServlet,实现了service()方法, service(HttpServletRequest req, HttpServletResponse res);该方法依据请求方式: 如果是 get 请求,会调用 doGet(req,res)方法,否则,调用doPost(req,res)方法。所以开发一个Servlet,可以选择override HttpServlet的service()方法,或者override HttpServlet 的 doGet(),doPost()方法。d,HttpServletRequest是ServletRequest的 子 接 口 , HttpServletResponse是ServletResponse的子接口。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 13 页 - - - - - - - - - 达内 IT 培训集团- 9 - 由于本人知识水平有限,总结的笔记中倘若有错误的地方,欢迎联系我批评指证;Email :15、JSP (Java Server Page ) :1)什么是 jsp java server page:java 服务器端页面技术;sun 制订的一种服务器端动态页面生成技术规范,jsp 页面,主要由 html 元素加上少量的java 代码构成; 该页面文件要以.jsp 为后缀保存,不需要开发人员去编译。jsp 开发动态页面, 不再需要使用out.println() 语句,所以,相对 Servlet,要简单得多。 jsp 其本质,是用来简化servlet 中有关表示逻辑生成的一种技术。jsp 从某种意义上讲,其实就是servlet。2)jsp的组成部分a,html( 包括 html,css,js),直接写在 .jsp 文件当中即可。b,java 代码 : java 代码片断 : jsp 表达式 : c,指令告诉 jsp 引擎,在将 .jsp 源文件转换成 .java 源文件时,做一些额外的处理。比如,导包、告诉jsp 引擎, .jsp 源文件的编码是什么等。语法 : 1. 指令 : import 属性 :导包 也可以 pageEncoding 属性:告诉jsp 引擎, .jsp 源文件的编码是什么。contentType 属性:两个作用,一是生成contentType 消息头,另外一个,输出到response 对象上时,使用的编码格式。2. 直接引入内容,这些内容会直接嵌入到页面中。d,隐含对象在.jsp 源文件中,不用声明,就可以直接使用的对象。叫隐含对象。因为 .jsp 源文件在转换成.java 源文件时, jsp 引擎会自动添加隐含对象的创建过程的相关代码。所以,可以直接使用out、request、response 等。3)jsp是如何执行的?jsp 引擎 (容器当中的一个特定模块)将.jsp 源文件转换成.java 源文件 (该 java 文件其实是一个Servlet)。然后编译成.class文件,最后执行service()方法。所以,可以这样认为,jsp 的实质就是一个Servlet。4).jsp源文件如何转换成.java源文件。a,html 转换到 servlet 的 service()方法里,使用out.write() 输出。b, java代码转换到servlet 的 service()方法里,照搬。c, jsp表达式转换到servlet 的 service()方法里,使用out.print() 输出。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 13 页 - - - - - - - - - 达内 IT 培训集团- 10 - 由于本人知识水平有限,总结的笔记中倘若有错误的地方,欢迎联系我批评指证;Email :16、转发(重点) :1)什么是转发? 一个 web 组件( servlet/jsp )将未完成的处理交给另外一个web 组件继续完成。转发所涉及的各个web 组件可以共享request 和 response 对象。2)编程:step1 绑订数据到request 对象上。request.setAttribute(String name,Object obj); request.removeAttribute(String name); Object request.getAttribute(String name); / 如果绑订名不存在,则返回null。step2 获得转发器RequestDispatcher rd = request.getRequestDispatcher(String url); step3 转发rd.forward(request,response); servlet:负责业务逻辑处理(包括数据访问)。jsp:负责生成界面。3)需要注意的问题:在转发之前,response 缓存的数据会被清空。17、转发与重定向的区别:(1)转发的目的地只能是同一个应用内部的各个组件之间;而重定向的目的地是任意的。如果想实现组件之间的跳转,如果是同一个应用的内部,应该用转发(因为效率更高);如果组件之间要共享request 对象,也应该用转发。 ( request/response 对象的生存时间:在一次请求与响应期间存在,超过该范围,容器会销毁该对象)。(2)浏览器地址的地址:转发是不变的,而重定向是变的。(3)转发的各个组件可以共享request 对象,而重定向不行。(4)转发是一件事情未做完,而重定向是一件事情已经做完。18、状态管理:1)什么是状态管理?客户端访问服务器时,需不需要将客户端的相关数据(对服务器的操作,所涉及的数据)记录下来。如果不记录,就是无状态的,反之,则是有状态的。所谓状态管理,就是将客户端的相关数据记录下来。2)如何进行状态管: 。http 协议是一个无状态协议,http 协议有这样一个特点:客户端发起一次请求,服务器响应之后, 立即关闭连接, 当客户端再次发请求时,需要重新建立一个新的连接。也就是说,服务器端不会记录是哪一个客户端发起了请求;这种方式, 不能够进行状态管理。如果要实现状态管理,则需要使用以下两种方式来进行状态管理:a,客户端保存状态名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 13 页 - - - - - - - - - 达内 IT 培训集团- 11 - 由于本人知识水平有限,总结的笔记中倘若有错误的地方,欢迎联系我批评指证;Email :当客户端(一般是浏览器)访问服务器时,服务器将相关的数据以cookie 的形式发送给浏览器,浏览器将cookie 中的数据保存下来。这样,当浏览器下次访问服务器时,会自动将 cookie 中的数据发送给服务器。b,服务器端保存状态将用户的状态记录在服务器端,即session 技术。19、cookie技术(重点) :1)什么是 cookie?cookie 是一种在客户端(浏览器)维护用户状态的状态管理技术。浏览器在访问服务器时,服务器发送一个消息头(set-cookie)及对应的值给浏览器,浏览器会将该消息头对应的值保存到内存或者硬盘上。当浏览器下次访问服务器时,会将这些值再发送给服务器。通过这种方式来维护用户的状态(也就是说,将用户的状态写到了消息头对应的值里面)。2)如何创建cookie?Cookie cookie = new Cookie(String name,String value); response.addCookie(cookie); cookie 的值只能是ascii 字符,需要将中文转化成ascii 表示 ; 保存 cookie 时,使用URLEncoder.encode(); 查询 cookie 时 URLDecoder.decode(); 3) 如何查询cookie?Cookie request.getCookies(); 如果没有cookie,则返回null。Cookie.getName():cookie 名字Cookie.getValue():cookie 的值4)cookie 的生存时间:默认情况下, cookie 会被浏览器保存到内存里,当浏览器关闭,cookie 会被删除。可以通过调用Cookie.setMaxAge(int seconds): 设置 cookie 生存时间seconds 0: cookie 会被保存到硬盘上,浏览器关闭,cookie 有可能还存在。seconds = 0: 删除 cookie,如:Cookie c = new Cookie(username,); c.setMaxAge(0); response.addCookie(c); 5)cookie 的路径问题:浏览器在向服务器发送请求之前,先比较cookie 的路径与要访问的服务器的地址。只有符合要求的服务器地址(即要访问的地址是cookie 的路径的子路径或者相等),才会携带对应的 cookie。cookie 的路径,在默认情况下,与保存cookie 的组件的路径是一致的。可以通过Cookie.setPath()来设置 cookie 的路径。Cookie.setPath(/appname): 此时,该cookie 可以被 appname 包含的所有组件访问。Cookie.setPath(/): 此时,该cookie 可以被部署在同一台服务器上的所有应用中的组件访问。比如:如下图的服务器文件结构名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 13 页 - - - - - - - - - 达内 IT 培训集团- 12 - 由于本人知识水平有限,总结的笔记中倘若有错误的地方,欢迎联系我批评指证;Email :+ appname | + a | | *saveCookie.jsp| | *getCooki e2.jsp| | + b | | | *getCookie3.jsp| *getCookie1.jsp保存 someKey 的组件是 saveCookie.jsp,此时 cookie 的路径是 /appname/a 访问 someKey 的组件是 getCookie1.jsp,此时,地址是 /appname, 因为 /appname/a 是/appname 的子路径,所以,浏览器不会发送cookie 给服务器。访问someKey 的组件是getCookie2.jsp, 此时地址是/appname/a, 因为 /appname/a与/appname/a一致,会发送cookie。访问someKey 的组件是getCookie3.jsp 此时,地址是/appname/a/b, 也会发送cookie。6)cookie 的限制:a,用户可以禁止cookie。b,cookie 的数量也有限制(浏览器保存的cookie 的数量,比如ie,大约 300) 。c,cookie 的大小有限制(大约是4k) 。d,cookie 的值只能是字符串,并且需要考虑编码问题。7)cookie 的常见使用:a,记住用户的使用习惯;b,自动登录;c,购物车(与session 一起实现)。20、session 技术(重点) :1)什么是 session? 在服务器端维护用户状态的状态管理技术。浏览器在访问服务器时,服务器会创建一个对象( session对象),然后,在默认情况下,服务器会将session 对象对应的sessionId(每一个 session对象都有唯一的sessionId)以 cookie 机制发送给浏览器。 浏览器下次访问服务器时,会将 sessionId发送给服务器, 服务器依据sessionId查找对应的session对象。通过这种方式,来维护用户的状态 (可以这样理解, 相当于每一个用户在服务器端有一个与之对应的session对象,用户的状态就保存在该对象里)。2)如何创建session? 方式一: HttpSession session = request.getSession(); 方式二 : HttpSession session = request.getSession(boolean flag); 当 flag 为 true 时: 当请求到达服务器时,服务器会检查请求中是否包含sessionId,如果没有,则创建一个session 对象。如果有,依据sessionId 查找对应的session 对象,如果找到,则返回,如果找不到,则创建一个新的session 对象。当 flag 为 false 时: 当请求到达服务器时,服务器会检查请求中是否包含sessionId,如果没有, 返回 null。如果有,依据sessionId 查找对应的session 对象,如果找到,则返回。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 13 页 - - - - - - - - - 达内 IT 培训集团- 13 - 由于本人知识水平有限,总结的笔记中倘若有错误的地方,欢迎联系我批评指证;Email :request.getSession()与request.getSession(true) 完全一样。3)session的几个常用方法:session.setAttribute(String name,Object obj);/向 session 中设置属性Object session.getAttribute(String name);/找不到,返回null。session.removeAttribute(String name); String session.getId();/ 获得 sessionId 4)session对象的生存时间:对于不同的服务器,session 对象会有不同的默认生存时间,比如tomcat,默认是 30 分钟。超过指定时间,不去访问session对象,服务器会删除session对象。可以设置最大不活动时间session.setMaxInactiveInterval(int seconds); 也可以使用配置文件,设置超时限制。对于整个服务器设置:在tomcat_home/conf/web.xml 30 也可以,针对单个应用来设置:在WEB-INF/web.xml 30 5)删除 session对象:session.invalidate(); 6)session的常见使用 (参照课上代码复习):a、session 验证:step1 在登录成功以后,向session 绑订相应的数据:session.setAttribute(); step2 在需要受保护的页面或者资源,添加判断:session.getAttribute() ;如果为null,说明没有登录,跳转到登录页面。b、验证码:(一般使用servlet 生成)step1 设置消息头 :response.setContentType(image/jpeg); step2 使用 java.awt 提供的 java 类生成图片 ; step3 压缩图片并输出step4 使用验证码; 在生成验证码时,在 session中保存该验证码,并以图片的形式将验证码发送给客户端(即浏览器);客户端输入的验证码与session中保存的验证码作比较。step5 客户端jsp 中点击“看不清,换一个”请求要每次都不一样,请求的后面要加Math.random() 或 new Date()等手段。c、购物车:step1 创建购物车购物车、商品实体;step2 完成实体对应的DAO层编码;step3 在 servlet 中把 session 中对购物车进行业务操作;step4 在 jsp 中把 session 中购物车里的信息打到页面中和发出请求给后台的servlet。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 13 页 - - - - - - - - -

    注意事项

    本文(2022年servlet教程和JSP教程 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开