笔记:
1.创建自己的Servlet文件时,在tomcat下的Webapps里创建自己的文件夹,文件夹里要创建WEB-INF,而配置文件web.xml和classes都要放在WEB-INF文件夹下
否则网页在打开localhostt本地文件的时候会报404错误!
接着就写servlet程序过程中,遇到的一些问题,记录一下,权当给自己留点经验吧。
2.关于Unable to compile class for JSP的解决方法
我在百度问题的时候,看到不少都是报的这种错误,有的是使用中英文符号出错啦,有的是使用javaee版本不一样jar包冲突啦之类的。但是同学们!!(敲黑板) 不光要看问题啊!还要看看下面问题说了啥啊!下面指出,Only a type can be imported.而且问题很明显出现在JSP页面上,错误意思为:无法编译JSP。那我们就要从JSP里找问题。我在百度的时候,偶然看到一个帖子说是不小心引入了一个什么包的,原贴在哪儿我现在也给忘了,不过就是突然灵光一闪,回去JSP页面顶部去查看我是不是引入了什么包。结果发现:
有没有!!和问题显示的一毛一样啊!!果然就是因为我不知道什么时候误操作引入了这么一个东西,结果JSP页面就无法编译。删掉以后,果然就能顺利运行。
3.首先抛出问题:关于 getWriter() has already been called for this response 的错误解决办法
报错如下:
翻译:getWriter()已经被访问这个响应
我记得我是在做下载操作的时候遇到的这个错误,从服务器以输出流的形式下载文件
之前使用了PrintWriter out = response.getWriter();
在下载的时候,又使用了ServletOutputStream out = response.getOutputStream();
所以产生冲突。问题本质是 getWriter()和getOutputStream()不能同时使用。
解决方法 :可以在前面写 response.reset() 就好了
原贴参考:http://blog.sina.com.cn/s/blog_4f92b1870100w2fg.html
4.遇到的数据库连接方面的问题(关于数据库连接,回头我在博客上会分享几篇写关于JDBC连接的底层代码的实例 很实用)
照惯例,先上问题:Can not issue data manipulation statements with executeQuery()的错误解决办法
这个问题简单说 原因是我在statement的executeQuery()函数中放入了插入语句insert,才报以上的错
结论:statement的executeQuery(sql)函数的意思是执行查询,所以函数里只能放入select 语句,放入增删改语句就会报错。
要执行增删改语句,要使用 statement的execute(sql) 函数。
5.数据库语句问题(在这里摔了好几个跟头 特地写出来提醒自己)
问题:关于Column count doesn't match value count at row 1的解决方法
这个问题说起来其实很简单。其实就是SQL插入语句中,如果给出的要插入的值不完整,则应指定表中的对应的列。
问题描述:在这里我设定 id 自增长,所以在写插入语句的时候,只给出 username 和 password 两个值,因为没给指定列,所以找不到 values 赋值给谁。
解决方法:
补充:
写插入语句时,如果不在语句中指明表中的列,直接使用insert into 表名 value(”值”,”值”)时,则应把表中所有的列的值都写上,就算是为null也要写上。如果值不给完全的话,则应指定表中的列名再给与对应的值。否则程序既不会报错,也不会插入相应记录。
6.关于java.lang.IllegalStateException的解决方法