11.为什么数据库中没有数据,但是注册信息时,显示可以找到这个对象?
解决方案:1.你的Dao文件编写时,遍历结果集的那个循环体对创建的对象
并没有进行任何修饰,当你创建的对象是在循环体外边的时候,你的返回值
也是在循环体的外边,那么这时,你你的返回值里边是有一个对象,但是
这个对象里面没有值,但并不是 obj = null,所以,你跳转到service时,
永远都会是有这个对象,而你的判断语句是判断这个对象为不为null,你有
这个对象,那么肯定对象不为空,只是对象里边没有值而已,所以就会进入
对象不为null的循环体里,也就是如果设置了,就会输出用户已存在(有对象)这整个过程都处于无限循环里边,只有把对象放在结果集循环体里边,这时如果没有进入循环体里边,也就是没有对这个对象,就会执行下边,最后会有一个返回null,那么这时在此进入service层就会判断对象为null,就会进入 obj = null的循环中,也就是你可以再次往对象里边添加值
12.字段不存在的问题怎么解决?
解决方案:Oracle数据库区分大小写,如果字段名是小写,那么Oracle
数据库会自动给你添加双引号用来区分你写的字段名是小写的,所以最简单
直接的办法就是你创建字段的时候直接用大写,一切问题就直接规避掉了
还有,创建的表名也尽量大写,防止出现其它问题,总之一句话,Oracle
中创建的东西尽量都用大写字母,一些不确定因素就迎刃而解了
13.为什么修改完了信息之后,我要重定向到查询全部信息的页面,但是
表头信息仍然是update.do也就是他有把信息定向到修改页面,但是信息
已经修改过了?
14.为什么当浏览器头显示跳转到的Servlet,但是页面报500,显示null?
解决方案:就是你没有给Servlet提交数据,有一种情况就是没有insert
页面,在findAll页面点击了添加按钮,本应跳转到添加页面,但是实际是
没有,说明你这个添加按钮发送的请求是直接指向Servlet
INFO [http-nio-8080-exec-1] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:472)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:683)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol
C
o
n
n
e
c
t
i
o
n
H
a
n
d
l
e
r
.
p
r
o
c
e
s
s
(
A
b
s
t
r
a
c
t
P
r
o
t
o
c
o
l
.
j
a
v
a
:
868
)
a
t
o
r
g
.
a
p
a
c
h
e
.
t
o
m
c
a
t
.
u
t
i
l
.
n
e
t
.
N
i
o
E
n
d
p
o
i
n
t
ConnectionHandler.process(AbstractProtocol.java:868) at org.apache.tomcat.util.net.NioEndpoint
ConnectionHandler.process(AbstractProtocol.java:868)atorg.apache.tomcat.util.net.NioEndpointSocketProcessor.doRun(NioEndpoint.java:1457)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor
W
o
r
k
e
r
.
r
u
n
(
T
h
r
e
a
d
P
o
o
l
E
x
e
c
u
t
o
r
.
j
a
v
a
:
624
)
a
t
o
r
g
.
a
p
a
c
h
e
.
t
o
m
c
a
t
.
u
t
i
l
.
t
h
r
e
a
d
s
.
T
a
s
k
T
h
r
e
a
d
Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread
Worker.run(ThreadPoolExecutor.java:624)atorg.apache.tomcat.util.threads.TaskThreadWrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
解决方案://难道是不能两次重定向?
// if (user == null) {
// resp.sendRedirect("/login.jsp");
// System.out.println(“用户名不存在”);
// }else if (user.getUsername() != password) {
// System.out.println(“用户名或密码不存在”);
// }
resp.sendRedirect("/pages/main.jsp");
或许是代码有问题,但是这样改了之后就可以了
16.java.sql.SQLException: No value specified for parameter 1
解决方案:1.用的是PreparedStatement执行器,如果是查询语句,在
下面需要给是?的位置指定值
17.java.sql.SQLException: Column ‘password’ not found.
解决方案:遍历结果集时,获取的字段名跟数据库中的需要统一
18.写代码的时候要注意的问题
解决方案:1.数据库时候连接的是自己创建的
url=jdbc:mysql:///apartment
也就是apartment是不是自己创建的
2.Servlet中相应到数据库的编码格式是否正确
resp.setContentType(“text/html;charset=UTF-8”);
也就是括号内的东西写的是否正确
或者是其他地方的编码格式是否为UTF-8
utf-8大写和小写没有关系
19.当请求发送到Servlet之后,响应到一个页面,但是没有进入,是空白页?
解决方案:1.查看浏览器头的地址,是否与你响应的一致
2.看发送请求的地址是否与你接收的地址一致
20.对copy过来的前端页面,如何对input施加样式?
解决方案:直接在input里边写style即可,毕竟需要的样式很少