char位两个字节,这里老师为什么说 传送一个字节数据 ‘a’
一、跟着老师敲的代码运行出来浏览器没有响应
package com.bjsxt.server; 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.net.ServerSocket; import java.net.Socket; public class Server3 { public static void main(String[] args) { String CRLF="/r/n"; String BLANK=" "; //(1)创建ServerSocket对象 ServerSocket server=null; //(2)监听是否有客户端发来请求连接 Socket client = null; InputStream is = null; try { server = new ServerSocket(8888); client = server.accept(); //获取来自浏览器的请求信息 is = client.getInputStream(); byte []buf = new byte[20480]; int len=0; len = is.read(buf); System.out.println(new String(buf,0,len)); /** * 对web浏览器做出响应信息 */ 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(CRLF);//换行,代表响应头与响应正文之间的空行 sb.append(sbContent); //通过流输出 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream(),"GBK")); bw.write(sb.toString()); bw.flush(); bw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //(6)关闭流 try { IOClose.CloseAll(is,client,server); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
二、html代码
<html> <head> <title>我的第一个html</title> </head> <body> <h1>Hello World</h1> <form action="http://localhost:8888/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>
三、运行截图
老师,为什么我无法查看类的源代码。试过Ctrl键了,弹出看不懂的界面
老师这里前面xml文档里面url-pattern共享同一个servlet-name,你是说servlet会重复,将servlet-name设置为值,url-pattern设置为键,但视频这里多选框hobby不是也是共享的吗,怎么把hobby设置为键,hobby内容设置为值了,可不可以将hobby内容是唯一的设置为键,hobby设置为值?
老师,我ie版本好像是11显示不了内容,我使用谷歌浏览器+f12可以吗
老师为什么使用字节输入流就能读取请求正文的内容呢?BufferedReader就无法读取
老师,请问这个东西叫什么名字?我想去找一个到本机看看,但是不知道他叫什么?
启动服务器后打开网页输入URL之后,eclipse里面没有显示信息,可能是什么原因?
public class CopyDirectory{ public static void main(String[] args) { copyDirectory(new File("G:\\电子大赛文件\\copyfile"),new File("D:\\copyfile")); } //复制文件夹的方法 public static void copyDirectory(File src,File dir) { if(!dir.exists()) dir.mkdir(); //目的地是否有dir目录, 没有就创建一个文件夹 File[] files = src.listFiles(); for(File file:files) { if(file.isFile()) { //如果当前File对象是文件 则直接进行拷贝文件 //new File(src +"\\" + file.getName()) 通过构造方法,创建每一个文件(目录)对象 copyFile(new File(src +"\\" + file.getName()),new File(dir +"\\" + file.getName())); }else { //如果当前File对象是目录 通过递归调用 实现多层级复制 copyDirectory(new File(src +"\\" + file.getName()),new File(dir +"\\" + file.getName())); } } } //复制一个文件 /** * @param src * @param dir */ public static void copyFile(File src,File dir) { BufferedInputStream bis = null; BufferedOutputStream bos = null; try { bis = new BufferedInputStream(new FileInputStream(src)); bos = new BufferedOutputStream(new FileOutputStream(dir)); byte[] b = new byte[1024]; // 创建byte数组的中转站,缓存为1024byte int len; // 接受read()方法的返回值 while((len = bis.read(b)) != -1) { bos.write(b); //写出byte数组的数据 bos.flush(); } } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(bos == null) { try { bos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(bis == null) { try { bis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
老师,在复制文件的代码中,对于
while((len = bis.read(b)) != -1) {
bos.write(b);
bos.flush();
}
如果循环条件写成 while(len = bis.read(b) != -1) { }程序会报错。java程序的执行顺序是 从左到右、从上到下。去掉括号不影响程序执行顺序啊,为什么就会报错呢?
老师想问一下共享资源是不是大多数是接口?
老师,我也出现了同样的空指针异常的错误。
找了很久也没找错误,后来把老师的源码放进去,也是空指针异常。。。
老师这个属性一定要是all吗,我试了一下其他字符串都不行
老师:Class<?> class 这个?通配符是不是表示可以指向任意类型
老师您好,可以帮我看一下为什么我的反向遍历代码执行不了呢?
package Test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; import java.util.Scanner; public class TestArrayList { public static void main(String[] args) { //创建集合对象,接口new实现类 List List=new ArrayList(); //(1)添加add List.add("HELLO"); List.add(123);//自动装箱 //List.add(new Scanner(System.in)); //(2)集合中元素的个数size() System.out.println(List.size()); System.out.println("集合是否为空"+List.isEmpty()); //(3)加其他的集合 List list=new ArrayList(); list.addAll(List); list.add(123456); list.add("HELLO WORLD"); System.out.println("list的元素个数是"+list.size()); System.out.println(list); //使用迭代器遍历集合元素 Iterator ite=list.iterator(); while(ite.hasNext()) {//判断集合中是否有元素对象 Object obj=ite.next(); System.out.println(obj); } System.out.println("*********"); System.out.println("开始反向遍历"); ListIterator listite=list.listIterator(); while(listite.hasPrevious()) { System.out.println(listite.previous()); } } }
老师有个问题视频有点不是很详细,序列标签什么时候使用啊,不是很理解
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637