一、HTTP请求信息

请求行

请求头

空行

消息体

1、防盗链:

枚举类型:

二、中文乱码问题

1、Get提交

String username = request.getParameter("username");

new String(username.getBytes("iso--8859-1"),"utf-8");

2、Post提交

request.setCharsetEncoding("utf-8");

响应时乱码问题

第一种方式:response.setContentType("text/html; charset=utf-8 ");

第二种方式:response.setCharsetEncoding("utf-8");

终极解决方法:过滤器解决乱码问题

response其它方法: 禁止页面缓存

三、WEB资源的三种关系

1、请求转发:javax.servlet.RequestDispatcher            ---同一个应用下使用,/代表项目根目录

获得RequestDispatcher对象     request.getRequestDispatcher("New.jsp")

调用forword方法          .forword(request,response);

地址栏的变化

request传递属性值方法

2、请求重定向:request.setRedirect("http://www.baidu.com");          ---使用外网资源使用,/代表服务器根目录

请求转发和请求重定向的区别:

ServletContext对象:

一个Web应用只有一个ServletContext对象

ServletConfig对象:

和Servlet是一对一的关系

ContextPath对象:

获得当前项目根目录

URL传参:与Get提交表单方式一致,格式:

四、会话跟踪

http协议是无状态协议,客户端与服务器并不是保持永久连接,而是请求一次响应一次

应用:购物车,显示用户登录状态

会话跟踪的四种实现方式:

1、URL重写:通过地址传参   要求两个请求资源要有关联、互相访问

2、隐藏域:在表单中设置隐藏域,然后在另一个页面读取

<input type="hidden" id=" " name=" "/>

3、cookie对象:将数据存到客户端cookie对象

每个客户端最多存放300个cookie对象

从请求中获取cookie

向响应对象中添加cookie

4、httpSession对象:数据存到session对象(session与请求对象无关),

sessionID:120位二进制码

获得session的两种方式

  request.getSession();

request.getSession(false);

session.setMaxInactiveInterval(60*30);

在web.xml配置:

<session-config>

<session-timeout>30</session-timeout>

</session-config>

session的生命周期:

验证码原理:

java系列--HTTP协议的更多相关文章

  1. 为什么你学不会递归?告别递归,谈谈我的一些经验 关于集合中一些常考的知识点总结 .net辗转java系列(一)视野 彻底理解cookie,session,token

    为什么你学不会递归?告别递归,谈谈我的一些经验   可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! ...

  2. Java系列笔记(5) - 线程

    我想关注这个系列博客的粉丝们都应该已经发现了,我一定是个懒虫,在这里向大家道歉了.这个系列的博客是在我工作之余写的,经常几天才写一小节,不过本着宁缺毋滥的精神,所有写的东西都是比较精炼的.这篇文章是本 ...

  3. 【JAVA系列】Google爬虫如何抓取JavaScript的?

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[JAVA系列]Google爬虫如何抓取Java ...

  4. Java系列笔记(2) - Java RTTI和反射机制

    目录 前言 传统的RTTI 反射 反射的实现方式 反射的性能 反射与设计模式 前言 并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这 ...

  5. Java系列笔记(4) - JVM监控与调优

    目录 参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例     光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之.通过学习,我觉得JVM ...

  6. Java系列笔记(3) - Java 内存区域和GC机制

    目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbage Collection, ...

  7. Java系列笔记(1) - Java 类加载与初始化

    目录 类加载器 动态加载 链接 初始化 示例 类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理解java其它机制将有重要作用. 每个类编译后产生一个 ...

  8. Java系列笔记(6) - 并发(上)

    目录 1,基本概念 2,volatile 3,atom 4,ThreadLocal 5,CountDownLatch和CyclicBarrier 6,信号量 7,Condition 8,Exchang ...

  9. 【转】O'Reilly Java系列书籍建议阅读顺序(转自蔡学庸)

    Learning Java the O'Reilly's Way (Part I) Java 技术可以说是越来越重要了,不但可以用在计算机上,甚至连电视等家电用品,行动电话.个人数字助理(PDA)等电 ...

随机推荐

  1. 仿360新闻的热搜图片,win8风格随机九宫格布局

    360新闻地址:http://sh.qihoo.com/i/ 感觉这效果挺好的,随机九宫格,在不少地方可以用到,就研究了下他的源码,基本原理就是预先定义好几种布局模块,然后根据需要进行拼接,具体代码可 ...

  2. 设计模式之建造者模式(Builder)

    一个人活到70岁以上,都会经历这样的几个阶段:婴儿,少年,青年,中年,老年.并且每个人在各个阶段肯定是不一样的呀,我觉得可以说世界上不存在两个人在人生的这5个阶段的生活完全一样,但是活到70岁以上的人 ...

  3. android zip解压缩

    android  zip解压缩 public class ZipUtils { public ZipUtils() { } /* 以输入流的形式解压 */ public static void UnZ ...

  4. 一种快速查询多点DS18B20温度的方法(转)

    源:http://hi.baidu.com/james_xiao/item/79b961c90623093e45941623 一种快速查询多点DS18B20温度的方法 引言      为了满足实时性要 ...

  5. java dom4j解析xml实例

    java利用dom4j解析xml 需要的jar包: dom4j官方网站在 http://www.dom4j.org/ 下载dom4j-1.6.1.zip 解开后有两个包,仅操作XML文档的话把dom4 ...

  6. C#对象序列化笔记

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...

  7. ICE异步程序设计-----AMI/AMD

    1 简介 AMI 异步方法调用(AMI) 这个术语描述的是客户端的异步编程模型支持. 如果你使用AMI 发出远地调用,在Ice run time 等待答复的同时,发出调用的线程不会阻塞.相反,发出调用 ...

  8. MVC3在页面上获取当前控制器名称、Action名称以及路由参数

    获取控制器名称: ViewContext.RouteData.Values["controller"].ToString(); 获取Action名称: ViewContext.Ro ...

  9. 小P的强力值

    小P的强力值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi在虚拟世界中有一只小宠物小P.小P有K种属性,每种属性的初始值为Ai.小Ho送给了小Hi若干颗药丸,每 ...

  10. tensorflow的Virtualenv安装方式安装

    本文介绍了如何在ubuntu上以virtualenv方式安装tensorflow. 安装pip和virtualenv: # Ubuntu/Linux 64-bit sudo apt-get insta ...