Servlet的任务是得到一个客户的请求,再发回一个响应。

请求:

容器控制着Servlet的一生,它会创建请求和响应对象、为Servlet创建一个新线程或分配一个线程,另外调用Servlet的service()方法,并传递请求和响应对象的引用作为参数。

每个客户请求都会分配一个单独的线程来处理,但是Servlet实例只有一个(对于一个JVM而言)

在一个JVM中,一个Servlet实例只有一个,因此Servlet的构造函数、init()初始化函数、destory()销毁函数都调用一次。

Servlet的构造函数不要重写,就使用父类HttpServlet的构造方法;service()方法也不要重写,就使用父类HttpServlet的service()方法。init()初始化方法可以重写,doGet()或者doPost()方法必须重写一个或都重写。

Servlet的构造函数只是实例化了一个普通的对象,要想成为Servlet,对象必须具备一些“Servlet特性”。

HTTP1.1里有8个方法,不过对于大多数Servlet开发来说,只会用到doGet()、doPost()方法。

GET和POST的区别:①POST有一个体。【GET和POST都能发送参数,但是GET的参数只能放在请求行中,参数数量有限制;而POST方法可以将参数放在体中,想放多少放多少】

②另外,GET方法,参数会显示在浏览器的地址栏,不隐私不安全。③GET请求可以建立书签,而POST不能。④GET方法对服务器不会做任何改变,POST方法可以。

HTTP GET方法只是要得到东西,它不会修改服务器上的任何内容。所以,GET方法是幂等的。它能执行多次,而且不会产生任何不好的副作用。POST不是幂等的,POST体中提交的数据可能用于不可逆转的事务。

获取请求中的一个参数:String s = request.getParameter("color");  获取请求中的多个参数:String[] arr = request.getParameterValues("sizes");

响应:

response.setContentType("text/html; charset=utf-8");

response.setContentType("application/jar");  //告诉浏览器要发回什么类型的内容,一般总是要写在最前面

对于输出,只有2种选择,字节或字符

使用response.sendRedirect("http://www.oreilly.com"); 进行Servlet重定向(客户端跳转)。参数是一个字符串,可以是绝对URL,也可以是相对URL。

请求分派(服务器端跳转),重定向(客户端跳转)。

Head First Servlets & JSP 学习笔记 第四章 —— 作为Servlet的更多相关文章

  1. Head First Servlets & JSP 学习笔记 第三章 —— MVC迷你教程

    临渊羡鱼,不如退而结网!是时候动手搞事情了! 我们的四大步骤: ①分析用户的视图(也就是浏览器要显示的东西),以及高层体系结构: (这个就是所谓的前端吧?用JSP?JSP可以当成Html来用吧?高层体 ...

  2. Head First Servlets & JSP 学习笔记 第十一章 —— Web应用部署

    jar:java archive(java归档) war:web archive(web归档) war文件只是Web应用结构的一个快照,采用了一种更可移植的压缩形式(它实际上就是一个jar文件).建立 ...

  3. Head First Servlets & JSP 学习笔记 第七章 —— 作为JSP

    <%@ …… %> 这是指令 <%@ page ……import="java.util.Date" %> 这是page指令,import是page指令的一个 ...

  4. Head First Servlets & JSP 学习笔记 第五章 —— 作为Web应用

    初始化参数:(init-param) 初始化参数写在web.xml文件中:(写在<servlet>标签内部) <servlet> <servlet-name>Bee ...

  5. Head First Servlets & JSP 学习笔记 第十三章 —— 过滤器的威力

    过滤器可能是最强大的Web应用开发工具了! 与Servlet非常类似,过滤器就是Java组件,请求发送到Servlet之前,可以用过滤器截获和处理请求:另外Servlet结束工作之后,但在响应发回给客 ...

  6. Head First Servlets & JSP 学习笔记 第六章 —— 会话状态

    MVC中的M(模型),通常就是一个普通的类,这个类里面的信息就是业务逻辑. 会话(Session) 我们可以使用一个HttpSession对象,来保存横跨多个请求的会话状态. HTTP协议使用的是无状 ...

  7. [Python学习笔记][第四章Python字符串]

    2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...

  8. Head First Servlets & JSP 学习笔记 第二章 —— Web应用体系结构

    Servlet没有main()方法,所以Servlet受其他人控制,这个其他人就是容器!而Tomcat就是一种容器. 容器向Servlet提供Http请求和Http响应:容器来调用Servlet的do ...

  9. o'Reill的SVG精髓(第二版)学习笔记——第四章

    第四章:基本形状 4.1线段 SVG可以使用<line>元素画出一条直线段.使用时只需要指定线段起止点的x和y坐标即可.指定坐标时可以不带单位,此时会使用用户坐标,也可以带上单位,如em. ...

随机推荐

  1. ACM__搜素之BFS与DFS

    BFS(Breadth_First_Search) DFS(Depth_First_Search) 拿图来说 BFS过程,以1为根节点,1与2,3相连,找到了2,3,继续搜2,2与4,相连,找到了4, ...

  2. python实现最大重叠子串的查找

    #!/usr/bin/python #查找最大重叠子串 def FindMaxDup(in_str): str_len = len(in_str) result = '' #逐级扩大搜索长度# lev ...

  3. linux 3.10 tcp的accept测试

    net.ipv4.tcp_abort_on_overflow 为 0 有个兄弟跟我说accept的时候,如果故意不去accept,那么客户端connect的时候,一开始很快,后来就很慢: connec ...

  4. [PC]PHPCMS v9.5.6整合UEditer1.4.2

    ----------------------------------------------------------------------------------------------- 首先去U ...

  5. C#自制Web 服务器开发:用C#开发自己的Web服务器

    当输入: GET / HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Accept-Language: zh-CN User-Agent: ...

  6. Windows组件下载地址

    Windows下载中心 http://www.microsoft.com/zh-cn/download/default.aspx IE10下载地址 http://www.microsoft.com/z ...

  7. 使用AutoMapper时Expression的转换

    此文章为转载:http://www.bubuko.com/infodetail-699735.html 参考链接: http://q.cnblogs.com/q/34480/   dudu有回复,其中 ...

  8. 吴裕雄 20-MySQL NULL 值处理

    MySQL NULL 值处理我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作.为了 ...

  9. hadoop-2.7.3完全分布式部署

    一.环境介绍      IP       host JDK linux版本 hadop版本 192.168.0.1 master 1.8.0_111 centos7.2.1511 hadoop-2.7 ...

  10. vue-concise-slider 一个轻量的vue幻灯片组件

    vue-concise-slider 一个轻量的vue幻灯片组件 阅读 541 收藏 35 2017-07-03 原文链接:github.com 外卖订单处理有烦恼?试试美团点评餐饮开放平台吧,可实现 ...