sockeydemo.zip老师能帮我看看那点出问题了吗?
//B/S结构 浏览器与服务器 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class Server2 { public static void main(String[] args) { //1)创建ServerSocket对象 ServerSocket server=null; //2)监听是否有客户端发送请求 Socket client=null; BufferedReader br=null; try { server = new ServerSocket(8888); client = server.accept(); //获取来自浏览器的请求信息 br=new BufferedReader(new InputStreamReader(client.getInputStream(),"utf-8")); String str=null; while((str=br.readLine()).length()>0){ str=new String(str.getBytes("ISO-8859-1"),"utf-8");//ISO-8859-1 System.out.println(str); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //6)关闭流 IOClose.closeAll(br,client,server); } } }
老师,这个结果还是乱码,网上也查了,也已经试了好多种可能,还是乱码,怎么改?
老师这一段代码老师的serlvet我不理解是老师故意这样写的还是写错了。
老师,以下是我的代码,请问为什么会报错?请问是什么错误?
package com.bjsxt.url; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.URL; public class TestURL2 { public static void main(String[] args) throws IOException { /**网络爬虫 * (1)从网络上获取资源 www.baidu.com * (2)存储到本地 * */ //(1)创建URL对象 URL url=new URL("https://www.baidu.com");//主页资源 //(2)获取字节输入流 InputStream is=url.openStream(); //(3)缓冲流 BufferedReader br=new BufferedReader(new InputStreamReader(is, "utf-8")); //(4)存储到本地 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("index.html"),"utf-8")); //(5)边读边写 String line=null; while((line=br.readLine())!=null){ bw.write(line); bw.newLine(); bw.flush(); } //(6)关闭流 bw.close(); br.close(); } }
报错内容:
Exception in thread "main" javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:320) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:263) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:258) at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:641) at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:460) at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:360) at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:441) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:419) at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:177) at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164) at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1180) at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1091) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:402) at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:187) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1581) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1509) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:246) at java.base/java.net.URL.openStream(URL.java:1140) at com.bjsxt.url.TestURL2.main(TestURL2.java:21) Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:384) at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:289) at java.base/sun.security.validator.Validator.validate(Validator.java:264) at java.base/sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:321) at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:221) at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:129) at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:625) ... 17 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297) at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:379) ... 23 more
请老师看一下,代码应该没问题
请问下老师为什么报错
老师,我在看String类源码的时候在这里看不明白了这句(c > 0xFF),这是什么意思?
老师,这个按姓名查询记录的方法如下写代码,测试了一下,出现的问题是:如果输入的人名没有的话,list里有几个人就会出现几条“没有此人记录”。除此之外,这样写还有其他问题吗?是必须要写成带flag的那种形式吗?
/** * 按姓名查询记录 */ public void searchByName() { TelNoteRegex telNoteRegex = new TelNoteRegex(); String name = telNoteRegex.nameValidate(); for(int i=0;i<this.list.size();i++){ if(name.equals(this.list.get(i).getName())) { System.out.println(this.list.get(i)); }else{ System.out.println("没有此人记录"); } } }
请输入姓名:长度在1-10之间的大写或小写字母 hc 没有此人记录 没有此人记录 没有此人记录
代码1:
package com.ljp.sleep_yield_join_stop; public class MyThread implements Runnable { @Override public void run() { // synchronized (this) { for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + "-------------" + i); } } }
代码2:
package com.ljp.sleep_yield_join_stop; public class Test { public static void main(String[] args) { MyThread mtd = new MyThread(); Thread t01 = new Thread(mtd, "整天都吃橘子!!!"); Thread t02 = new Thread(mtd,"想吃肉夹馍!!!"); t01.start(); t02.start(); for(int i=0;i<10;i++){ if(i==3){ try { t01.join(); // t02.join(); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println(Thread.currentThread().getName() + "*********" + i); } } }
老师,是不是可以这么理解:只要是在哪个线程(比如主线程)里调用join(),那这个线程(主线程)阻塞,等其他线程运行完以后,这个线程再运行。那再这个线程(主线程)里,谁调用join()都可以,比如代码里t01也可以,t02也可以,感觉他们效果都是一样的;两个同时调用join(),感觉效果也是一样的,t01和t02并没有先后顺序,作用只是将主线程阻塞了而已。
老师,前面不是讲HashMap初始的数组长度是16吗,怎么才会超过64呢?
老师,这种输入输出的形式和创建Scanner对象的输入方式有什么不同呢?
不是用的idea吗,怎么变成用Eclipes了,看的有点蒙,idea中怎么创建XML呢?
单例集合和双例集合不太懂
老师,内部比较器是定义在要用的类里面,外部比较器是定义在要用的类外边,定义外部比较器时要继承comparator方法把类名传进去。还有一个区别是,内部比较器重写的是compareTo方法,外部比较器重写的是comparetor方法。那什么时候用外部比较类,什么用内部比较类?
视频中老师都用cry catch,是否可以使用throws ,throws和cry catch有啥区别
sockeydemo.zip老师帮我看看哪里出现问题了啊?????
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637