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特殊符号:
<;大于 >;小于 ";双引号 &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(节点)删除节点
Servlet(三)的更多相关文章
- Cookie&Seesion会话 共享数据 工作流程 持久化 Servlet三个作用域 会话机制
Day37 Cookie&Seesion会话 1.1.1 什么是cookie 当用户通过浏览器访问Web服务器时,服务器会给客户端发送一些信息,这些信息都保存在Cookie中.这样,当该浏览器 ...
- Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期
servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神 ...
- 浅谈Servlet(三)
一.三种作用域 作用域:web开发中用于存储和获得数据. 1.request 一次请求有效,在forward跳转时可用request作用域传递数据. 2.session client不变,sessio ...
- servlet三种实现方式之三通过继承HttpServlet开发servlet
servlet有三种实现方式: 1.实现servlet接口 2.继承GenericServlet 3.通过继承HttpServlet开发servlet 第三种: import java.io.*; i ...
- 开发servlet三种方式
第一种:实现Servlet接口 ServletDemo类 实现Servlet接口 public class ServletDemo implements Servlet { //初始化该servlet ...
- web开发之Servlet 三
昨天我们学习了Servlet的运行过程和生命周期,那么今天我们学习下Servlet中非常重要的两个类:ServletConfig ServletContext 我们可以看到,与顶层Servlet主动 ...
- servlet三种方式实现servlet接口
简单介绍 Servlet接口实现类 1.Servlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet.HttpServlet. 2.HttpServlet指能够处理HTTP请 ...
- Servlet 三种创建方式
servlet 是运行在 Web 服务器(tomcat)中的小型 Java 程序(即:服务器端的小应用程序) (其实就是一个java类,只不过不用再new了).servlet 通常通过 HTTP(超文 ...
- Servlet三种创建方式
直接实现 Servlet 接口不太方便,所以 Servlet 又内置了两个 Servlet 接口的实现类(抽象类),分别为 GenericServlet 和 HttpServlet,因此,创建 Ser ...
- Tomcat深入浅出——Servlet(三)
零.HttpServletRequest 上一篇已经介绍了这个接口,现在补充些内容 首先介绍一下作用域: jakarta.servlet.jsp.PageContext pageContext 页面作 ...
随机推荐
- centos6根分区扩容,非lvm
1.关闭虚拟机,删除里面的快照,将磁盘扩容 2.根分区为sda3,开机后输入fdisk /dev/sda,d,3删除sda3,然后n,p,3,w创建sda3,扇区的开始位置要一致 3.growpart ...
- Visual C++ Redistributable for Visual Studio各版本下载地址
Visual C++ Redistributable for Visual Studio各版本下载地址飞鹰_天涯于 2021-06-24 09:35:21 发布 5978收藏 8版权Microsoft ...
- Android 内存优化浅析
一:内存占用几大要点 1,Object Cache:Image cache,single instance obj(重量级别,例如数据库连接obj,bitmap ref),Thread过多, 2,Vi ...
- 浅谈tcp 与udp
tcp是一种面向连接的.可靠的.基于字节流的传输层通信协议.是专门为了在不可靠的互联网络上提供一个可靠的端到端字节流而设计的,面向字节流. udp(用户数据报协议)是iso参考模型中一种无连接的传输层 ...
- 【5】python之基础语法
1.编码格式 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码: # -*- coding: cp-1252 ...
- SHR常用f7[更新ing]
<field id="unit" name="unit" label="单位" dataType="F7" uip ...
- EIRENE GSM-R编码计划
Numbering plan overview This appendix provides an overview of the numbering plan as defined in this ...
- iOS开发之定时器和tableview滑动阻塞问题
NSTimer *timer = [[NSTimer alloc]initWithFireDate:[NSDate distantPast] interval:1 target:self select ...
- .NET CORE 下收发邮件之 MAILKIT
背景 利用代码发送邮件在工作中还是比较常见的,相信大家都用过SmtpClient来处理发送邮件的操作,不过这个类以及被标记已过时,所以介绍一个微软推荐的库MailKit来处理. MailKit开源地址 ...
- 第三章:用python实现常用的用户分层模型(RFM模型)
文章目录 项目背景 读取数据 数据分析 分析 Recent 分析 Frequency 分析 Mount RFM模型 分位数分层 自定义分层 定义客户标签 数据可视化 结论 源码地址 本文可以学习到以下 ...