//写了注解,就不用在web.xml里进行注册
@WebServlet(urlPatterns="/my",name="my",loadOnStartup=1,initParams={@WebInitParam(name="aaa",value="ddd")})

HTTP状态码:(404:客户端异常;500:服务器异常;302:重定向异常;200:访问正常405::请求方式不对)
100-199:表示信息性代码,标示客户端应该采取的其他动作,请求正在进行。
200-299:表示客户请求成功。
300-399:表示用于已经移走的资源文件,指示新的地址。
400-499:表示由客户端引发的错误。
500-599:表示由服务器端引发的错误。
必须重写doGet(),不然会调用父类的response.sendError(404,"没有该页面");
必须在输出消息前设置状态行(状态行--响应头--空行--消息体)

响应头用于服务器告诉客户端,服务器相关的信息。可以用response.setHeader()进行设置。但是,按照servlet规范,客户端浏览器只能识别特定的
响应头,所以,响应头的设置通常封装成了响应的方法。比如:setHeader(),setContentType(),addCookie(),sendRedirect(),addSession()
response.setHeader("Content-Type","text/html;charset=utf-8") === response.setContentType("text/html;charset=utf-8");

响应消息的消息体内容有两种方式:传回自定义的内容需要使用getWriter()传送普通文本:PrintWriter out = response.getWriter();
或者getOutputStream()方法传送二进制内容:OutputStream out = response.getOutputStream();

验证码防治用户不断暴力登录,主要是为了安全性考虑。
//"/testweb/checkCode?a="+Math.random()清除浏览器缓存
//随机从服务器产生随机数,不会从缓存中去取
//浏览器存在缓存,当客户端浏览器向服务器发送请求时,会将下载的内容在浏览器缓存起来
//如果客户端再次请求服务器的同一个页面,会先看浏览器缓存中是否有下载的资源,
//如果有,会从浏览器缓存中获取资源如果没有,再从服务器下载
$("#codeImg").attr("src","/testweb/checkCode?a="+Math.random());

重定向工作流程:
客户端向服务器发出请求,调用response.sendRedirect()产生响应时,会产生302状态码,同时产生location响应头,在location响应头中指明
新的地址。客户端浏览器在收到响应信息以后,发现时302状态码,会读取location响应头信息,在向服务器发送第二次请求。
java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed//重定向不能使用两次

客户端发送GET请求:
1、用户在网页上点击一个超连接 2、用户提交在网页上填写好的表单(method="get",默认为GET提交) 3、用户在浏览器地址栏中输入URL地址并回车
客户端发送POST请求:
<form method="post">
发送大数据的时候,使用POST方法;上传文件时,使用POST方法;发送用户名、密码或其他保密信息的时候使用POST方法

get请求好处是访问静态资源,post请求主要是用来提交表单和上传文件
GET和POST的区别:
1、流格式的区别:
GET方式只有请求行、请求头、空行,没有消息体。在请求行URL后面附加表单数据。
POST方式包括请求行、请求头、空行,消息体。在消息体中描述表单数据。
2、用途的区别:
GET用于资源查找,POST用于数据传输。
3、传输性能的区别:
GET方式只能传输文本数据,POST可以传输文本和二进制数据。
GET方式不能传输大数据,POST可以。
GET请求数据会显示在地址栏,POST数据在消息体中,不会显示在地址栏,相对安全。
GET会缓存数据,POST不会缓存。

URL包含URI

javaweb笔记三的更多相关文章

  1. JavaWeb笔记三、MVC 设计模式

    一.通过 MVC 进行查询和删除操作 1. 准备一个数据表(examstudent) 2. 创建一个 查询 页面(test.jsp) 通过连接进入 Servlet(listAllStudents.ja ...

  2. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  3. 《CMake实践》笔记三:构建静态库(.a) 与 动态库(.so) 及 如何使用外部共享库和头文件

    <CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...

  4. Mastering Web Application Development with AngularJS 读书笔记(三)

    第一章笔记 (三) 一.Factories factory 方法是创建对象的另一种方式,与service相比更灵活,因为可以注册可任何任意对象创造功能.例如: myMod.factory('notif ...

  5. Python 学习笔记三

    笔记三:函数 笔记二已取消置顶链接地址:http://www.cnblogs.com/dzzy/p/5289186.html 函数的作用: 給代码段命名,就像变量給数字命名一样 可以接收参数,像arg ...

  6. 《MFC游戏开发》笔记三 游戏贴图与透明特效的实现

    本系列文章由七十一雾央编写,转载请注明出处. 313239 作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5 ...

  7. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  8. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  9. 构建高性能WEB站点笔记三

    构建高性能WEB站点笔记三 第10章 分布式缓存 10.1数据库的前端缓存区 文件系统内核缓冲区,位于物理内存的内核地址空间,除了使用O_DIRECT标记打开的文件以外,所有对磁盘文件的读写操作都要经 ...

随机推荐

  1. Tomcat Jboss Apache WebLogic区别与比较(阿里面试)

    1. Tomcat是Apache鼎力支持的Java Web应用服务器,只能做JSP和Servlet的Container,不支持EJB,由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领 ...

  2. Ubuntu17安装Jenkins

    Java安装 Jenkins基于Java, 所以需要先安装java. Linux下安装java只要配置java环境变量即可. 首先,解压java到相应目录,我一般习惯把安装的软件放到目录/usr/lo ...

  3. robotframework+Selenium2Library 模态窗口的处理

    原文链接:https://www.cnblogs.com/zuola/p/5750018.html   所谓模态窗口,就是指除非采取有效的关闭手段,用户的鼠标焦点或者输入光标将一直停留在其上的对话框. ...

  4. quartz.net 3.x版本如何通过xml文件进行Job配置

    在2.x版本中,我们可以简单的在quartz.config文件中通过以下Xml配置方式来注册相应的Job以及触发器 quartz.plugin.xml.type = Quartz.Plugin.Xml ...

  5. 【刷题】BZOJ 4543 [POI2014]Hotel加强版

    Description 同OJ3522 数据范围:n<=100000 Solution dp的设计见[刷题]BZOJ 3522 [Poi2014]Hotel 然后发现dp的第二维与深度有关,于是 ...

  6. BZOJ 2648 / 2716 K-D Tree 模板题

    #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> # ...

  7. 【bzoj4066】 简单题

    http://www.lydsy.com/JudgeOnline/problem.php?id=4066 (题目链接) 题意 维护一个矩阵,两个操作,给某一个元素加上A,求其中一个子矩阵的元素之和.强 ...

  8. 使用tushare的pandas进行to_sql操作时的No module named 'MySQLdb'错误处理

    先写在前面,用tushare获取财经类数据时,完全没有必要用python3版本 py2功能没差别,但是py3有很多地方需要修改参数才能成功运行,无端造成时间的浪费 下面进入正题,这个问题困扰了我一个下 ...

  9. Codeforces 543 B. World Tour

    http://codeforces.com/problemset/problem/543/B 题意: 给定一张边权均为1的无向图. 问至多可以删除多少边,使得s1到t1的最短路不超过l1,s2到t2的 ...

  10. centos7配置上网

    过程请看图: just so so!