zoukankan      html  css  js  c++  java
  • Servlet(三)

    dom4j 元素对象获取指定子元素  element("名字")

    ServletConfig:

    1.在Servlet运行时,需要获取servlet的配置信息 可以使用servletConfig 来进行获取  由tomcat创建

      在servlet实例化的时候,把servlet的一些配置信息放入ServletConfig对象

    2.获取servletConfig:init(servletConfig config)方法可以使用  

              其他方法中:this.getServletConfig() ==getServletconfig();

    3.设置servlet的配置信息: 在web.xml <servlet>标签里设置 init-param

    4.获取getServletConfig.getinitParameter(“键”) //单个                                                         

      Enumeration<String> e = getServletConfig.getinitParameterNames()//多个       

    一个Servlet对应一个SevletConfig对象 只能获取当前servlet的信息

    ServletContext:项目在tomcat容器运行时会创建一个 唯一全局对象 ServletContext :主要用于给web项目设置配置信息     所有servlet都可以获取

      req.getServletContext();//获取对象

    web.xml设置属性: <context-parm>   <parm-name>  <parm-name>    </context-parm>

          方法:getInitParameter("键")                       getInitParameterNames();//获取多个键

    作用域对象:具有作用域的对象,在一定范围内可以存值取值 可以使不同的servlet之间进行数据传递。

      servlet作用域对象:request   servletContext

      request:在一次请求之后 都可以进行数据传递    范围小

      req.getRequestDispatchar("").forword(req,resq)

      servletContext:在整个项目都可以传递数据    大

    方法:setAttribute("键","值")

       getAttribute(“”)//通过键获取

       removeAttribute()//删除值  

    转发与重定向:实现页面之间的跳转

      1.转发:req.getRequestDispatchar("路径").forward(req,resq);

          路径:servlet路径和页面路径   forward(req,resq)

      2.重定向:resp.sendRedirect("路径")

          路径:servlet路径和页面路径

           3.区别:

          转发原理:一次请求 直接在服务器内部进行跳转

          重定向原理:

       

     区别:

        转发:在服务器内部   url地址不变  一次请求  可以携带参数书  只能跳转本站点的网址

            查询

        重定向:在浏览器    url地址改变   多次请求不适用携带参数   跳转任何站点的网址  

            增删改成功之后  使用重定向  改变url地址

    servlet3.0注解:

         servlet3.0 之后  java1.5   

     减少xml配置  简化代码 

     1.注解和xml不能同时配置一个servlet

    @WebServlet("/userServlet")
    @WebServlet(name="" urlpatterns="/访问路径" loadStartUp=0//加载优先级0最大
    initParams={@wenInitParam(name="aa",value="")}
    )
    @WebServlet(name="servlet02", urlPatterns = "/servlet02",
    loadOnStartup = 0, initParams = {
    @WebInitParam(name="ddd",value="dddddddddddd"),
    @WebInitParam(name="aaa",value = "aaaaaaa"),
    })

    XML:可扩展标记语言(英语:Extensible Markup Language,简称:XML)是一种标记语言

      xml:可扩展语言  可以自定义标签  主要用来写配置信息   重点xml编写格式 及xml解析方式

      1.xml和html区别

        xml:编写配置信息   标签自定义   具有约束(dtd)

        html:页面展示  标签预定义

       2.xml规范:

        1.根节点只能有一个

        2.标签成对出现 由单个的

        3.节点严格区分大小写

        4.标签命名不能由特殊符号  纯英文

        5.标签进行正确的嵌套

                   

       3.xml特殊符号:

        &lt;大于 &gt;小于 &quot;双引号 &apos;单引号 &qmp;和号

    解析xml:

     1.解析方式:dom

        2.xml转换成dom

     3.dom解析方式:

        1.得到doucument对象     

     DocumentBuilderFactory dbf  = DocumentBuilderFactory.newInstance();
     DocumentBuilder db = dbf.newDocumentBuilder();
     Document doc = db.parse(new File("收藏信息.xml"));

        2.doc对象到node节点List集合

     NodeList nodeList=  doc.getElementsByTagName("Brand");

        3.遍历集合获取到每一个node节点 方法:item();

       for(int i=0;i<nodeList.getLength();i++){
                Node nodeBrand =nodeList.item(i);
                Element e = (Element)nodeBrand;
                System.out.println(e.getAttribute("name"));
                //获取子节点
                NodeList nodeListType=e.getChildNodes();
                for(int j=0;j<nodeListType.getLength();j++){
                    //获取node节点
                    Node nodeType= nodeListType.item(j);
                    //判断node节点是否为元素节点
                    if(nodeType.getNodeType()==Element.ELEMENT_NODE){
                        //转换成元素节点
                        Element elementType =(Element)nodeType;
                        System.out.println(elementType.getAttribute("name"));
                    }
                }
            }

        4.将node节点强制转换为Element(元素)节点

        5.调用getAttribute("")方法获取值

      4.增加节点:

     1  Element eleBrand =doc.createElement("Brand");
     2         //设置属性
     3         eleBrand.setAttribute("name","oppo");
     4         //创建子节点
     5         Element eleType= doc.createElement("Type");
     6         //设置属性
     7         eleType.setAttribute("name","r20");
     8         //添加父子关系
     9         eleBrand.appendChild(eleType);
    10         doc.getElementsByTagName("PhoneInfo").item(0).appendChild(eleBrand);

          5.删除节点:

        1.获取节点集合:getElementsByTagName("Brand")

        2.遍历集合获得node节点  强转为Element节点

        3.节点调用getParentNode()获取父节点调用removeChild(Child);

      6.增加节点属性:

    Dom4j对xml进行解析:

      1.将xml解析为dom对象

       SAXReader sr =new SAXReader();   Document doc= sr.read(new File("收藏信息.xml"));

      2.获取根节点

    Element elementRoot =  doc.getRootElement();

      3.获取子节点:迭代器

    Iterator<Element> iter = elementRoot.elementIterator();

      4.写入文件

    OutputStream ops = new FileOutputStream(path);
    OutputFormat out = OutputFormat.createPrettyPrint();

    out.setEncoding("utf-8");
    XMLWriter writer =  new XMLWriter(ops,out);

    Dom4j中的重要方法:

      元素对象增加子节点addElement()

      元素对象设置属性addAttribute()

      得到父节点getParent().remove(节点)删除节点

  • 相关阅读:
    配置samba
    extern c
    剑指offer 孩子们的游戏
    剑指offer 扑克牌顺子
    剑指offer 翻转单词顺序列
    剑指offer 左旋转字符串
    mysql查看或显示当前存在多少数据库
    vim替换
    平衡二叉树
    将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分
  • 原文地址:https://www.cnblogs.com/frhl/p/13474678.html
Copyright © 2011-2022 走看看