zoukankan      html  css  js  c++  java
  • <<< web里面Servlet高级应用的基础介绍

    Servlet中的页面跳转?
    两种方式,实现跳转:内部跳转(请求转发)、外部跳转(重定向)
    内部跳转(请求转发)特点:在服务器内部完成页面之间的跳转;请求只有一次;浏览器地址不会改变。
    request.getRequestDispatcher(“路径”).forward(reuqest,response);
    request.getRequestDispatcher(“路径”).include(reuqest,response);

    外部跳转(重定向)特点:通知客户端重新发送请求;请求次数为二次;浏览器地址栏会改变。
    response.sendRedirect(“路径”);

    内部跳与外部跳最重要的区别:
    内部跳转,请求为一次——request对象是同一个(不同页面中);可以利用request传递数据。
    外部跳转,请求为二次——request对象不是同一个;不能使用request传递数据。

    中文问题?
    支持中文的编码格式:GBK(简体+繁体)、GB2312(简体)、UTF-8(unicode编码,支持国际通用语言编码)
    MyEclipse工具中出现乱码?
    菜单栏打开Window--->首选项(最后一个)-->基本选项(第一个)-->content Types -->Text(java source file)

    程序中的乱码:
    post提交处理方式:
    在程序中的第一行写入:
    request.setCharacterEncoding(“与jsp页面编码必须一致”);
    response.setCharacterEncoding(“与jsp页面编码必须一致”);

    get提交处理方式:
    get提交不能按照post方式进行处理;原因是:数据提交到服务器之前,已经被浏览器设定了编码。(ISO-8859-1编码,标准英语)
    String txtname = request.getParameter("txtname");
    txtname = new String(txtname.getBytes("ISO-8859-1"),"与jsp页面编码必须一致");

    Session的会话跟踪技术?
    1. 什么是Session?
    Session(会话)——客户端一次请求,服务器端一次响应;这个过程称之为会话。
    什么是JavaWeb的会话跟踪技术?
    在服务器端记录客户端的相关信息,客户端第二次以后的访问;服务器能够识别每一个客户端。
    如何使用会话跟踪技术?
    使用会话跟踪技术核心对象:Session对象。
    Session对象:每一个客户端第一次访问服务器的时候,服务器分配一个唯一的SessionID给用户,下一次访问服务器的时候,根据SessionID区分每一个用户。(跟银行类似)
    注意:每一个Session对象,相互独立;默认以浏览器为单位(同一个浏览器默认为同一个用户,浏览器关闭session消失)。
    Session用来存、取数据使用,常用方法:
    setAttribute(“名字”,”值”);
    getAttribute(“名字”);
    注意:只要能够获取到session对象,都可以使用session中的数据(跟跳转方式无关)。
    设置Session有效时间(Session默认30分钟):
    setMaxInactiveInterval(时间值单位秒)。
    invalidate();当前Session立即失效(退出)。

    会话跟踪技术:
    Cookie(原理:通过浏览器往客户端写入Cookie文件,来识别不同的用户;也可以设置        有效日期)
    Session(利用Session对象,完成客户追踪;浏览器关闭session就消失(不可用);                session.invalidate() session立即失效)
    URL重写、隐藏域技术(URL重写是通过地址栏,不断的传递SessionID来区分用户)。

    Cookie 与 Session 异同:
    相同:都可以实现会话跟踪(存放用户的相关信息)。
    不同点:Cookie不以浏览器关闭为标准;以设置的有效时间为标准(可以实现离线跟踪)。
            Session必须保证浏览器不关闭的情况,才能获取到。

    Servlet中的线程安全
    Servlet在运行时,只有一个实例对象(通过Servlet的生命周期);保证用户能够独立访问Servlet,采用了多线程技术。
    作用:效率更高,用户与用户之间独立开。
    缺点:线程安全问题(多个线程,同时操作一个变量(数据))
    解决方案:尽量不要在Servlet中使用全局变量。

  • 相关阅读:
    C#基础知识整理:C#类和结构(1)
    C#窗体读取EXCEL存入SQL数据库
    C# 编码标准(一)
    C# 网络编程之webBrowser获取网页url和下载网页中图片
    【转】100个比较实用的促销方案
    Linux之JDK1.8的安装
    【转】Ubuntu做日常开发电脑的系统是一种怎样的体验
    Shell学习---Shell脚本的静态检查工具shellcheck
    【转】Nginx学习---Nginx&&Redis&&hcache三层缓存架构总结
    【转】MySQL双主一致性架构优化
  • 原文地址:https://www.cnblogs.com/cnsevennight/p/3820420.html
Copyright © 2011-2022 走看看