JSP学习之表单无法正常显示

JSP学习之表单无法正常显示

问题描述

在jsp文件中,加入随string类型的长度判断if语句之后,表单无法正常显示出来。问题代码如下:
问题代码

<body>
    <%
    HttpSession sessionId=request.getSession();
    if (session.isNew()){
        response.getWriter().println("session创建成功,session的id是:"+sessionId);
    }else {
        response.getWriter().println("服务器已经存在该session了,session的id是:"+sessionId);
    }
    String str = request.getParameter("boy");
    /*---------------------问题部分--------------------*/
    if (str.length()==0){
        response.getWriter().println("session的id是:"+sessionId);
        session.setAttribute("txt",new String());
    }else {
        session.setAttribute("txt",str);
    }
    /*-------------------------------------------------*/
%>
    <form action="inputString.jsp" method="post" name="form">
        <p>输入字符串:</p>
        <input type="text" name="boy">
        <input type="submit" value="提交" name="submit">
    </form>
    <a href="computer.jsp">点击转到computer.jsp页面</a>

</body>

网页情况
JSP学习之表单无法正常显示

问题检查

注释掉if部分语句,发现from表单可以正常显示,但是不懂为什么会这样。
注释部分代码

//    if (str.length()==0){
//        response.getWriter().println("session的id是:"+sessionId);
//        session.setAttribute("txt",new String());
//    }else {
        session.setAttribute("txt",str);
//    }

网页情况
JSP学习之表单无法正常显示

问题解决

问题似乎出现在判断语句上,原代码if (str.length()==0)我是想对当表单输入为空时的情况做一个txt的创建和赋予空字符串的操作。
但是当表单输入为空时str==null,所以判断语句应该改为if (str==null)才对。
最终版代码

<body>
    <%
    String str = request.getParameter("boy");
    if (str==null){
        session.setAttribute("txt",new String());
    }else{
        session.setAttribute("txt",str);
    }
%>
    <form action="inputString.jsp" method="post" name="form">
        <p>输入字符串:</p>
        <input type="text" name="boy">
        <input type="submit" value="提交" name="submit">
    </form>
    <a href="computer.jsp">点击转到computer.jsp页面</a>
</body>

网页情况
JSP学习之表单无法正常显示