一、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. Android Studio 修改主题

    http://jingyan.baidu.com/article/6f2f55a18040aeb5b93e6cb4.html

  2. Linux 下安装配置 JDK1.7

    目录[-] 1.下载JDK 2.解压安装 3.配置环境变量 4.配置默认JDK(一般情况下这一步都可以省略) 5.测试 1.下载JDK Linux操作系统是:Centos6.5-x64 目前最新的JD ...

  3. new del 问题

    实验一: new_del_caller工程(静态库) -new_del_caller.cpp #include <new> void new_del_caller() { ]; delet ...

  4. git 使用系列(一)—— git stash 的使用

    1. git 放弃本地修改 git checkout . #本地所有修改的.没有的提交的,都返回到原来的状态 git stash #把所有没有提交的修改暂存到stash里面.可用git stash p ...

  5. apache RewriteCond RewriteRule

    http://www.rockbb.com/blog/?p=319 http://www.cnblogs.com/scgw/archive/2011/12/10/2283029.html 我的理解:当 ...

  6. Brain Network (medium)

    Brain Network (medium) Further research on zombie thought processes yielded interesting results. As ...

  7. vim的复制粘贴小结(转)

    原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry 内容: 用vim这么久 了,始终也不知道怎么在vim中使 ...

  8. 关于MySql中自增长id设置初始值

    在MySQL数据库,设置了id为自增长类型,但由于程序还处于开发阶段,很容易的会产生错误数据,然后就直接删除了,可是id的自增长值没有跟着减少,这里提示: 如果表中数据没有用,直接删除了数据,自动增长 ...

  9. Spring注入值得2种方式:属性注入和构造注入

    Spring是一个依赖注入(控制反转)的框架,那么依赖注入(标控制反转)表现在那些地方了? 即:一个类中的属性(其他对象)不再需要手动new或者通过工厂方法进行创建,而是Spring容器在属性被使用的 ...

  10. zookeeper常用sehll命令

    ZooKeeper服务命令: 在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作 1. 启动ZK服务:       sh bin/zkServer.sh start ...