zoukankan      html  css  js  c++  java
  • cookie session URL重写 与考试

    状态管理、CookieSessionURL重写

    HTTP协议:无状态的连接(每次连接都是新的请求)
    1、隐藏字段 <input type=”hidden” name=”session” value=””/> 在响应中进行操作
    2、Cookie 保存到客户端
    3、Session 保存到服务器
    4、用户禁用Cookie:使用URL重写 在URL后加上jsessionid=123;

    Cookie原理
    1、数据以“键-值”对的形式通过响应保存在客户端
    Cookie cookie = new Cookie(“”,””);
    response.addCookie(cookie );
    过期时间:一个会话结束时
    一个浏览器保存Cookie;一个浏览器可以构造多个Cookie
    读取Cookie:
    1、request.getCookies返回一个数组
    2、存储中文 Cookie cookie = new Cookie(“name”,URLEncode.encode(“中文”));
    URLDecoder.decode(“value”);

    Session原理:
    1、每个Session对象有一个唯一的编号,SessionID
    2、服务器以Cookie方式保存在Session中
    3、在浏览器关闭的时候;因为Session保存在服务器中,当浏览器关闭时,SessionID带不过去
    4、session.setMaxInactiveInterval(时间);——发呆时间,到达的最大时间
    默认时间为半小时(1800s)web配置中
    Session.invalidate();——马上销毁session(相当于没有创建Session)
    web配置:<servlet-config>
    <time-out>1</time-out> 分钟为单位
    </servlet-config>
    5、在web.xml
    <session-config>
    <session-timeout>5</session-timeout> 分钟数
    </session-config>
    6、浏览器关闭时并不意味着Session对象被删除,保存在服务器(eclipsse服务器)
    7、Session持久化管理:存放在其中的对象以序列化的形式存放(保存在文件中)
    8、响应:String url = response.encodeURL(“地址”);——派发
    9、应当尽量使用维护时间短的域对象

    JS考试
    1、JAVAScript是只能在浏览器中运行的语言
    2、“=”:赋值 “==”:值 “===”:全相等(数据类型,值)
    3、Alert、setTimeOut 属于window函数
    4、字符串=字符数组
    5、Length为属性,size()为方法
    6、Test:boolean(true,false) excute():返回匹配的值
    7、JS中属性的类选择器:this.className = “和选择器的名字一样”
    8、元素节点:createElement() 文本节点:createTextNode() 注释节点:createComment() 属 性节点:createAttribute()
    9、浏览器对传统事件的指派方法的支持比现代事件更好,现代事件有兼容性
    10、CSS优先级:内联>内嵌>外部样式 !Importtant>id>class>element>伪类>*
    11、JS事件:鼠标事件、键盘事件、HTML事件
    12、刷新页面:触发load事件和unload事件
    13、Window.location.href=””;
    14、绑定事件:onclick=”click()”;///but.onclick=click;
    15、提交表单 document.forms[0].submit();
    16、H1*{color:red} ——只要在h1下面的元素都为红色
    17、Display:none visibility:hidden
    18、Var temp = null;alert(timeof temp);——Object

    作用域对象:在Servlet里可以用一个名字绑定一个对象setAttritute(“name”,name);
    ServletContext(应用上下文) ——整个Web应用程序 (String,Object);
    httpSession(会话)——接口——一个会话交互过程
    ServletRequest(请求)——一次请求过程
    每个Servlet都有自己的Servletcontext();
    得到全局变量
    ServletContext sc = this.getServletContext();
    ServletContext sc = this.getServletConfig(),getServletContext();
    ServletContext sc = request.getSession().getServletContext();
    sc.setAttribute(“text”,”mytext”);——声明全局变量
    线程不安全

    会话作用域Session:对于同一个客户的多个请求,session会跨这些请求持久存储
    HttpSession session = request.getSession();
    session.setAttribute(“name”,”mySession”);
    HttpSessionListener、HttpSessionActivationListener:需在web.xml中注册

    ServletContext/HttpSession/HttpServletRequest
    有同样的三种方法:setAttribute,getAttribute,removeAttribute
    线程不安全

    请求作用域:在请求作用域范围之外就不能进行访问
    request.setAttribute(“name”,”name”);
    线程安全:作用于一个请求之间(可用派发)

    监听器:session/request/application
    Servlet被创建的时间:服务器第一个被请求的时候
    Web.xml <load-on-starup>-11</load-on-starup> 越小越先创建servlet
    Web应用程序的改变事件:增加、删除、修改
    监听容器:1.创建类2.实现接口3.注册监听器web.xml
    <listener>
    <listener-class>映射的路径</listener-class>
    </listener>
    全局的变量的创建:服务器启动的时候
    销毁:服务器关闭的时候
    设置全局变量:web.xml
    <context-param>
    <param-name>name</param-name>
    <param-value>root</param-value>
    </context-param>
    得到全局变量:
    ServletContext sc = event.getServletContext();
    String name = sc.getInitParameter(“name”);
    sc.setAttribute(“myname”,name);

    请求文本域:请求被创建的时候

    打包文件?压缩文件。。

    Servlet过滤器:中间组件,用于拦截源数据和目的数据之间的消息
    (过滤二者之间传递的数据)
    ——可以更改请求的内容,或者重新设置请求头,然后在将请求传递给目标资源,响应也一 样
    多个过滤器组成过滤器链;
    应用:
    认证过滤;
    登录和审核过滤;
    图像转换过滤;
    数据压缩过滤;
    加密过滤;
    令牌过滤;
    资源访问触发事件过滤;
    XSLT过滤;
    MIME-type过滤;web服务器中

    所有的过滤器必须实现javax.servletFilter接口 javax:java扩展包
    过滤器需部署在web.xml
    <error-page>
    <error-code>404</error-code> //错误类型
    <location>error.html</location> //跳转到错误页面
    </error-page>
    <filter>
    <filter-name>class名称</filter-name>
    <filter-class>class包名</filter-class>
    //设置参数
    <init-param>
    <param-name>code</param-name>
    <param-value>utf-8</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>映射的名称filter</filter-name>
    <url-pattern>/需要过滤的servlet</url-pattren>
    <dispatcher>REQUEST</dispatcher> //默认指对请求过滤
    <dispatcher>FORWARD</dispatcher> //需要过滤一遍filter
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>ERROR</dispatcher> //对于错误进行过滤
    </filter-mapping>
    <!-- 为*时,全部都要过滤,甚至html
    <url-pattern>/*</url-pattern> -->
    容器创建:过滤器开启;
    容器关闭或者重载:过滤器关闭;

    FilterCofig:得到初始化参数
    多个filter:先进的后出
    Filter-mapping的位置在前面,则filter在前面,先执行后返回

    http://localhost:8080/Session/one.html
    URI:统一标识符(后面一部分)
    URL:版本号、端口号(所有)
    URI是URL中的一部分

    过滤器的包装类:httpServletRequest/httpServletResponse

    XML:可扩展标记语言
    JSP : JAVA server page (java服务器页面)

  • 相关阅读:
    ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL
    MVC Razor模板引擎 @RenderBody、@RenderPage、@RenderSection及Html.RenderPartial、Html.RenderAction
    二叉树的建立&&前中后遍历(递归实现)&&层次遍历
    实现一个简单的散列表(HashMap)
    单向链表的删除及插入操作(以头插入法建立单向链表)
    单向链表的建立(头插入法)
    单向链表的建立(尾部插入法)
    链式队列(单向列表实现)
    顺序队列(数组实现)
    链式栈(单向链表实现)
  • 原文地址:https://www.cnblogs.com/z1234/p/6131492.html
Copyright © 2011-2022 走看看