基于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. java中paint方法和paintComponent方法的不同

    /* 1.由Component.java源代码中可以看见其中的paint()方法体是空的,在Container中重写了该方法,其子类Window等也重写了该方法 2.由JComponent.java源 ...

  2. 机器学习&数据挖掘笔记_12(对Conjugate Gradient 优化的简单理解)

    数学优化方法在机器学习算法中至关重要,本篇博客主要来简单介绍下Conjugate Gradient(共轭梯度法,以下简称CG)算法,内容是参考的文献为:An Introduction to the C ...

  3. Microsoft Azure News(5) Azure新DV2系列虚拟机上线

    <Windows Azure Platform 系列文章目录> 在之前的文章中,笔者了Azure VM虚拟机,分为A系列和D系列2种 Microsoft Azure News(4) Azu ...

  4. MVVM-Sidekick 之SendToEventRouterAction使用

    在WP开发中点击列表项跳转到详情页是一个很常用的功能,但是有可能项模板中还有其他的区域,比如点击标题跳转到详情页,点击"赞"图标送一个赞,点击"踩"图标踩一下, ...

  5. 在Windows Phone 8中使用Live Connect并保持登陆状态

    Live Connect可以让各种客户端访问Live账号.获取好友列表.访问One Drive的文件等,官方地址在此:http://msdn.microsoft.com/zh-cn/live/ff51 ...

  6. 视图(View)与部分视图(Partial View)之间数据传递

    写ASP.NET MVC程序,我们经常需要把数据从视图(View)传递至部分视图(Partial View) 或者相反. 今天Insus.NET使用 ControllerBase.TempData 进 ...

  7. ExtJs动态生成treepanel的Json格式

    在节点中加上"checked"属性,会自动生成checkbox. 获取选中节点 var nodeArray = ""; var nodesObj = mytre ...

  8. asp.net中Ajax控件的用途(一)

    1,UpdatePanel控件,用户更新部分内容,示例 放入一个Label和一个Button,单击按钮,label显示当前时间. 2,ScriptManagerProxy控件,每个页面只能有一个Scr ...

  9. OCP开放封闭原则

    一.定义 软件实体(类.模块.函数等)应该是可以扩展的,但是不可修改. 如果正确的应用了OCP原则,那么 以后在进行同样的改动时,就只需要添加新的代码,不必修改已经正常运行的代码. 二.OCP概述 1 ...

  10. 不可或缺 Windows Native (19) - C++: 对象的动态创建和释放, 对象的赋值和复制, 静态属性和静态函数, 类模板

    [源码下载] 不可或缺 Windows Native (19) - C++: 对象的动态创建和释放, 对象的赋值和复制, 静态属性和静态函数, 类模板 作者:webabcd 介绍不可或缺 Window ...