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. css:清楚浮动

    这个清楚浮动的方法最常用,给浮动字元素的父盒子,也就是不浮动元素,添加一个lhearfix的类,其类的css样式为: .clearfix:after{ /*必须要写这三句话*/ content:''; ...

  2. JSP基本_JSTL

    自定义标签是,用户定义自己的处理的tag的机制. JSTL是,JSP用标准自定义标签.从JSTL Ver.1.2开始成为JavaEE5的子集.比较有名的是Glassfish.Tomcat上开发的话,需 ...

  3. 转: 日期格式参考extjs api文档中的Date类型

    var md = new Ext.form.DateField({ //下面的格式是:2000-01-01 00:00:00 format: 'Y-m-d H:i:s', ............ } ...

  4. DD-WRT动态更新WAN口MAC

    将代码在command窗口粘贴后,另存为startup,然后重启路由即可 #!/bin/ash MAC=`(date; cat /proc/interrupts) | md5sum | sed -r ...

  5. 记录在Centos下安装和使用Git的过程,从github上克隆仓库和提交。

    1 安装git yum install git 2配置DNS vi /etc/resolv.conf nameserver 8.8.8.8nameserver 8.8.4.4 3 设置网关 vi /e ...

  6. JAVAWEB 一一 Sturts2+ibatis(框架,Sturts2,用action代替servlet)

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2 ...

  7. 吴裕雄 python神经网络(6)

    import randomimport numpy as npnp.random.randint(0,49,3) ##required libarariesimport tensorflow as t ...

  8. centos 安装mysql数据库

    在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB. 1 下载并安装MySQL官方的 Yum Re ...

  9. oracle 日志恢复数据

    1:首先查找redo,如果redo有可供恢复的信息,就那redo中的信息进行恢复,此时一般在恢复时,类似如下:SQL> recover database;Media recovery compl ...

  10. 编译模块的Makefile解析

    Makefile # if not defined KERNELRELEASE, command is running from command line,need invoke kbuild sys ...