Head First Servlets & JSP 学习笔记 第四章 —— 作为Servlet
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的更多相关文章
- Head First Servlets & JSP 学习笔记 第三章 —— MVC迷你教程
临渊羡鱼,不如退而结网!是时候动手搞事情了! 我们的四大步骤: ①分析用户的视图(也就是浏览器要显示的东西),以及高层体系结构: (这个就是所谓的前端吧?用JSP?JSP可以当成Html来用吧?高层体 ...
- Head First Servlets & JSP 学习笔记 第十一章 —— Web应用部署
jar:java archive(java归档) war:web archive(web归档) war文件只是Web应用结构的一个快照,采用了一种更可移植的压缩形式(它实际上就是一个jar文件).建立 ...
- Head First Servlets & JSP 学习笔记 第七章 —— 作为JSP
<%@ …… %> 这是指令 <%@ page ……import="java.util.Date" %> 这是page指令,import是page指令的一个 ...
- Head First Servlets & JSP 学习笔记 第五章 —— 作为Web应用
初始化参数:(init-param) 初始化参数写在web.xml文件中:(写在<servlet>标签内部) <servlet> <servlet-name>Bee ...
- Head First Servlets & JSP 学习笔记 第十三章 —— 过滤器的威力
过滤器可能是最强大的Web应用开发工具了! 与Servlet非常类似,过滤器就是Java组件,请求发送到Servlet之前,可以用过滤器截获和处理请求:另外Servlet结束工作之后,但在响应发回给客 ...
- Head First Servlets & JSP 学习笔记 第六章 —— 会话状态
MVC中的M(模型),通常就是一个普通的类,这个类里面的信息就是业务逻辑. 会话(Session) 我们可以使用一个HttpSession对象,来保存横跨多个请求的会话状态. HTTP协议使用的是无状 ...
- [Python学习笔记][第四章Python字符串]
2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...
- Head First Servlets & JSP 学习笔记 第二章 —— Web应用体系结构
Servlet没有main()方法,所以Servlet受其他人控制,这个其他人就是容器!而Tomcat就是一种容器. 容器向Servlet提供Http请求和Http响应:容器来调用Servlet的do ...
- o'Reill的SVG精髓(第二版)学习笔记——第四章
第四章:基本形状 4.1线段 SVG可以使用<line>元素画出一条直线段.使用时只需要指定线段起止点的x和y坐标即可.指定坐标时可以不带单位,此时会使用用户坐标,也可以带上单位,如em. ...
随机推荐
- centOS6.6网络设置
linux的网卡IP地址是存放在文件中的,这个配置文件在/etc/sysconfig/network-scripts下, 名称分别为ifcfg-eth0,ifcfg-eth1等 如果你只有一块网卡,就 ...
- 制作基于U盘启动和网络常识
一.制作基于U盘启动的操作系统盘1.准备相关的软件和硬件 下载软件并安装到[电脑]中 ——大白菜.老毛桃 硬件——U盘(空的) 2.插入U盘,点击桌面上的[大白菜装机版]打开大白菜, 点击[一键制作U ...
- C++与java编程区别(一)
转载自http://blog.sina.com.cn/s/blog_75f4e17c0101295o.html C++ HelloWorld main.cpp #include< iostrea ...
- Python之路 - 网络编程初识
Python之路 - 网络编程初识 前言
- Oracle登录后提示ORA-12154:TNS:无法解析指定的连接标识符
下午重装系统,安装Oracle,设置了首选项的Oracle主目录名和OCI库,但还是提示ORA-12154:TNS:无法解析指定的连接标识符 纠结了好久,发现刚装系统没设置Oacle数据库的系统环境变 ...
- jQuery之dom操作(取赋值方法)
取赋值相关方法: .html() .text() .size() .addClass() .removeClass() .has ...
- &符号 (弃用引用传参了,不要用!!)
写法一 $age = function grow($age) { $age += ; return $age; } echo grow($age) echo $age 写法二 $age = funct ...
- mysql读写分离 主从同步
MySQL主从复制与读写分离的实现 转载 2013年01月17日 18:20:12 MySQL主从复制与读写分离 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy) ...
- jquery val() text() html()的区别
value()主要用在表单元素上,如果其他的元素获取value是通过attract()的方法,text()是获取元素的纯文本,如果text(“content”)就会更改元素的文本内容:html()获取 ...
- mysql查询记录修改时间于现在大于30分钟
(unix_timestamp(now())-`updatetime`)>1800