基于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. CSS3入门之转换

    CSS3入门之转换 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !impor ...

  2. Prim算法(二)之 C++详解

    本章是普里姆算法的C++实现. 目录 1. 普里姆算法介绍 2. 普里姆算法图解 3. 普里姆算法的代码说明 4. 普里姆算法的源码 转载请注明出处:http://www.cnblogs.com/sk ...

  3. Javascript内存泄露

    在过去一些的时候,Web开发人员并没有太多的去关注内存泄露问题.那时的页面间联系大都比较简单,并主要使用不同的连接地址在同一个站点中导航,这样的设计方式是非常有利于浏览器释放资源的.即使Web页面运行 ...

  4. final .....finally ...... 和Finalize ......区别

    一.性质不同 ()final为关键字: ()finalize()为方法: ()finally为为区块标志,用于try语句中: 二.作用 ()final为用于标识常量的关键字,final标识的关键字存储 ...

  5. c# 中基类变量指向派生类对象的实例化

    这一篇文章转载自:http://www.xuebuyuan.com/390279.html 我对这篇文章进行了一一的验证,确实是这样子的,也明白了很多东西,觉得很有用,转载过来希望能够帮助大家. 1. ...

  6. HTML的select控件美化

    HTML的select控件美化 CSS: .div-select { border: solid 1px #999; height: 40px; line-height: 40px; cursor: ...

  7. The conversion of a varchar data type to a datetime data type resulted in an out-of-range value

    刚刚有在程序中,传递一个空值至MS SQL Server数据库,这个值的数据类型为DATETIME执行时,它却发生了如标题提示的异常:The conversion of a varchar data ...

  8. 使用CKplayer插件在网页中嵌入视频的方法(常用笔记2)

    在做网站中有时候我们需要在网页中嵌入视频,一般视频嵌入有以下几种方法: 1. 优酷代码嵌入 优点:简单,方便,可靠. 缺点:有广告,现在的网站非常注重用户体验,如果打开一个在线视频是有长广告的一定会崩 ...

  9. Android学习笔记(九) 视图的应用布局效果

    最近少了写博客,可能最近忙吧,工作上忙,因为工作原因也忙于学习,也没记录什么了,也没有按照之前的计划去学习了.现在就记录一下最近学到的. 要做Android应用,界面设计少不了,可惜之前一直在用Win ...

  10. 【工具】清理Windows Installer冗余文件(支持64位NT6.x系统)

    样子: 支持系统: Windows NT 5.x/6.x 32及64位所有系统.需.net framework 2.0运行环境 功能: 清理上述系统中冗余的Windows Installer补丁文件. ...