一、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. tps,qps

    http://blog.itpub.net/22664653/viewspace-767265/

  2. STM32片上Flash内存映射、页面大小、寄存器映射

    STM32片上Flash内存映射.页面大小.寄存器映射 STM32有4种Flash module organization,分别是:low-density devices(32KB,1KB/page) ...

  3. ZOJ 3696 Alien's Organ 概率论 泊松分布

    看了好久的题,但还是看得一脸蒙圈,感觉完全无从下手,我的队友告诉我可能是正太分布之类的,但我感觉不太像,后来才听同学说是泊松分布,才恍然大悟,概率论刚刚学过这里不久,不禁感叹,学会了还要会用啊... ...

  4. Mac系统下安装Tomcat,以及终端出现No such file or directory的错误提示解决方案

    Tomcat,作为一个免费的服务器口碑实在太好,本想安装一个研究研究,无奈电脑是mac系统,在网上搜了一些安装方法总是出错,直到遇到了这篇博客,http://www.cnblogs.com/qingy ...

  5. DataGridView如何实现列标头带数据筛选功能,就象Excel高级筛选功能一样

    '近日有本论坛网友问:DataGridView如何实现列标头带数据筛选功能,就象Excel高级筛选功能一样 '今晚正好闲着没事,加之以前也没用到过这个需求,所以就写了个模拟功能,供各位坛友酌情参考. ...

  6. 转 Android HttpClient post MultipartEntity - Android 上传文件

    转自  http://blog.csdn.net/hellohaifei/article/details/9707089 在Android 中使用HttpClient,MultipartEntity ...

  7. angular中控制器之间的通讯方式

    1, 利用作用域的继承方式 由于作用域的继承是基于js的原型继承方式,所以这里分为两种情况,当作用域上面的值为基本类型的时候,修改父作用域上面的值会 影响到子作用域,反之,修改子作用域只会影响子作用域 ...

  8. Ajax 下拉加载数据

    $(document).scroll(function() { var pageHeight = $(document).height()-$(window).height(); var bodySc ...

  9. Quick Cocos2dx Http通讯 JSON

    参考: 1 http://stackoverflow.com/questions/5975952/how-to-extract-http-message-body-in-basehttprequest ...

  10. ZOJ 3940 Modulo Query

    0--M对某个数字取模,相当于把0--M区间进行切割,每次暴力切割一下.结果的算的时候二分一下即可... 看了官方题解才会... #include<cstdio> #include< ...