Servlet(三)

摘要:
dom4j元素对象获取指定子元素element("名字")ServletConfig:1.在Servlet运行时,需要获取servlet的配置信息可以使用servletConfig来进行获取由tomcat创建在servlet实例化的时候,把servlet的一些配置信息放入ServletConfig对象2.获取servletConfig:init(servletConfigconfig)方法可以使用

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.区别:

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

Servlet(三)第1张

重定向原理:

Servlet(三)第2张

区别:

转发:在服务器内部 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:可扩展标记语言(英语:ExtensibleMarkupLanguage,简称:XML)是一种标记语言

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

1.xml和html区别

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

html:页面展示 标签预定义

2.xml规范:

1.根节点只能有一个

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

3.节点严格区分大小写

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

5.标签进行正确的嵌套

Servlet(三)第3张

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 =newSAXReader();   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 =  newXMLWriter(ops,out);

Dom4j中的重要方法:

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

元素对象设置属性addAttribute()

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

免责声明:文章转载自《Servlet(三)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇HK2使用详解利用Nginxcp为cPanel/WHM服务器开启nginx支持下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android 4.0 SDK的离线方式安装(转)

转自:http://networking.ctocio.com.cn/110/12195610.shtml  作 为一个IT技术人员,迫不及待地就奔向了http://developer.android.com去看看有没有新的SDK公布出来,当时是上午,没见到 有更新,心想一定是若干天后才会发布。没想到同事下午告诉我,新版的SDK已经发布了。当时是临下班,...

nuxt服务端渲染怎么引入element ui

第一步,安装element ui npm install --save element-ui 第二步骤 在plugins文件底下新建一个js---element.js 代码 import Vue from 'vue' import Element from 'element-ui' import 'element-ui/lib/theme-chalk/i...

WebApi接口

格式化数据这东西,主要看需要的运用场景,今天和大家分享的是webapi格式化数据,这里面的例子主要是输出json和xml的格式数据,测试用例很接近实际常用情况;希望大家喜欢,也希望各位多多扫码支持和点赞谢谢: . 自定义一个Action,响应输出集合数据 . api返回json数据的两种方式 . json时间格式处理方式 . 让api接口支持返回json和...

webService 服务端搭建

  首先,下载CXF,官网(http://cxf.apache.org/),具体位置如下图:      解压后,得到以下目录   下面,我们开始建立工程,在新建的工程lib目录下复制上述lib中的所有文件,特别是endorsed文件夹也要原样复制。 1        WebService的服务器端 1)      创建工程   在eclipse/myEcl...

循序渐进VUE+Element 前端应用开发(20)--- 使用组件封装简化界面代码

VUE+Element 前端应用,比较不错的一点就是界面组件化,我们可以根据重用的指导方针,把界面内容拆分为各个不同的组合,每一个模块可以是一个组件,也可以是多个组件的综合体,而且这一个过程非常方便。组件封装的目的就是为了能够更加便捷、快速的进行业务功能的开发。组件(component)是vue的最强大功能之一,组件可以实现一些类似功能的复用及与其它业务逻...

C#实现程序的版本升级更新

我们做了程序,不免会有版本升级,这就需要程序有自动版本升级的功能。 那么看看我是如何实现程序自动更新的。 直接上代码:   view plaincopy to clipboardprint? using System;   using System.Collections.Generic;   using System.Text;   using ...