会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132904个问题
JAVA 全系列/第二阶段:JAVA 基础深化和提高/XML 技术(旧) 35147楼

为什么我的fo-each遍历不出来



package com.itbaizhan;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
* 动态条件测试类
*/

public class DynamicConditionQueryTest {
   public List<Users> queryUsers(Users users){
       List<Users> list= new ArrayList<>();
       Connection conn =null;
       PreparedStatement ps = null;
       ResultSet rs = null;
       try{
           conn = JdbcUtils.getConnection();
           //拼接查询sql语句
           String sql = this.generate(users);
          // System.out.println(sql);
           ps = conn.prepareStatement(sql);
           //执行语句
           rs = ps.executeQuery();
           while (rs.next()){
               Users users1 = new Users();
               users1.setUserid(rs.getInt("userid"));
               users1.setUsername(rs.getString("username"));
               users1.setUserage(rs.getInt("userage"));
               list.add(users1);
           }
       }catch (Exception e){
           e.printStackTrace();
       }finally {
           JdbcUtils.closeResource(rs,ps,conn);
       }

       return list;
   }
   public String generate(Users users){
       StringBuilder sb = new StringBuilder("select * from users where 1=1 ");
       if (users.getUserid()>0){
           sb.append(" and userid = ").append(users.getUserid());
       }
       if (users.getUsername() != null && users.getUsername().length()>0){
           sb.append(" and username ='").append(users.getUsername()).append("'");
       }
       if (users.getUserage()>0){
           sb.append(" and userage = ").append(users.getUserage());
       }
       return sb.toString();
   }

   public static void main(String[] args) {
       DynamicConditionQueryTest d = new DynamicConditionQueryTest();
       Users users = new Users();
       users.setUserid(22);
       users.setUsername("yuan");
       List<Users> list = d.queryUsers(users);
       for (Users t:list){
           System.out.println(t.getUserid()+" "+t.getUsername()+" "+t.getUserage());
           System.out.println(" ni");
       }
   }
}


"C:\Program Files\Java\jdk-11.0.12\bin\java.exe" "-javaagent:D:\IntelliJ IDEA Community Edition 2023.1\lib\idea_rt.jar=65185:D:\IntelliJ IDEA Community Edition 2023.1\bin" -Dfile.encoding=UTF-8 -classpath D:\Mycode\jdbcdemo\out\production\jdbcdemoMysql;D:\Mycode\jdbcdemo\lib\mysql-connector-java-5.1.48.jar com.itbaizhan.DynamicConditionQueryTest


Process finished with exit code 0



JAVA 全系列/第三阶段:数据库编程/JDBC技术 35148楼
JAVA 全系列/第一阶段:JAVA 快速入门/控制语句、方法、递归算法 35149楼
Python 全系列/第一阶段:Python入门/Python入门(动画版) 35150楼
Python 全系列/第一阶段:Python入门/编程基本概念 35151楼
Python 全系列/第一阶段:Python入门/Python入门(动画版) 35152楼
大数据全系列/第一阶段:Linux 操作系统/Linux操作系统概述与安装 35153楼

<%--
  Created by IntelliJ IDEA.
  User: Je'f'f
  Date: 2021/9/2
  Time: 14:33
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>$Title$</title>
    <script>
        function but(){
            var xhr = new XMLHttpRequest();
            xhr.open("get","single.do");
            xhr.send();
            xhr.onreadystatechange = function(){

                if(xhr.readyState == 4 && xhr.status == 200){
                    alert(xhr.responseText);
                    //通过javaScript的内置对象JSON中的parse函数将JSON格式的字符串对转换成javascript对象
                    var obj = JSON.parse(xhr.responseText);
                    alert(obj.userid+" "+obj.username);
                    document.getElementById("span").innerHTML=obj.userid+"<br/>"+obj.username;
                }
            }
        }
    </script>
</head>
<body>
<h3>JSON格式的单个响应</h3>
<hr>
<sapn id="span"> </sapn>
<input type="button" value="ok" onclick="but()"/>
</body>
</html>

jsp代码

package pojo;

public class Users {
    private int userid;
    private String username;

    public int getUserid() {
        return userid;
    }

    public void setUserid(int userid) {
        this.userid = userid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
}

Users类

package com.servlet;

import com.fasterxml.jackson.databind.ObjectMapper;
import pojo.Users;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/single.do")
public class SingleObjectServlet 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 {
        Users users = new Users();
        users.setUserid(1);
        users.setUsername("tutu");
        //使用jackson的API转化为JSON对象
        ObjectMapper objectMapper = new ObjectMapper();
        //将Users对象转换为JSON格式的字符对象
        String string = objectMapper.writeValueAsString(users);
        System.out.println(string);
        //设置相应类型为application/json
        resp.setContentType("application/json");
        PrintWriter pw = resp.getWriter();
        pw.print(string);
        pw.flush();
        pw.close();
    }
}
SingleObjectServlet

image.png

运行结果,点击OK无反应。请问是什么问题,找半天找不出来。

image.png

F12看了是这个

JAVA 全系列/第五阶段:JavaWeb开发/Ajax技术详解(旧) 35154楼
C++特训班/第一阶段:基础篇/基础篇 35155楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 35156楼

只要链接就报错:

请输入:server,<port>或者:<ip>,<port>

192.168.174.1,8888

java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1

at cxh.InetTest.GoodTCP.main(GoodTCP.java:122)



//发送消息线程
class Send1 extends  Thread{
    private Socket socket;
    private Scanner scanner;
    public Send1(Socket socket,Scanner scanner) {
        this.socket = socket;
        this.scanner = scanner;
    }

    public void run(){
        this.sendMsg();
    }
    //发送消息
    public void sendMsg(){

        PrintWriter pw = null;
        try{
            //创建Scanner对象
            scanner = new Scanner(System.in);
            //创建向对方输出消息的流对象
            pw = new PrintWriter(this.socket.getOutputStream());
            //发送消息
            while (true){
                String msg = scanner.nextLine();
                pw.println(msg);
                pw.flush();
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(scanner != null){
                scanner.close();
            }
            if(pw != null){
                pw.close();
            }
            if(this.socket != null){
                try {
                    this.socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
/*
 * 接收消息的线程
 * */
class Receive1 extends Thread{

    private Socket socket;
    public Receive1(Socket socket){
        this.socket = socket;
    }

    public void run() {
        this.receiveMsg();
    }
    /*
     * 用于接收对方的消息
     * */
    private void receiveMsg(){
        BufferedReader br = null;
        try{
            //创建用于接收对方发送消息的流对象
            br = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
            while (true){
                String msg = br.readLine();
                System.out.println("他说:"+msg);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(br != null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                if(this.socket != null){
                    try {
                        this.socket.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}

public class GoodTCP {
    public static void main(String[] args) {
        Scanner scanner = null;
        ServerSocket serverSocket = null;
        Socket socket = null;
        try{
            scanner = new Scanner(System.in);
            System.out.println("请输入:server,<port>或者:<ip>,<port>");
            String str = scanner.nextLine();
            String[] arr = str.split(",");
            if("server".equals(arr[0])){
                //启动服务端
                System.out.println("TCP Server Listen at"+arr[1]+"........");
                serverSocket = new ServerSocket(Integer.parseInt(arr[1]));
                socket = serverSocket.accept();
                System.out.println("链接成功!");

            }else {
                //启动客户端
                socket = new Socket(arr[0],Integer.parseInt(arr[1]));
                System.out.println("链接成功!");
            }
            //启动发送消息的线程
            new Send1(socket,scanner).start();
            //启动接收消息的线程
            new Receive1(socket).start();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(serverSocket != null){
                try {
                    serverSocket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程(旧) 35157楼
Python 全系列/第十二阶段:Python_Django3框架/Django初级 35158楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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