图书借阅系统开发介绍及心得
HTML5、CSS、JS、jQuery、axios、bootstrap
servlet、JSP、JDBC
MySQL
项目采用mvc模式构成
项目主要有两大视角:管理员和用户两个视角
管理员表:登录校验 用户表:登录校验 图书表:查询全部图书数据、增加图书、删除图书、更新图书、根据字段值查询图书 借阅记录表:
## 遇到的bug
一:
<c:if test="${admin!=null}">
</c:if>
这个标签会发疯一样,一样的判断条件会导致有的地方出来,有的地方代码中的内容不出现
二:
<link href="css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
使用网络上的样式可以渲染页面,但本地的不行。再项目快完成时突然这样
项目在2024年1月9日开始开发,开发动机是上的JavaWeb要结课了。
1月9日
决定开发选题,开发一个图书借阅系统。一开始还不知道要开发哪些内容,数据表的设计也是一塌糊涂,很多东西都没有考虑到,导致后期修改表结构。
同时也确定了使用什么技术。
通过观察别人的前端,自己总结了所需要的功能
1月10日
完成页面基本功能。查询与基本前端网页
1月11日
完成大部分管理员功能
1月12日
深入理解了所用技术,对网页的转发,数据解析,架构与写法有了更深刻的认识。寻找jar包下载,认识到了自己需要一定的英语水平
1月14日
完成了用户的基本功能,编写开发心得
1月15日
想要统一项目的命名,结果遇到各种bug。
我尝试改变了controller为Controller,结果遇到了什么只读属性不能改变等问题。。接下来再进行登录等操作时,便不能进行了。明明代码没有进行任何报错。只能重建项目了。(我还尝试将controller层下的servlet按照表与页面细分。因此报错中是)
src └── controller └── LoginController.java 这里又体现了github的重要性,如果能在大改前上传一下,那情况会好很多。当然,也是个人没有意识到这点,不然可以提前备份准备啥的。
HTTP Status 500 – Internal Server Error
Type 异常报告
消息 Error instantiating servlet class [Controller.Login.LoginController]
描述 服务器遇到一个意外的情况,阻止它完成请求。
Exception
javax.servlet.ServletException: Error instantiating servlet class [Controller.Login.LoginController]
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.base/java.lang.Thread.run(Thread.java:834)
Root Cause
java.lang.ClassNotFoundException: Controller.Login.LoginController
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.base/java.lang.Thread.run(Thread.java:834)
Note 主要问题的全部 stack 信息可以在 server logs 里查看
Apache Tomcat/9.0.27
开发的经验
com.example.mywebapp
.public static final
。规范一致。