我在eclipse创建新项目的时候总会出现这个 这个是什么意思呢
package com.bjsxt.server; import java.util.List; import java.util.Map; import com.bjsxt.servlet.Servlet; /** * Web应用程序 * @version 1.0 * */ public class WebApp { private static ServletContext contxt; static{ contxt=new ServletContext(); //分别获取对应关系的Map集合 Map<String,String> servlet=contxt.getServlet(); Map<String,String> mapping=contxt.getMapping(); //创建解析XML文件对象 WebDom4j web=new WebDom4j(); web.parse(web.getDocument());//解析xml //获取解析XML之后的List集合 List<Entity> entityList=web.getEntityList(); List<Mapping> mappingList=web.getMappingList(); //将List集合中的数据存储到Map集合 for (Entity entity : entityList) { servlet.put(entity.getName(), entity.getClazz()); } // System.out.println(servlet); for( Mapping map:mappingList){ //遍历url-pattern的集合 List<String> urlPattern=map.getUrlPattern(); for(String s:urlPattern){ mapping.put(s, map.getName()); } } System.out.println(mapping); } /** * 通过反射创建Servlet对象 * @param url * @return Servlet */ public static Servlet getServlet(String url){ if (url==null||url.trim().equals("")) { return null; } //调用无参构造方法创建Servlet对象 try { //如果url正确 //根据url的key获取servlet-name的值 /log=login, /reg=register String servletName=contxt.getMapping().get(url); //根据servletName得到对应的servlet-class String servletClass=contxt.getServlet().get(servletName); //得到的是一个完整个的包名+类的字符串 System.out.println(servletClass); //使用反射创建 Servlet对象 Class<?> clazz=Class.forName(servletClass); Servlet servlet = (Servlet) clazz.newInstance(); return servlet; } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public static void main(String[] args) { System.out.println(getServlet("/log")); System.out.println(getServlet("/login")); } }
老师,为什么这里得到的是一个包名+类的字符串,过程具体是怎么实现的?
为什么long time=1000;放方法里面运行是这样啊
线程安全和线程同步是不是一个意思
问题1:这个是什么意思?????????
问题:圈出来的知识点在那一章节讲到,我已经忘记了
假如聊天结束,主线程里的 socket不需要关闭吗
老师从这些代码怎么看出反射机制,反射表现在哪些方面
老师,在进行服务器端和客户端通信时,用到了while(true),保持一直监听接口我可以理解,但是创建线程也在循环里,那岂不是一直在创建服务器线程?那是不是可以理解为:由于从接口中啥也没有监听到的时候,就不存在Socket对象,也就不存在线程对象的创建了?所以不存在无线循环创建线程对象?
package com.zhangzhen.server; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import com.zhangzhen.thread.ServerThread; public class Server { public static void main(String[] args) throws IOException { System.out.println("------服务器已启动--------"); //(1)创建服务Socket ServerSocket server = new ServerSocket(8888); while(true) { Socket socket = server.accept(); //创建线程对象 ServerThread st = new ServerThread(socket); //启动线程 new Thread(st).start(); } } }
老师,这是用浏览器打开的结果。我这样的代码是否有问题?请问这个是什么原因?
老师这里为什么使用FileOutputStream可不可以使用OutputStream
public class TestThread extends Thread{ public TestThread(){ System.out.println(this.getName()); } /** * 线程的线程体 */ @Override public void run() { System.out.println(this.getName()+"线程开始"); for (int i=0;i<20;i++){ System.out.println(this.getName()+""+i); } System.out.println(this.getName()+"线程结束"); } public static void main(String[] args) { System.out.println("主线程开始"); //实例化线程 TestThread t1 =new TestThread(); TestThread t2 =new TestThread(); //启动线程 t1.start(); t2.start(); System.out.println("主线程结束"); } }
主线程开始
Thread-0
Thread-1
主线程结束
Thread-0线程开始
Thread-1线程开始
Thread-00
Thread-10
Thread-01
Thread-11
Thread-02
Thread-12
Thread-03
Thread-13
Thread-04
Thread-14
Thread-15
Thread-16
Thread-17
Thread-18
Thread-19
Thread-110
Thread-111
Thread-112
Thread-05
Thread-113
Thread-06
Thread-114
Thread-07
Thread-115
Thread-08
Thread-116
Thread-09
Thread-117
Thread-010
Thread-118
Thread-011
Thread-119
Thread-012
Thread-013
Thread-014
Thread-015
Thread-016
Thread-017
Thread-018
Thread-019
Thread-0线程结束
Thread-1线程结束
老师 为什么我输出的代码不是按顺序的,代码很乱 类似交替?是不是就是前面讲的时间片轮询算法
schemaProject.zip
老师,我这个报错了。不知道怎么处理,自己也在网上查了,也不会
我找到了有问题的那一行,也看不出是哪里有问题
这里synchronized的代码块根本运行不进去是什么原因呢老师
请问下,老师的可以在idea上的代码点击报错的FileRead展开FileRead类,我本地的无法点击打开,是需要怎么设置吗
package string; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class Test02 { public static void main(String[] args) { FileReader reader= null; try { reader = new FileReader("d:/a.txt"); char c =(char)reader.read(); char c2=(char)reader.read(); System.out.println(""+c+c2); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } finally { try { if(reader!=null){ reader.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
这个怎么快速复制的
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637