ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

JDK8+Tomcat8.5+MySQL5.7搭建JSP宿舍管理系统

JDK8+Tomcat8.5+MySQL5.7搭建JSP宿舍管理系统 简介这是一套基于 Eclipse、JDK8、JSP、MySQL 并在 Tomcat 下运行的宿舍寝室管理系统完整源码面向 Java Web 课程设计、毕业设计以及入门练手的学习者将其导入 IDE 后即可运行调试。管理员端支持学生信息管理学号、姓名、性别、年龄、政治面貌、班级、登录账号与密码、宿舍信息维护房间号、住宿人数、班级、楼号及公告管理可设置静校与熄灯时间学生端提供各宿舍卫生排名查询。压缩包共 248 个文件、约 6.99MB以 24 个 JSP 页面、24 个 Java 源文件及编译后的 class、79 个 JS 脚本、19 个 CSS 样式和若干图片资源为主并附 SQL 建库脚本与 jar 依赖Servlet 与 DAO 分层清晰便于按模块阅读和二次开发。已有 1341 人学习下载适合借此理清 JSP 渲染、数据库增删改查与分层设计的完整链路也可作为课设改造的基础工程。1. 环境先对齐JDK8 Tomcat 8.5 MySQL 5.7这套宿舍寝室管理系统为什么不能随手升版本拿到一份 JSP 写的宿舍寝室管理系统很多人的第一反应是去官网拉最新版Tomcat 10、MySQL 8.4、JDK 17 一把梭。装完启动控制台先甩一堆 jakarta.servlet 找不到再甩 MySQL 认证插件不匹配最后 JSP 页面白屏人就开始怀疑源码是坏的。这套 JDK 8 Tomcat 8.5 MySQL 5.7 的组合不是保守是被 Servlet 命名空间和 JDBC 驱动版本掐住的Tomcat 10 之后包名从 javax 换成 jakarta老 JSP 里import javax.servlet.*全部失效改回来的工作量比重新装一遍环境还大。所以下面按「环境对齐、分件安装、工程导入、建库连库、排错、验证」的顺序走一遍适合刚拿到源码、想在自己机器上把宿舍寝室管理系统完整跑起来的人。2. JDK8 与 Tomcat 8.5 的安装从解压到 startup 正常启动这一章解决两个东西JDK 装哪儿、Tomcat 怎么配。它们俩的关系是 Tomcat 启动时要去JAVA_HOME找 JVM找不到就闪退找错了就加载到别的版本上后面编译 JSP 时一堆Unsupported class file major version就是这么来的。我一般把运行环境统一放到一个短路径下比如C:\env\绝不放桌面、不放「我的文档」、不放带中文或空格的目录因为 Tomcat 的启动脚本、JSP 编译临时目录对空格和中文的处理在老版本上并不友好出了问题日志还很难看出来。2.1 JDK8 的安装路径与 JAVA_HOME 配置JDK8 现在官方主推的是 8u202 之后的更新版商用授权规则有变化本地学习跑项目用 8u202 或者 OpenJDK 的 8 系列都行装完只要java -version输出1.8.0_xxx就够。安装包双击一路下一步也行但我更推荐用解压版好处是路径可控、卸载干净、多版本共存时随时切。解压到统一目录后先配两个环境变量。用管理员权限打开 CMD逐条执行# 设置 JAVA_HOME注意路径结尾不要带反斜杠 setx JAVA_HOME C:\env\jdk1.8.0_202 /M # 把 JDK 的 bin 追加到系统 PATH setx PATH %PATH%;%JAVA_HOME%\bin /Msetx是永久写环境变量的命令/M表示写到系统级而不是当前用户级不加的话换个终端窗口就失效。这里有个必须提醒的点setx对 PATH 有 1024 字符截断风险如果你的 PATH 已经很长先把原值复制到记事本备份一份再执行不然截断之后一堆命令全找不到只能进注册表救。另外%JAVA_HOME%\bin最好放在 PATH 靠前的位置因为有些机器上装过 Oracle 客户端会自动塞一个C:\ProgramData\Oracle\Java\javapath进去那个目录优先级更高结果你配了 JAVA_HOMEjava -version显示的还是另一个版本这种玄学问题排查起来特别费时间。配完关掉所有 CMD 窗口重新开一个验证java -version javac -version echo %JAVA_HOME%三条输出里的版本号必须一致。如果java -version是 1.8 但javac -version是 17说明 PATH 里有多个 JDK 在抢回到 PATH 里把多余的删掉。javac尤其重要Eclipse 编译 JSP 生成 Servlet 时用的就是它只装 JRE 不装 JDK 会报Unable to find a javac compiler。2.2 Tomcat 8.5 解压版部署端口、编码、内存三个参数Tomcat 选 8.5.x 系列任意一个小版本都行别用 9 以上的大版本去做老 JSP 项目虽然 9 还保留 javax 命名空间但部分老标签库和web.xml的 schema 版本对不上会出现启动正常、页面一访问就 500 的情况。解压到C:\env\apache-tomcat-8.5.xx目录结构和 JDK 平级方便统一管理。第一个要改的是conf/server.xml里的 Connector 节点!-- conf/server.xml找到 8080 那个 Connector 整段替换 -- Connector port8080 protocolHTTP/1.1 connectionTimeout20000 URIEncodingUTF-8 maxThreads200 redirectPort8443 /port是访问端口如果本机已经跑着别的 Web 服务改成 8081、9090 都行改完记得同步改后面访问地址。URIEncodingUTF-8决定 GET 请求参数的解码方式宿舍管理系统里「按楼栋名称查询」这种带中文的 GET 请求如果这里不是 UTF-8后端request.getParameter()拿到的就是乱码而且 POST 请求不受这个参数影响很容易误判成页面编码问题。maxThreads默认 200本地开发不用动写出来是让你知道这个位置在哪将来并发压测要调的时候别满文件找。第二个要改的是 JVM 内存参数正确做法是在bin目录下新建setenv.batTomcat 启动时会自动读它# bin/setenv.batWindows 下用 set 语法等号两边不要加空格 set JAVA_OPTS-Xms256m -Xmx512m -XX:MetaspaceSize128m -XX:MaxMetaspaceSize256m -Dfile.encodingUTF-8-Xms是初始堆-Xmx是最大堆本地跑一个宿舍管理系统512m 完全够。MetaspaceSize是 JDK8 才有的参数JDK8 已经彻底移除了永久代如果你从网上抄来的配置里还写着-XX:PermSize128mTomcat 会直接启动失败报Unrecognized VM option PermSize然后窗口一闪而过什么都看不到——这是 JDK7 时代的老配置流传最广的一个坑。-Dfile.encodingUTF-8保证日志和 JSP 编译时的默认编码是 UTF-8省掉后面一半的乱码排查。第三个是确认 Tomcat 用对了 JDK。在bin目录下开 CMD 执行catalina.bat version输出里会有一行JVM Version必须是 1.8.0_xxx。如果显示的不是你刚配的那个版本检查是不是 Tomcat 的setclasspath.bat里硬编码了JRE_HOME或者系统里残留了JRE_HOME环境变量抢在JAVA_HOME前面生效。2.3 首次启动与基础验证双击bin/startup.bat会弹出一个黑色窗口正常启动的最后几行是Server startup in xxx ms。这个窗口不能关关了服务就停了。浏览器访问http://localhost:8080能看到 Tomcat 的欢迎页说明 JDK、端口、目录权限这一层全通了。如果窗口一闪就没了别急着重新双击用 CMD 进到bin目录执行startup.bat错误信息会留在当前窗口里这是看启动失败原因最直接的方式。另一种方式是看logs/catalina.YYYY-MM-DD.logTomcat 的启动异常基本都落在里面相当于一个黑匣子闪退之后第一件事就是翻它。常见的是Address already in use: JVM_Bind说明 8080 被占了用netstat -ano | findstr :8080找到 PID再taskkill /PID xxx /F干掉或者直接改端口更省事。3. Eclipse 工程导入让 JSP 项目在 IDE 里能编译、能部署环境装好只是地基真正让新手卡住的是 Eclipse 里那个红叉——明明 Tomcat 单独跑得好好的一导入工程就满屏报错。原因是 JSP 工程依赖三样东西JDK、Servlet API由 Tomcat 提供、项目自己的 jar 包Eclipse 需要你把这三样显式告诉它它不会自动猜。这一章把工程导入、运行时绑定、编译级别、编码四件事一次配齐。3.1 Eclipse 版本选择与 Tomcat 运行时绑定Eclipse 版本别追新。2022-06 之后的版本要求用 JDK 11 以上启动 IDE 本身你机器上只装了 JDK8 的话双击直接报「必须使用 1.11 或更高版本」然后开始怀疑人生。稳妥的选择是 Eclipse IDE for Enterprise Java Developers 2020-06 或 2021-03这两个版本用 JDK8 就能启动同时内置的 Web 工具链足够完整。下载页面上一定要选名字里带 Enterprise 的那个包普通 Java 版没有 Server 视图也没有 Dynamic Web Project。装好之后先绑定 TomcatWindow Preferences Server Runtime Environments Add Apache Apache Tomcat v8.5 Tomcat installation directory: C:\env\apache-tomcat-8.5.xx JRE: 选择 jdk1.8.0_202不要选 jre 目录这里JRE那一栏默认会让你选 JRE一定要点「Installed JREs」手动指到 JDK 根目录。选成tomcat/jre或者系统里的独立 JRE编译 JSP 时就没有 javac报错信息还挺隐蔽。绑定完成之后Servers视图里会出现一个 Tomcat 8.5 的服务器实例双击它能打开配置页Server Locations建议选「Use Tomcat installation」让 Eclipse 直接往你的 Tomcat 目录里部署这样 IDE 里跑出来的效果和单独启动 Tomcat 完全一致如果选默认的「Use workspace metadata」工程会被扔到.metadata里一个很深的临时目录手动去webapps找 war 包会找不到。3.2 导入工程与 Project Facets 校准拿到源码先看目录结构。有.project和.classpath的直接File Import General Existing Projects into Workspace选根目录导入没有这两个文件的用File New Dynamic Web Project建一个同名工程再把src、WebContent或web、WebRoot的内容拷进去注意别把.settings一起拷。导入之后第一步不是急着运行是校准 Project Facets这是整个 Eclipse 里最容易出错的地方右键工程 Properties Project Facets Dynamic Web Module 勾选版本 3.1 Java 勾选版本 1.8 Java Build Path Libraries 确认 JRE System Library 是 jdk1.8.0_xxx Add Library Server Runtime Apache Tomcat v8.5 Targeted Runtimes 勾选 Apache Tomcat v8.5 Java Compiler Compiler compliance level 设为 1.8Dynamic Web Module 的版本必须和 Tomcat 对上3.0 对应 Servlet 3.0Tomcat 73.1 对应 Servlet 3.1Tomcat 8/8.54.0 对应 Servlet 4.0Tomcat 9。这个版本号会直接写进web.xml的根节点版本写高了 Tomcat 启动时报The required Server component failed to start写低了有些注解式 Servlet 又扫不到。Java 版本和 Compiler compliance level 两处必须都是 1.8只改一处的话Eclipse 会用 1.8 语法检查但按别的版本编译lambda或者try-with-resources就会出现莫名其妙的红波浪线。Targeted Runtimes这一项经常被漏掉。它决定 Eclipse 部署时把哪个 Tomcat 的 jar 加进 classpath不勾的话JSP 里所有javax.servlet.*下面的类在编辑器里全是红的但项目其实能跑——这种「红着能跑」的状态最误导人会让人误删代码。3.3 JSP 编码、编译级别与部署目录确认编码要一次配三处缺一处就会有中文乱码Window Preferences General Workspace Text file encoding UTF-8 Window Preferences Web JSP Files Encoding ISO 10646/Unicode(UTF-8) Window Preferences General Content Types Text JSP Default encoding UTF-8第一处管 Java 源文件读写第二处管 JSP 文件本身第三处管新建 JSP 时的默认编码。三处统一之后工程里每个 JSP 文件头部的% page contentTypetext/html;charsetUTF-8 pageEncodingUTF-8 %才有意义。很多老项目里pageEncoding写的是GBK文件本身是 GBK 存的你在 Eclipse 里改成 UTF-8 之后原有中文注释全变问号页面输出也跟着乱——这种情况不要全局改先把文件用文本编辑器转码保存成 UTF-8再统一声明顺序反了就是白干。部署验证走一遍Servers视图右键 Tomcat 实例 Add and Remove把工程加进去启动服务器。启动日志里会打出工程的 Context Path通常是工程名。浏览器访问http://localhost:8080/工程名/首页.jsp。如果访问根路径http://localhost:8080/工程名/报 404但带文件名能打开说明web.xml里没配welcome-file-list老项目常见补上index.jsp就行!-- WebContent/WEB-INF/web.xml -- welcome-file-list welcome-fileindex.jsp/welcome-file welcome-filelogin.jsp/welcome-file /welcome-file-listwelcome-file是按顺序找的第一个不存在才找第二个所以把登录页放前面更符合这个系统的实际入口。补完记得在Servers视图里右键 Tomcat Clean让 Eclipse 重新发布不然改的web.xml还在旧副本里。4. MySQL 5.7 建库与 JDBC 连接字符集、认证插件、驱动三件事宿舍寝室管理系统的数据模型通常不复杂无非是楼栋、寝室、床位、学生、入住记录这几张表真正费时间的是连不上、乱码、字段超长这三类问题。它们全都来自三个地方数据库的字符集、root 的认证插件、JDBC 驱动 jar 的位置。逐个说。4.1 MySQL 5.7 安装与 root 认证方式调整装 MySQL 5.7 的时候安装器会问端口、root 密码、服务名端口保持 3306密码记牢服务名默认MySQL57就行装完在服务列表里能看到自动启动。这一步没什么坑坑在装完之后MySQL 8.0 开始默认认证插件是caching_sha2_password而大量 JSP 老工程配的是mysql-connector-java-5.1.4x驱动这个驱动根本不认识新插件连上去会直接抛Unable to load authentication plugin caching_sha2_password。反过来你在 5.7 上跑认证插件是mysql_native_password但如果驱动 jar 用的是 8.0 版本类名从com.mysql.jdbc.Driver变成了com.mysql.cj.jdbc.DriverClass.forName就会找不到类。版本对齐比什么都重要。确认并统一认证插件用 root 登录 MySQL 命令行执行-- 查看当前 root 的认证插件 SELECT user, host, plugin FROM mysql.user WHERE user root; -- 如果是 caching_sha2_password改成 native 方式 ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 你的密码; FLUSH PRIVILEGES;mysql_native_password是 5.7 时代的默认值5.1.x 驱动只认它。FLUSH PRIVILEGES刷新权限表让改动立刻生效不加的话有时候要重启服务才认。如果你不想动 root也可以给项目单独建个账号权限只给到dorm这一个库这在实际部署里是更规范的做法CREATE USER dorm_applocalhost IDENTIFIED WITH mysql_native_password BY App123456; GRANT SELECT, INSERT, UPDATE, DELETE ON dorm_db.* TO dorm_applocalhost; FLUSH PRIVILEGES;只给增删改查不给 DDL 权限防止程序里某段建表语句把线上表结构改坏。4.2 建库、导入 SQL 脚本与字符集选择建库这一步的字符集必须一次定死中途改代价很大CREATE DATABASE dorm_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE dorm_db;utf8mb4而不是utf8因为 MySQL 里的utf8其实是utf8mb3最多 3 字节存不下 emoji 和部分生僻字。宿舍管理系统里学生姓名如果出现生僻字用utf8会插入失败或者变成问号。utf8mb4_general_ci里的ci是不区分大小写登录账号查询、楼栋名匹配都用得上除非你的业务明确要求区分大小写否则别选_bin。导入工程自带的.sql脚本用命令行而不是图形工具方便看报错# 先建空库再导入导入时显式指定字符集 mysql -uroot -p --default-character-setutf8mb4 dorm_db C:\env\sql\dorm.sql--default-character-setutf8mb4是关键。如果你的 sql 脚本是 UTF-8 编码但客户端连接默认字符集是 GBK导进去的中文会全部变成乱码而且导完不报错等到页面上显示出来才发现那时候数据已经脏了只能删库重导。导入完成后一定抽查一张表SELECT table_name, table_collation FROM information_schema.tables WHERE table_schema dorm_db;所有表的 collation 都应该是utf8mb4_general_ci。如果脚本里写了ENGINEInnoDB DEFAULT CHARSETutf8表会被建成 utf8mb3和库级字符集不一致后面 join 或者存生僻字都会出问题稳妥的做法是把脚本里的CHARSETutf8批量替换成CHARSETutf8mb4再导。4.3 JDBC 驱动放置与连接串参数驱动 jar 放哪儿是 JSP 项目翻车率最高的一步。放的位置有两个选择工程的WebContent/WEB-INF/lib目录或者 Eclipse 的Java Build Path。正确答案是必须放WEB-INF/libBuild Path只是让编译器不报错部署的时候 Eclipse 不会把 Build Path 里的第三方 jar 复制到 Tomcat 的WEB-INF/lib下运行期自然找不到类报java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。我踩过这个坑不止一次编辑器里一路绿灯一访问页面就 500。操作上把mysql-connector-java-5.1.4x.jar直接复制到WebContent/WEB-INF/lib然后右键工程 RefreshEclipse 会自动把它加到 Web App Libraries 里不需要手动 Add to Build Path。接着写连接工具类// src/com/dorm/util/DBUtil.java public class DBUtil { // 5.1.x 驱动的类名8.0 驱动是 com.mysql.cj.jdbc.Driver private static final String DRIVER com.mysql.jdbc.Driver; // useUnicode characterEncoding 管中文useSSL 关掉省掉证书警告 private static final String URL jdbc:mysql://127.0.0.1:3306/dorm_db ?useUnicodetruecharacterEncodingutf8useSSLfalse allowPublicKeyRetrievaltrue; private static final String USER dorm_app; private static final String PWD App123456; public static Connection getConn() throws Exception { Class.forName(DRIVER); // 加载驱动只需一次放在这里够用 return DriverManager.getConnection(URL, USER, PWD); } }useUnicodetruecharacterEncodingutf8告诉驱动用 UTF-8 和数据库通信和库的utf8mb4是兼容的不用改成utf8mb4因为 5.1 驱动不认这个值。useSSLfalse关掉 SSL 握手本地开发没证书不关会打一堆警告日志。allowPublicKeyRetrievaltrue是给 8.0 驱动准备的5.1 驱动会忽略它留着不碍事将来换驱动不用再改连接串。如果你非要用 8.0 驱动类名和连接串都要换com.mysql.cj.jdbc.Driver再加上serverTimezoneAsia/Shanghai否则时间字段取出来会差 8 小时入住登记时间全部对不上。5. 常见问题排查JSP 能启动但跑不通的几类坑这一章记的是实际装这套东西时反复出现的故障每一条都按「现象、原因、解决」写清楚遇到时对号入座就行。5.1 启动与页面访问类故障现象一Tomcat 窗口一闪而过手工执行 startup.bat 报Unrecognized VM option PermSize。原因setenv.bat或者catalina.bat里残留了 JDK7 时代的内存参数。JDK8 移除了永久代PermSize、MaxPermSize全部作废JVM 启动时直接拒绝。解决把-XX:PermSize和-XX:MaxPermSize删掉换成-XX:MetaspaceSize128m -XX:MaxMetaspaceSize256m。改完先用catalina.bat version验证 JVM 能起来再startup.bat。现象二访问项目路径报 404但http://localhost:8080的 Tomcat 欢迎页正常。原因工程没有真正部署到 Tomcat或者 Context Path 和你以为的不一样。Eclipse 默认用工程名作为上下文路径如果Servers视图里没执行Add and Remove工程根本没发布。解决打开Servers视图双击 Tomcat看Modules标签页里有没有你的工程、Path 是不是/工程名。没有就Add and Remove加进去。也可以反过来在工程上右键Run As Run on ServerEclipse 会自动完成注册。现象三JSP 页面里javax.servlet.http.HttpServletRequest报红或者运行时报NoClassDefFoundError: javax/servlet/http/HttpServlet。原因两种情况。一是Targeted Runtimes没勾Eclipse 没把 Tomcat 的 jar 加进编辑期 classpath二是你误用了 Tomcat 10它的包名是jakarta.servlet.*javax下的类一个都没有。解决前者进Properties Targeted Runtimes勾上 Tomcat 8.5后者最省事的就是把 Tomcat 换成 8.5 或 9别在老 JSP 工程上折腾 jakarta 迁移改一遍 import 还要重配web.xml的 schema性价比极低。5.2 数据库与中文编码类故障现象四访问登录页直接 500堆栈里是java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。原因驱动 jar 只加到了Java Build Path没放WEB-INF/lib编译期能找到、运行期找不到。解决把 jar 复制进WebContent/WEB-INF/libRefresh工程Servers视图里Clean一次重新发布。判断标准很简单去 Tomcat 的webapps/工程名/WEB-INF/lib目录下看一眼jar 在不在不在就是没配对。现象五登录不进去日志里Access denied for user dorm_applocalhost但密码明明是对的。原因账号的 host 不匹配或者认证插件不对。dorm_applocalhost和dorm_app%是两个不同账号从 127.0.0.1 连过来时 MySQL 的匹配规则有时候会让你以为用的是同一个。认证插件不对的话报错信息会是Unable to load authentication plugin不是 access denied注意区分。解决先SELECT user, host, plugin FROM mysql.user;把账号全列出来确认 host 和 plugin。缺dorm_app127.0.0.1就补一个插件是caching_sha2_password就ALTER USER ... IDENTIFIED WITH mysql_native_password BY ...。现象六页面能打开但插入的寝室名、学生姓名在数据库里全是问号。原因链路上有任意一环不是 UTF-8。可能的点包括 JSP 的pageEncoding、request.setCharacterEncoding(UTF-8)没调、连接串缺characterEncoding、库表是 utf8mb3、MySQL 服务端character_set_server是 latin1。五处任何一处不一致都会乱而且表现为「有的页面乱有的不乱」特别迷惑。解决别一处一处猜直接查服务端变量定位SHOW VARIABLES LIKE character_set%;character_set_server、character_set_database、character_set_connection三个都应该是utf8mb4。不是的话在my.ini的[mysqld]段加上character-set-serverutf8mb4和collation-serverutf8mb4_general_ci重启服务。程序侧再补一个过滤器统一设编码比在每个 Servlet 里写一行setCharacterEncoding靠谱// src/com/dorm/filter/EncodingFilter.java public class EncodingFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { req.setCharacterEncoding(UTF-8); // 只管 POST 体GET 靠 Tomcat 的 URIEncoding resp.setCharacterEncoding(UTF-8); chain.doFilter(req, resp); } }过滤器要在web.xml里注册并且filter-mapping放最前面保证它在所有 Servlet 之前执行。GET 请求的中文在 Tomcat 8 之后默认就是 UTF-8但如果server.xml里显式写了别的URIEncoding会被覆盖回头查一遍第 2 章那段配置。6. 装完怎么验证从登录到宿舍分配走一遍完整链路环境装完、工程跑起来不代表这套宿舍寝室管理系统就通了。我习惯做一次端到端验证把「读」和「写」都覆盖到因为只打开登录页看不出连接池、事务、字符集这些问题。验证按下面这张表逐项过每项都有明确的通过标准验证项操作路径通过标准JSP 编译访问登录页页面正常渲染Tomcat 日志无 JasperException数据库连接输入正确账号密码登录跳转首页不出现 500查询功能寝室列表按楼栋筛选列表有数据中文楼栋名不乱码写入功能新增一条寝室记录数据库里能查到字段值完整中文往返新增带中文的寝室名再查出来页面显示与输入一致时间字段查看入住登记时间与系统时间一致不差 8 小时第六项最容易被忽略。如果用的是 8.0 驱动又没配serverTimezone时间会整体偏 8 小时本地测试看不太出来一上线就出问题。验证时直接往数据库插一条记录对比SELECT NOW()和页面显示的时间差 8 小时就回去补连接串参数。写入验证之后一定要回数据库确认别只看页面提示「保存成功」-- 验证写入同时确认中文没有变成问号 SELECT id, room_no, building, capacity, create_time FROM dorm_room ORDER BY id DESC LIMIT 5;room_no和building如果是???或者空串说明写入链路上还有编码问题回第 5 章第 6 条排查。如果create_time是0000-00-00检查表字段有没有设默认值以及 Java 侧传的是java.util.Date还是LocalDateTime——5.1 驱动对LocalDateTime支持不好会静默失败这种不报错的问题最难查。最后一步是把工程打成 war 包脱离 Eclipse 单独部署一次# 在工程根目录执行产物丢到 Tomcat 的 webapps 下 jar -cvf dorm.war -C WebContent .然后用startup.bat启动 Tomcat访问http://localhost:8080/dorm/能正常登录就说明这个工程不依赖 Eclipse 的元数据可以交付了。这一步是很多人的盲区IDE 里跑得好好的war 包一部署就 500八成是WEB-INF/lib漏了 jar或者classes目录没打进去。有一条血泪经验——从那以后我每次拿到一份 JSP 源码都先把 JDK 小版本、Tomcat 大版本、驱动版本这三行写在便签上贴屏幕边上装一步核一步再也不敢「先跑起来再说」。版本这种看起来最枯燥的东西往往就是那个让你折腾一整晚的坑。希望帮到你。本文还有配套的精品资源点击获取
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表