基于HTTP协议下的,http请求和http响应。

 
http请求------请求的是服务器中的地方。
1、servlet就是解析http请求和发送http响应。
 
2、servlet是是一个接口。
   List<Student> list=new ArrayList<Student>();---多态---可扩展性好。
   ArrayList<Student> list=new ArrayList<Student>();
   是一个小程序java applet,运行在web服务器中。
   接口和响应来自客户端的基于HTTP协议下的,http请求和http响应。
   要使用必须继承GenericServlet 或者 HttpServlet
   接口中定义了一方法去初始化servlet(自定义)
 
3、怎么用?
      -----你发送的是什么请求,请求谁?请求的类型。
          请求方式get---不具备保密性;数据传送有限制---256个字节。
          post---防止乱码,具备信息的安全性;数据转送无限制--理论上无限制。
 
   创建一个类并且继承HttpServlet
 
 
   <form action="servlet的名称p-add.do" method="post/get">
     <input type="text" name="stu_id"/>谁是世界上最帅的男人?
     <input type="submit" value="提交"/>
   </form>
 
 
   配置web.xml文件--作用:处理谁找谁的问题?
 
   配置servlet
     <serlvet>
       <serlvet-name>AddServlet</servlet-name>
       <servlet-class>com.it.servlet.AddServlet</servlet-class>
     </servlet>
    配置servlet映射
     <servlet-mapping>
        <servlet-name>AddServlet</servlet-name>
        <url-patter>/add.do</url-patter>
     </servlet-mapping>
 
 
(一个serlvet可以有多个映射)
 
    servlet解析请求中携带的问题和问题的类型(get/post)
 
    doGet(){
       业务逻辑
     };
 
    doPost(){
       业务逻辑
    };---继承了HttpServlet----doget;dopost---继承中的重写;
 
添加业务功能;
    jsp:action-method---->web.xml---->AddServlet中的doPost();
    getParameter("stu_id");---封装----new  StudentDAO();
 
----将数据动态的显示到页面中。-----我们必须在servlet类中自己产生页面。
 
显示业务功能:
    show.do---doPost(){查询到集合---写到我自己产生的页面中};
删除业务逻辑:
    del.do---->按照id号码删除(如何在del.do>stu_id=1001)。
          post----delStu(String sql="");
 
4、注意点:
   servlet删除后,web.xml文件中的配置文件不会自动删除,必须手动删除。
 
5、中文乱码:
   请求乱码:
   reqeust.getEconding...(“utf-8”);
   String ss=new String(request.getp....().getBytes("iso-8859-5"),"utf-8");
   响应乱码;
   response.setContentType("text/html;charset=utf-8");
   response.setHeader("", "");
 
 
6、重定向---重新请求
 
 
1、servlet生命周期----在不同的阶段做了什么事情?
   servlet中的方法:init();doGet();doPost();destory();service(2个);
构造器
初始化阶段:---init()---构造器
    servlet容器加载servlet(add.do)的时机:
    a、默认情况下:当用户第一次请求服务器的时候,servlet被加载;
    b、服务器启动的时候,servlet容器加载servet---show.do
       借助配置文件,在web.xml<serlvet><load-on-startup>1</load-on-startup></serlvet>
    c、servlet类文件被更新后,重新装载servlet.
       servlet容器会创建servlet实例-----并且调用初始化方法Init();
       注意:在servlet整个生命周期中,初始化方法只被调用一次;
 
 
响应客户请求阶段---service,doGet();doPost();
        servlet的工作原理:当请求和响应到达 servlet的时候,servlet容器会创建每个
    servlet对应的HttpServletRequest和HttpServletResponse对象。然后将这两个对象
    交给继承了HTTP协议的service方法,从请求中解析,请求的类型。第一种:继承了HTTP
    协议的doGet();doPost();-----业务逻辑处理。
 
    拓展:当值到达service的时候,会以HashTable或者HashMap的形式进行封装。
          就是一个键值对。
         <select>
             <option value="1">安徽省</option>
         </select>
         HashTable<key,value> name=HashTable<key,value>();
         HashTable---线程安全。HashMap线程不安全。
销毁阶段---释放资源的阶段---destory()。
    a、当web服务器停止的时候。
    b、servlet类文件被更新后,重新装载servlet.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

servle的更多相关文章

  1. Servle资源注射

    Servle资源注射@WebServlet(name = "DownloadServlet",urlPatterns ="/DownloadServlet" ) ...

  2. Java Web学习笔记-Servle生命周期

    Servlet会在服务器启动或第一次请求该Servlet的时候开始生命周期,在服务器停止的时候结束生命周期. 无论请求多少次Servlet,最多只有一个Servlet实例.多个客户端并发请求Servl ...

  3. 转载 Servlet3.0中使用注解配置Servle

    转载地址:http://www.108js.com/article/article10/a0021.html?id=1496 开发Servlet3的程序需要一定的环境支持.Servlet3是Java ...

  4. Cookie中图片的浏览记录与cookie读取servle时路径的设置(文字描述)

    public class ShowServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpSer ...

  5. (2)自己写一个简单的servle容器

    自己写一个简单的servlet,能够跑一个简单的servlet,说明一下逻辑. 首先是写一个简单的servlet,这就关联到javax.servlet和javax.servlet.http这两个包的类 ...

  6. Servle原理

    这篇博客将以Tomcat为例讲一讲Servlet的原理 Servlet容器 Servlet与Servlet容器的关系举个不恰当的例子就像枪和子弹的关系.而Servlet就是子弹,容器就是枪.子弹都有统 ...

  7. Servle中的会话管理

    最近整理了下会话管理的相关笔记,以下做个总结: 一.会话管理(HttpSession) 1.Web服务器跟踪客户状态的四种方法: 1).使用Servlet API的Session机制(常用) 2).使 ...

  8. Servle第四篇(会话技术之cookie)

    会话技术 什么是会话技术 基本概念: 指用户开一个浏览器,访问一个网站,只要不关闭该浏览器,不管该用户点击多少个超链接,访问多少资源,直到用户关闭浏览器,整个这个过程我们称为一次会话. 为什么我们要使 ...

  9. AJAX如何获取从前台传递过来的数据然后在通过servle传递给后台

    1 用 request.getParameter接收值 <% String id1=request.getParameter("id"); out.print(id1); % ...

随机推荐

  1. tomcat本地部署war包的方式

    最近学习java,在本地tomcat部署时,主要采取以下方式: 一.本地构建生成war包 在本地项目中的terminal下,使用命令 “mvn clean install”或 先执行“mvn clea ...

  2. 面试准备 - 最大堆的Csharp实现

    面试中最常见的问题之一...在N个数中间寻找前K大个元素 最常见的解法就是最大堆 时间复杂度O(N*log(K)) 空间复杂度O(k) 实现了一个最简单的最大堆,每次有元素进来都和堆顶元素比较一下,如 ...

  3. 学习RxJS:Cycle.js

    原文地址:http://www.moye.me/2016/06/16/learning_rxjs_part_two_cycle-js/ 是什么 Cycle.js 是一个极简的JavaScript框架( ...

  4. Schema – 模块化,响应式的前端开发框架

    Schema 是一个模块化的,响应式的前端框架,方便,快捷地帮助您迅速启动你的 Web 项目.Schema 配备完整的创建多个视图的能力.从桌面显示器到移动设备,它的12列网格提供强大的灵活性. Sc ...

  5. Spark程序使用groupByKey后数据存入HBase出现重复的现象

    最近在一个项目中做数据的分类存储,在spark中使用groupByKey后存入HBase,发现数据出现双份( 所有记录的 rowKey 是随机  唯一的 ) .经过不断的测试,发现是spark的运行参 ...

  6. DedeCMS学习

    也许有些读者并不了解dedecms,这里简单介绍一下:DedeCMS是一个自由和开放源码的内容管理系统,它是一个可以独立使用的内容发布系统(CMS).织梦内容管理系统(DedeCms) 以简单.实用. ...

  7. [译]学习IPython进行交互式计算和数据可视化(三)

    第二章 在本章中,我们将详细学习IPython相对以Python控制台带来的多种改进.特别的,我们将会进行下面的几个任务: 从IPython中使用系统shell以在shell和Python之间进行强大 ...

  8. Auto Mapper01

         在项目中一直在使用Auto Mapper技术,但是只是会简单的使用,对其里面的一些具体的细节和知识点不是很清楚,现在就跟着我从最基础的知识点来重新认识下,AutoMapper技术吧.     ...

  9. 【转】 Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用

    一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...

  10. MySQL 5.1 参考手册CHM (官方 简体中文版)

    点此下载: MySQL 5.1 参考手册CHM (官方 简体中文版) 在线文档:http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/