Web基础-JavaWeb:Servlet学习笔记

资源

菜鸟教程Servlet

Servelet和JSP的分工

在这里插入图片描述
JSP用来写请求发起页和响应页
Servlet用来写后台的业务逻辑处理、数据库交互等

问题汇总

  1. 很大的一个坑,与MySQL连接时rs.next()的使用
    它用于判断结果集中是否有下一个并且指针下移一位,划重点
    就是说开始时指针处于第一条记录之前
    在执行此函数时指针已经下移了一位,指向了第一条记录

如果你的返回只有一条记录时最好使用 if(rs.next()),多条记录时使用while

另外,使用 rs.next() 判断返回的一条记录是否为空时一定要注意
算了,Talk is cheap,show me the code.

 if  (!(rs.next())) {
                //没有此用户时rs.next为空,取反后执行
                UserLoginSQL_Status="UserLoginSQL_InvalidUsername";
                //return UserLoginSQL_Status;
                }
else {
	if (rs.next()) {                   
		//有此用户                                   
		String SQLemailAddress=rs.getString("emailAddress");
		String SQLuserName=rs.getString("userName");
		}

不要这样写
因为第一个 rs.next() 执行后如果没有记录的话,指针下移指向空,返回false,取反后执行赋值语句。
但是如果有记录的话就返回true,指针指向第一条记录,然后执行else中的语句,注意
此时如果再画蛇添足用 if (rs.next())判断一遍的话,返回是false,因为已经没有下一条记录了

  1. 这个纯粹是自己太傻叉了
    因为操作系统做实验需要用到javac命令,CentOS上需要
yum install java-devel

执行完以后我的jdk被更新了一个版本,但eclipse里没有同步更新,最明显的特征就是所有java文件的首行都有报错java.io.IOException cannot be resolved to a type
解决:BuildPath --> Configure Build Path --> 看到JRE System Library出现错误–>Remove后–>Add Library --> JRE System Library --> 选择新的jdk

  1. 记录一个没见过的异常吧,直觉应该是同时进行了GET和POST引起的,暂未解决
严重: Servlet.service() for servlet [myservlet.CommentServlet] in context with path [/wuming_BBS] threw exception
java.lang.IllegalStateException: Cannot forward after response has been committed
	at 

在这里插入图片描述感觉自己是个傻子,让你不好好看代码!两次forward都看不到

发布了61 篇原创文章 · 获赞 11 · 访问量 4886

猜你喜欢

转载自blog.csdn.net/weixin_43249758/article/details/102528732
今日推荐