关于在jsp中String = null 和String = “”的使用问题!

<%@ page language="java" contentType="text/html; charset=gbk"
    pageEncoding="gbk"%>

<%@ page import="java.sql.*"%>

<%!String str = null;

    private void tree(Connection conn, int id, int level) {
        Statement stmt = null;
        ResultSet rs = null;
        String preStr = "";
        for (int i = 0; i < level; i++) {
            preStr += "----";
        }
        try {
            stmt = conn.createStatement();
            String sql = "select * from article where pid = " + id;
            rs = stmt.executeQuery(sql);
            while (rs.next()) {
                str += "<tr><td>" + rs.getInt("id") + "</td><td>" + preStr + rs.getString("title") + "</td></tr>";
                if (rs.getInt("isleaf") != 0) {
                    tree(conn, rs.getInt("id"), level + 1);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                    rs = null;
                }

                if (stmt != null) {
                    stmt.close();
                    stmt = null;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }%>


<%
    Class.forName("com.mysql.jdbc.Driver");
    //System.out.println("1");
    String url = "jdbc:mysql://localhost/test?user=root&password=root";
    Connection conn = DriverManager.getConnection(url);
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from article where pid = 0");
    //System.out.println("2");
    while (rs.next()) {
        str += "<tr><td>" + rs.getInt("id") + "</td><td>" + rs.getString("title") + "</td></tr>";
        System.out.println(str);
        if (rs.getInt("isleaf") != 0) {
            tree(conn, rs.getInt("id"), 1);
        }
    }

    rs.close();
    stmt.close();
    conn.close();
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body>
    <table border="1"><%=str%></table>

</body>
</html>



问题: String str = null;  如果我这样使用 浏览器中显示结果为    在表格上方会有一个null  但是我用String str = “”就不会出现这种问题,这是为什么呢?





http://img.mukewang.com/5984068d00011e0e05480405.jpg

月亮岛Superman
浏览 1822回答 2
2回答

拖鞋_

JSP 不要学了  现在都是前端静态化  为了  放入CDN   JSP  什么的都不支持的

qq_逆流河_0

null标示你这个String对象不指向具体的内存数据,“”标识你这个对象指向的内存内容是空字符串
打开App,查看更多内容
随时随地看视频慕课网APP