zoukankan      html  css  js  c++  java
  • servle


    基于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.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    Java学习过程中的总结的小知识点(长期更新)
    年月日与time的相互转换
    Androidstudio预览时出现错误java.lang.NoClassDefFoundError: com/android/util/PropertiesMap
    eclipse中配置struts2出现There is no Action mapped for namespace [/] and action name [Login] associated wi
    struts2出错java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
    第一次部署Struts2时出现错误java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.class
    由JDK1.8降为JDK1.6时配置环境变量不起作用
    Androidstudio报错UnsupportedClassVersionError
    AndroidStudio导入Library
    Ubuntu下su被拒绝
  • 原文地址:https://www.cnblogs.com/nin-w/p/5789753.html
Copyright © 2011-2022 走看看