基于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. Net任意String格式转换为DateTime类型

    方式一:Convert.ToDateTime(string) Convert.ToDateTime(string) 注意:string格式有要求,必须是yyyy-MM-dd hh:mm:ss 方式二: ...

  2. Yii2的深入学习--入口文件

    前一段时间,尝试去写一个 php 的简单框架,发现自己还欠缺很多,就暂时停掉了.准备先读完 Yii2 的源码,然后再去看完 laravel 的源码,最后再继续去写这个简单的 php 框架. 之后关于 ...

  3. Hadoop官方文档翻译——HDFS Architecture 2.7.3

    HDFS Architecture HDFS Architecture(HDFS 架构) Introduction(简介) Assumptions and Goals(假设和目标) Hardware ...

  4. 云计算之路-阿里云上:结合IIS日志分析“黑色30秒”问题

    在昨天针对“黑色30秒”问题的分析中,我们猜测Requests Queued上升是由于正在处理的请求出不去(到达不了客户端).今天我们结合IIS日志验证这个猜测. IIS日志中有一个重要的指标——ti ...

  5. Csstyle - 创建简洁、可维护强的 CSS 样式

    Csstyle 是一种现代的方式,用于制作精美的可维护样式表.这个 Csstyle 方法使用 SASS 混入,使你的 CSS 更具可读性和语义,并为你生成选择器,自动处理嵌套等事情. Csstyle ...

  6. 【Android】Camera 使用浅析

    Camera的简单使用浅析 由于最近工作上用到android.hardware.Camera这个类,于是简单的学习了一些基本用法. 首先注意:Camera这个类在API21以后就不推荐使用了,官方提供 ...

  7. Httpd运维日志:通过apxs添加模块

    Brief 在部署Httpd时为方便管理和安全等原因,我们仅会安装所需的模块,那么后期功能扩展时则需要通过Httpd内置提供的apxs程序来进行模块添加. 而apxs程序则位于apache/bin目录 ...

  8. Node魔法堂:NPM入了个门

    一.前言 NPM作为Node的模块管理和发布工具,作用与Ruby的gem.Python的pypl或setuptools.PHP的pear和.Net的Nuget一样.在当前前端工程化极速狂奔的年代,即使 ...

  9. 【Android】Fragment的简单笔记

    被虐了,做某公司笔试时,发现自己连个Fragment的生命周期都写不详细.平时敲代码,有开发工具的便利,有网上各大神的文章,就算忘了也很容易的可以查到,但当要自己不借助外界,却发现自己似乎对该知识点并 ...

  10. CSS基础-插曲

    CSS学习 1:通过css来设置边框的颜色 我们可以通过border:10px solid red;来统一的设置颜色,但是我们有的时候需要每个边框的颜色不一样,我们就需要通过各自设置的方法来设置边框的 ...