会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132413个问题

Http_server7.

老师你好,附件是我按照视频敲得代码,但是不同浏览器打开html文档,并输入账号和密码的出的结果没有问题,但是Server文件控制台输出的内容却不一样,请问一下老师什么问题,一下三张图片依次是IE浏览器/火狐浏览器/搜狗浏览器

image.png










image.png













image.png





JAVA 全系列/第二阶段:JAVA 基础深化和提高/手写服务器项目(旧) 3151楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术(旧) 3153楼

你好,老师,我是按照视频中的代码敲得,但是最后在浏览器没有显示登陆成功的字样

package com.hy.test;
/***
 * 在html中使用post方法,通过程序然后获取输入的信息,并且对web浏览器做出回应
 */

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.ServerSocket;
import java.net.Socket;



public class Server3 {
	public static void main(String[] args) {
		String BLANK="\n";
		String CRLF="\r\n";//换行
		//1创建ServerSocket对象
		ServerSocket server=null;
		//2监听是否有客户端发来请求
		Socket client=null;
		//3创建Socket对象	
				//4创建输入流
		InputStream is=null;
		try {
			server = new ServerSocket(8080);	
			client = server.accept();
			is=client.getInputStream();
			byte[] buf=new byte[10240];
			int len=is.read(buf);
			System.out.println(new String(buf,0,len));
			/***
			 * 以下代码是对浏览器的请求做出响应
			 */
			StringBuilder sb=new StringBuilder();
			StringBuilder sbContent=new StringBuilder();//响应的文本
			sbContent.append("<html><head><title>响应结果</title></head>");
			sbContent.append("<body>登陆成功</body></html>");
			//1拼接像迎头
			sb.append("HTTP/1.1").append(BLANK).append(200).append(BLANK).append("ok");
			sb.append(CRLF);//换行
			sb.append("Content-Type: text/html;charset=utf-8");
			sb.append(CRLF);
			sb.append("Content-Length:").append(sbContent.toString().getBytes().length).append(CRLF);//换行,代表响应头和相应正文之间的空行
			sb.append(sbContent);
			
			//通过流输出
			BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(client.getOutputStream(),"utf-8"));
			bw.write(sb.toString());
			bw.flush();
			bw.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
		//关闭流
		try {
			IOClose.closeAll(is,client,server);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		}
	}

	private static InputStream InputStream(InputStream inputStream) {
		// TODO Auto-generated method stub
		return null;
	}
}

html代码

<html>
<head>
<title>我的第一个html</title>
</head>
<body>
<h1>hello world</h1>
<form action="http://localhost:8080/index.html" method="post">
<p>用户名:<input type="text" id="uname" name="username" /></p>
<p>密码:<input type="password" id="pwd" name="password" /></p>
<p><input type="submit" value="登陆"/></p>
</form>
</body>
</html>


image.png


 浏览器没有显示,但是eclipse控制台输出的正常的,所以想问一下是什么原因,感谢

image.png

JAVA 全系列/第二阶段:JAVA 基础深化和提高/手写服务器项目(旧) 3154楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 3155楼

老师,以下是我的代码,请问为什么会报错?请问是什么错误?

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

请老师看一下,代码应该没问题

JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程(旧) 3157楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 3160楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 3161楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 3164楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 3165楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637