第一篇博客《关于中英文符号的小情绪》

从我接触代码开始,只要我面对代码,就进入了哄孙子的状态,在孙子面前,我就没对过。在这里面,栽跟头最多的就是中英文符号了,就最近一次的关于符号错误的小问题说说,来开始我的第一篇博客吧。
先说说工程问题,在displayStu.jsp中,显示数据库中所有学生的信息列表,而且在每一个学生信息后面加上“删除”链接,用户单击后,会删除对应的学生。

这里写图片描述
看着老师代码一个字母一个字母抄的代码!

来看看displayStu.jsp,没有报错,这个也没什么好错的

<%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>
<html>
  <body>
        单击连接,删除学生
        <table border =  "1">
        <tr bgcolor = "blue">
                <th>学号</th>
                <th>姓名</th>
                <th>性别</th>
                <th>删除</th>
        </tr>
        <%
                Class.forName("com.mysql.jdbc.Driver");
                        Connection  conn = 
        DriverManager.getConnection("jdbc:mysql://localhost:3306/database","root","root");
                String sql="SELECT STUNO,STUNAME,STUSEX FROM T_STUDENT";
                Statement stat = conn.createStatement();
                ResultSet rs = stat.executeQuery(sql);
                while(rs.next()){
                        String stuno=rs.getString("STUNO");
                        out.println("<tr>");
                        out.println("<td>" + stuno + "</td>");
                        out.println("<td>" + rs.getString("STUNAME") + "</td>");
                        out.println("<td>" + rs.getString("STUSEX") +"</td>");
                        out.println("<td><a href ='deleteStu.jsp?stuno = " + stuno + "'>删除</a></td>");
                        out.println("</tr>");
                }
                stat.close();
                conn.close();
         %>
    </table>
  </body>
</html>

也没有报错deleteStu.jsp,嗯

<%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>
<html>
   <body>
        <%
                String stuno = request.getParameter("stuno");
                Class.forName("com.mysql.jdbc.Driver");
                        Connection conn = 
            DriverManager.getConnection("jdbc:mysql://localhost:3306/database","root","root");
                Statement stat = conn.createStatement();
                String sql="DELETE FROM T_STUDENT WHERE STUNO='"+stuno+"'";
                stat.executeUpdate(sql);
                stat.close();
                conn.close();

         %>
         <%=stuno%>被成功删除,<a href="displayStu.jsp">回到displayStu.jsp</a>
   </body>
</html>

真的我看起来写的跟老师的一毛一样啊,小伙伴也是这样被骗了啊,可是我部署好运行,点击删除出来是这样sei儿的
这里写图片描述

地址栏里你可以很清楚的看到学号值有木有?
http://localhost:8080/Prj04/deleteStu.jsp?stuno = 120

但是接收传值就是为空,像下面这行结果:
null被成功删除,回到displayStu.jsp

所以,我看了两天,重写了两边,又调试了好几遍,终于,我还是没解决这个问题!!
所以我就拿着这个小问题去问老师了,在此感叹一句,代码经验丰富的人真是火眼金睛,老师让我把代码打包发过去,调试运行了一下就发现了问题,多了个空格!
没错!就是多了个空格!!

好了,牢骚发完了,正经说:
我们知道,空格其实是有ASCII码值的,在Javaweb中,会自动把你的英文空格忽略掉,而中文空格出现,会以ASCII码形式被编译,而我个人习惯,也是为了美观,会在“=”两边加空格,还有其他看起来拥挤的地方,但是在这过程中,我不能保证中英文的完全正确转换或者不小心碰到什么键,所以在url传值的时候,要是其中一方多了个空格,那么就会导致两边参数不一致,值无法正常传递。
在以后的类似错误中,我们也可以通过观察地址栏信息找问题,比如我的程序,地址栏中虽然有参数值被传递过来了,但是会发现多了个空格,传递的值是“空格stuno”,所以不能被接收到。
好了,第一次的感悟就这么多了,或许这中错误在代码的长途中很微不足道啊~~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值