一:(1)运行是显示系统找不到文件,是什么问题,怎么处理(问题截图和原代码如下)
(2)这一阶段女老师讲的没有重点跟层次感,节奏很快,很多对于小白来说很生疏的知识点也不做解释,敲代码很快,而且用的eclise,我不熟悉,基本都是用快捷键,异常处理也是,也不解释一下怎么操作,很多新的代码编写知识也是敲得比说的快也不解释是什么怎么用,他的视频放慢一倍也看的不清不楚,求老师推荐这阶段的视频,看完他的有空在看看其他视频补完,谢谢老师!
源码如下:
; ; ; ; {; { = ServletContext(); <,> = .getServlet(); <,> = .getMapping(); = WebDom4j(); .parse(.getDocument());<> = .getEntityList(); <> = .getMappingList(); (:){ .put(.getName(),.getClazz()); } (:){ <>= .getUrlPattern(); (:){ .put(,.getName()); } } } (url){ (url == || url.trim().equals()) { ; } servlet = ; { = .getMapping().get(url); = .getServlet().get(); <?> = .(); servlet = () .newInstance(); servlet; } (e) { e.printStackTrace(); } (e) { e.printStackTrace(); } (e) { e.printStackTrace(); } ; } ([] args) { ..println(()); } }
老师,您好:
我想写一个工具类(突发奇想,想练练。。。),用fileinputstream读文件,然后用ByteArrayOutputStream的toByteArray()方法得到字节数组,并将字节数组返回。但这个方法的返回值应该写哪?写在最后,流应该close了,老师以后这种问题有没有什么固定套路去处理的。谢谢老师。
这里fos,fis输入输出流为什么要分别关闭,有什么说法嘛。。。我一想到关闭就下意识想把fos,fis写一个try里,fos,与fis写一个try中有什么隐患么?谢谢老师。
老师,第71到83行之间我和老师写的一样,结果还是报错,真的好奇怪,这几天学习老是遇到这样的情况,和老师打的基本一样,就是运行报错
然后我改成这样就可以了
可是这到底为啥,意思都一样,为啥这样写就不会报错!
一:如下图几个异常无法解决
二:源码: package com.bjsxt.server; import javax.swing.text.Document; import java.io.File; import java.util.ArrayList; import java.util.List; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class WebDom4j<SAXReader> {//用于解析xml private List<Entity> entityList;//用于存储n多个entity,每个entity都是一个servlet-name和一个servlet-class private List<Mapping> mappingList;//用于存储n多个mapping,每个mapping对应一个servlet-name和一个url-pattern //取值和赋值方法 public List<Entity> getEntityList() { return entityList; } public void setEntityList(List<Entity> entityList) { this.entityList = entityList; } public List<Mapping> getMappingList() { return mappingList; } public void setMappingList(List<Mapping> mappingList) { this.mappingList = mappingList; } //构造方法 public WebDom4j() { entityList=new ArrayList<Entity>(); mappingList=new ArrayList<Mapping>(); } public Document getDocument(){ try { //1:创建SAXReader对象 SAXReader reader = new SAXReader(); //2:调用read方法 return reader.read(new File("src/WEB_INFO/web.xml")); } catch (Exception e) { e.printStackTrace(); } } }
老师,在写这里的代码时,我的没有这个getRootElement()方法(JDK版本是1.8 IDEA2019)
老师 为什么我这个is.read(bytes)的返回值是-1呢,明明一样的代码它 有时候读的出来 有时候读不出来
这个是读出来的
前面都正确
为啥8080进不去?
怎么解决
用ie浏览器也一样
老师,我想问一下为什么我用不了getChildren()方法和getAttribute方法了,jdom包和dom4j我都导了,而且在另一个程序里面能用,这个里面就不能用了,这是为什么?
这里的33和38行用了这两个方法却能用:
老师,idea怎么找不到相对路径,自己在网上找了一些资料也没搞明白
成功配置环境变量后为啥Tomcat软件一闪就自动退出了?
这第一行不是已经在最后换行了吗,为啥第二行还有换行
老师,1.我把获取输入流代码写成
byte[] buf=new byte[1024]; int len=0; while((len=is.read(buf))!=-1){ System.out.println(new String(buf,0,len)); }
结果就报SocketException异常,怎么回事2.这个换行\r\n什么意思啊,和\n,\n\r,\r有什么区别吗?
老师好,这里能不能讲解一下第二次add添加元素时,底层函数的指向。
老师,为什么我做的servlet-class为null啊
package com.bjsxt.server; import java.io.File; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class WebDom4j {//用于解析XML private List<Entity> entityList;//用于存储是N多Entity,而每一个Entity都是servlet-name与servlet-class private List<Mapping> mappingList;//用于存储N多Mapping,而每一个Mapping都是一个servlet-name与N多个url-pattern public List<Entity> getEntityList() { return entityList; } public void setEntityList(List<Entity> entityList) { this.entityList = entityList; } public List<Mapping> getMappingList() { return mappingList; } public void setMappingList(List<Mapping> mappingList) { this.mappingList = mappingList; } //构造方法 public WebDom4j() { entityList=new ArrayList<Entity>(); mappingList=new ArrayList<Mapping>(); } //获取Document对象的方法 private Document getDocument(){ try { //(1)创建SAXReader对象 SAXReader reader=new SAXReader(); //(2)调用read方法 return reader.read(new File("src\\WEB_INFO\\web.xml")); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public void parse(Document doc){ //(1)获取根元素 Element root=doc.getRootElement(); //获取web-app根元素 //(2)获取servlet子元素 for(Iterator<Element> ite=root.elementIterator("servlet");ite.hasNext();){ Element subElement=ite.next();//得到每一个servlet //创建一个实体类 Entity ent=new Entity(); //用于存储servlet-name与servlet-class for(Iterator<Element> subIte=subElement.elementIterator();subIte.hasNext();){ Element ele=subIte.next(); //可能是servlet-name,也可能是servlet-class if("servlet-name".equals(ele.getName())){ ent.setName(ele.getText()); //给实体类中的name赋值 }else if("serlvet-class".equals(ele.getName())){ ent.setClazz(ele.getText());//给实体类中的class赋值 } } //将Entity添加到集合中 entityList.add(ent); } //测试 for (Entity entity : entityList) { System.out.println(entity.getName()+"\t"+entity.getClazz()); } //解析servlet-mapping /*for(Iterator<Element> ite=root.elementIterator("servlet-mapping");ite.hasNext();){ Element subEle=ite.next();//得到每一个servlet-mapping //创建一个Mapping类的对象 Mapping map=new Mapping(); //解析servlet-mapping下的子元素 for(Iterator<Element> subIte=subEle.elementIterator();subIte.hasNext();){ Element ele=subIte.next(); //servlet-name,也有可能是url-pattern if("serlvet-name".equals(ele.getName())){ map.setName(ele.getText()); }else if("url-pattern".equals(ele.getName())){ //获取集合对象,调用集合对象的添加方法,添加元素 map.getUrlPattern().add(ele.getText()); } } //Mapping添加到集合中 mappingList.add(map); } //测试 for (Mapping m : mappingList) { System.out.println(m.getName()); for(String s:m.getUrlPattern()){ System.out.println(s); } }*/ } //用于测试 public static void main(String[] args) { WebDom4j web=new WebDom4j(); web.parse(web.getDocument()); } }
然后第二次测试servlet-name为null
package com.bjsxt.server; import java.io.File; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class WebDom4j {//用于解析XML private List<Entity> entityList;//用于存储是N多Entity,而每一个Entity都是servlet-name与servlet-class private List<Mapping> mappingList;//用于存储N多Mapping,而每一个Mapping都是一个servlet-name与N多个url-pattern public List<Entity> getEntityList() { return entityList; } public void setEntityList(List<Entity> entityList) { this.entityList = entityList; } public List<Mapping> getMappingList() { return mappingList; } public void setMappingList(List<Mapping> mappingList) { this.mappingList = mappingList; } //构造方法 public WebDom4j() { entityList=new ArrayList<Entity>(); mappingList=new ArrayList<Mapping>(); } //获取Document对象的方法 private Document getDocument(){ try { //(1)创建SAXReader对象 SAXReader reader=new SAXReader(); //(2)调用read方法 return reader.read(new File("src\\WEB_INFO\\web.xml")); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public void parse(Document doc){ //(1)获取根元素 Element root=doc.getRootElement(); //获取web-app根元素 //(2)获取servlet子元素 for(Iterator<Element> ite=root.elementIterator("servlet");ite.hasNext();){ Element subElement=ite.next();//得到每一个servlet //创建一个实体类 Entity ent=new Entity(); //用于存储servlet-name与servlet-class for(Iterator<Element> subIte=subElement.elementIterator();subIte.hasNext();){ Element ele=subIte.next(); //可能是servlet-name,也可能是servlet-class if("servlet-name".equals(ele.getName())){ ent.setName(ele.getText()); //给实体类中的name赋值 }else if("serlvet-class".equals(ele.getName())){ ent.setClazz(ele.getText());//给实体类中的class赋值 } } //将Entity添加到集合中 entityList.add(ent); } //测试 /*for (Entity entity : entityList) { System.out.println(entity.getName()+"\t"+entity.getClazz()); }*/ //解析servlet-mapping for(Iterator<Element> ite=root.elementIterator("servlet-mapping");ite.hasNext();){ Element subEle=ite.next();//得到每一个servlet-mapping //创建一个Mapping类的对象 Mapping map=new Mapping(); //解析servlet-mapping下的子元素 for(Iterator<Element> subIte=subEle.elementIterator();subIte.hasNext();){ Element ele=subIte.next(); //servlet-name,也有可能是url-pattern if("serlvet-name".equals(ele.getName())){ map.setName(ele.getText()); }else if("url-pattern".equals(ele.getName())){ //获取集合对象,调用集合对象的添加方法,添加元素 map.getUrlPattern().add(ele.getText()); } } //Mapping添加到集合中 mappingList.add(map); } //测试 for (Mapping m : mappingList) { System.out.println(m.getName()); for(String s:m.getUrlPattern()){ System.out.println(s); } } } //用于测试 public static void main(String[] args) { WebDom4j web=new WebDom4j(); web.parse(web.getDocument()); } }
http_server2.zip
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637