package com.bjsxt.servlet; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; /** *需求:当客户端浏览器第一次访问Servlet时返回“您好,欢迎您第一次访问!”, * 第二次访问时返回“欢迎您回来!”。 */ public class WelComeServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取Cookie Cookie[] cookies = req.getCookies(); boolean flag = false; if(cookies != null){ for(Cookie cookie:cookies){ if("first".equals(cookie.getName())){ flag = true; } } } resp.setContentType("text/html;charset=utf-8"); PrintWriter out = resp.getWriter(); out.println("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>"); out.println("<HTML>"); out.println("<HEAD><TITLE> ITBZ </TITLE></HEAD>"); out.println("<BODY>"); if(flag){ out.println("欢迎您回来!"); }else{ out.println("您好,欢迎您第一次访问!"); Cookie cookie = new Cookie("first","first"); cookie.setMaxAge(60); resp.addCookie(cookie); } out.println("</BODY>"); out.println("</HTML>"); out.flush(); out.close(); } }
老师,这份 代码中为什么不需要在开头new一个cookie,就直接创建一个cookie数组了
声音太小了,要把音量开到最大才能听得清一些
import asyncio import functools async def compute(x,y): print(f'compute:{x}+{y}...') await asyncio.sleep(1) return x+y async def print_sum(x,y): # 创建task task = asyncio.create_task(compute(x,y)) # task绑定回调函数 task.add_done_callback(functools.partial(end,x,y)) # 释放下cpu的使用 await asyncio.sleep(0) for i in range(100000): if i%500 == 0: print(i) await asyncio.sleep(0.1) def end(n,m,t): print(f'{n}+{m}={t.result()}') if __name__ == '__main__': loop = asyncio.get_event_loop() loop.run_until_complete(print_sum(1,2)) loop.close() 刚才一段代码复制的有问题,以这个为准
老师 我之前安装的是14.几的版本,配合这个项目影响使用吗??????
Set<String> set = new HashSet<>(); set.add("c"); set.add(null); set.add("a"); Iterator<String> it = set.iterator(); if( it.hasNext()){ String next = it.next(); System.out.println(next); } System.out.println("1 "+it.next()); System.out.println("--------while-------"); Iterator<String> it2 = set.iterator(); while(it2.hasNext()){ String str = it2.next(); System.out.print(str+" "); }
Set集合允许有null
问题1:获取单个元素时,为什么第一个it.next()输出1 null 第二个反而是2 a,而且如果第一输出的是null那么不就代表it.hasNext()是false么,因为他是null啊
问题2:那么it2.hasNext()就为false,为什么还能循环输出第三个元素?
问题4:如果把null改为b输出的是1 a 和 2 b,把b给为33输出结果是1 33和2 a,这是因为set接口的无序性导致的么?根据哈希值计算存储的原因
结果:
老师 我没理解 为什么 通过这种方式 会报错 不理解什么意思
加了encoding='utf-8'然后就报错了应该怎么改
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; /** *发送消息的线程 */ class send extends Thread{ //与客户端对应的socket对象 private Socket socket; public send(Socket socket){ //构造器,用于传递socket this.socket=socket; } @Override public void run() { this.sendMsg(); } //定义发送消息的方法 private void sendMsg(){ //对于消息的发送需要创建两个对象,1.消息的来源:需要创建键盘输入对象 2.需要创建输出流对象 try(Scanner scanner = new Scanner(System.in); PrintWriter pw =new PrintWriter(socket.getOutputStream());){ while(true){ String msg = scanner.nextLine(); pw.println(msg); pw.flush(); } }catch (Exception e){ e.printStackTrace(); } } } /** *接收消息的线程 */ class receive extends Thread{ //创建与客户端对应的socket对象 private Socket socket; public receive(Socket socket){//构造器,用于传递socket this.socket=socket; } @Override public void run() { this.receiveMsg(); } //定义接受消息的方法 private void receiveMsg(){ //创建输入对象流,字节转字符,字符处理流 try(BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()))){ while (true){ String str =br.readLine(); System.out.println("客户端说:"+str); } }catch (Exception e){ e.printStackTrace(); } } } public class ChatSocketSever { public static void main(String[] args) { try(ServerSocket serverSocket = new ServerSocket(8888)){ System.out.println("服务端启动中,等待链接....."); //创建与客户端链接时的socket对象 Socket socket = new Socket(); System.out.println("连接成功!"); //将与客服端对应的socket对象传递给发送消息的线程,并启动该线程 new send(socket).start(); //将与客户端对应的socket对象传递给接受消息的线程,并启动该线程 new receive(socket).start(); }catch (Exception e){ e.printStackTrace(); } } }
老师我这上面为啥一写注释就老是报错呢,比如#内容,下面是代码,一执行就报#注释那行
当我打开第二个goodTCP出现报错现象
这里两个方法名称是一样的,这里怎么识别呢?
老师这个什么意思
请问一下老师,为什么我创建的就没有那两个文件,也就没有报错。
是电脑的问题还是,代码感觉写的对但是不运行
老师,接上一个问题,就这种的 为啥需要变成字符串 比如那个name 没有直接输出,而是转成字符串
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637