Servlet+JSP房屋租赁系统部署:JDK8与SQL Server环境配置全解析
简介一份面向计算机相关专业毕业设计学生和JavaWeb实战学习者的房屋租赁管理系统项目基于Servlet、JSP与JDBC技术栈搭建覆盖前台会员操作与后台业务管理两大部分。前台包含登录注册、密码找回、信息收藏、首页设置、新闻公告、出售出租求租求购信息展示与检索、留言板等常用功能后台支持管理员对出售、求租、求购、交易信息进行维护并输出房屋统计和销售租金统计报表功能完整适合作为毕设或课程设计参考。资源包约13.69MB压缩包内含有项目源码、SQL Server数据库脚本、论文文档、详细的系统配置指导以及PPT答辩演示资料从环境搭建、数据库导入到项目运行均有说明。开发环境基于JDK8兼容Eclipse与IDEA配合Navicat操作数据库能够直接导入调试。当前已有250人学习参考对需要快速搭建完整房屋租赁业务系统的开发者具有较好的复用价值。1. 搭一套 ServletJSP 房屋租赁管理系统在 JDK8 和 SQL Server 之间找到那个妥协点如果你手头正好有一个基于 ServletJspJDBC 的房屋租赁管理系统要做环境部署这篇就是给你准备的。别小看这套 JSPJDBC 组合——现在看着不算新但在 java 数据库 毕业设计 场景里它的出场率高得离谱前台会员注册登录、出租求租出售求购、新闻中心、留言板后台还有交易管理和统计报表功能完整度远超一般练手项目又不像 Spring 全家桶那样堆一堆中间件。跑通它只需要 JDK8、Tomcat、一个 SQL Server 和 Navicat理论上半天能搞定实际上我见过有人折腾了两天才看到首页。真正把人卡住的基本不是 Java 代码而是三处环境配合SQL Server 的端口和登录认证、JDBC 驱动 jar 有没有被打进部署包、Tomcat 版本和项目里 web.xml 的 Servlet 版本对不对得上。这三样只要错一个Tomcat 照常启动浏览器永远白屏或报 500。这套环境本身不玄学下面按我自己部署这类项目的顺序从装 JDK 一直到验证整个租赁流程跑通一步步拆给你看。2. 环境预装JDK8、Tomcat 8.5、SQL Server 2019 与 Navicat 的版本搭配2.1 JDK8先解决装了 JDK 却跑不起来的三个老问题这个项目明确要求 jdk8就不要自作主张上 JDK 11 或 17。原因很实际项目里很多 JavaWeb 代码是按老写法来的比如 JSP 里直接跑 scriptlet、依赖某些只在 1.8 下默认开启的编译行为换到高版本 JDK 后要么编译报错要么 Tomcat 启动时直接抛 UnsupportedClassVersionError。新手最容易在这上面翻车一上来装个最新版 JDK结果连 javac 都过不了。JDK8 我建议用 jdk1.8.0_211 这个发布版太老的版本比如 45/51 在 2019 年之后的操作系统上偶尔会有时间戳和加密算法兼容问题太新的 8u3xx 系列在部分老笔记本上反而多出一些安全策略坑。安装包哪里来就不展开了装的时候记住路径里不要带空格不要装在C:\Program Files\Java\jdk1.8.0_211这种带空格的目录后患无穷。我一般固定在D:\Java\jdk1.8.0_211后面配置 Tomcat、IDEA 全指着这个路径。装完立刻配置环境变量右键此电脑 → 属性 → 高级系统设置 → 环境变量新建系统变量JAVA_HOMED:\Java\jdk1.8.0_211然后在系统变量Path的最前面追加%JAVA_HOME%\bin这里有个很老的坑有些人会顺手加一个CLASSPATH变量里面写.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar。在 JDK8 时代这已经不是必须的了JDK 会自动处理类路径写错了反而可能干扰 Tomcat 的类加载。我一般不加只靠JAVA_HOME和Path就够。做完在命令行验证java -version如果输出里有1.8.0_211就说明 JDK 就位了。如果输出的还是旧版本去Path里检查是不是有别的 JDK 路径排在前面Windows 是按顺序找的。另外一个常见情况装了 Oracle JDK 后java -version显示的是 JRE 而不是 JDK说明JAVA_HOME指向了 jre 目录改回 JDK 根目录就行。2.2 Tomcat 8.5Servlet 3.1 与 JDK8 的保守组合Tomcat 版本用 8.5不要用 10.x。原因不是 10 不好而是 10 开始把包名从javax.servlet改成了jakarta.servlet这个项目里的 JSP 页面和 Servlet 类全部按javax.servlet.http.HttpServlet写丢到 Tomcat 10 上直接 ClassNotFoundException。Tomcat 9 虽然还是javax包名但对应的是 Servlet 4.0 规范部分老项目在 web.xml 头声明和 JSP 解析上会有细微差异没必要去试。8.5 对应 Servlet 3.1 JSP 2.3是这套代码最舒服的运行环境。下载 zip 包解压到D:\Tomcat\apache-tomcat-8.5.xx解压后先检查bin目录下的startup.bat能不能找到 Java。Tomcat 启动时靠JAVA_HOME环境变量定位 JDK如果你只配了JRE_HOME或者根本没配点startup.bat会闪退。在命令行里手动跑一下最直观D:\Tomcat\apache-tomcat-8.5.xx\bin\startup.bat窗口不闪退、最后输出Server startup in [xxx] milliseconds就说明 Tomcat 起来了。如果不放心可以再顺手验证端口netstat -ano | findstr 8080看到LISTENING就说明 8080 端口已经被 Tomcat 占用。需要改端口的话去conf\server.xml里改Connector port8080那行很多毕设项目习惯把端口改成 8081 或 8088避免和本机其他服务打架。2.3 SQL Server 2019 与 Navicat库端准备和登录认证数据库用 SQL Server版本 2019、2017、2016 或 Express 版都可以这套代码没有用到高版本专有特性。学生机配置一般我建议装SQL Server 2019 Express或者 Developer 版Express 免费、Developer 也可以免费开发用。安装时有两处别勾错功能勾数据库引擎服务就够别被一堆分析服务、报表服务拖慢安装认证模式这里我强烈建议直接选混合模式给sa设一个强密码。很多人装完才发现 Windows 认证能连上、用sa就是连不上还要回 SQL Server Management Studio 里改服务器属性→安全性→SQL Server 和 Windows 认证模式这个就是典型的后悔药。项目里的 JDBC 连接串通常写的是sa账号你如果只留 Windows 认证驱动那边根本认不了。装完 SQL Server 后默认 TCP/IP 协议是关闭的这个问题放到第 5 章避坑清单里细说先在这里留个印象装完别急着连要先去 SQL Server Configuration Manager 里把 SQL Server 的 TCP/IP 启用。Navicat 这里用的是 Navicat Premium不是 Navicat for MySQL因为数据库类型是 SQL Server。打开 Navicat 后新建连接选Microsoft SQL Server类型主机填localhost端口默认1433用户名填sa密码填安装时设的密码。能连上就说明数据库端已经通了连不上先别怀疑代码99% 是 TCP/IP 没开或者密码策略问题。3. 数据库导入SQL Server 建库、跑脚本与 JDBC 连接串逐项拆解3.1 建库与执行 SQL 脚本Navicat 和命令行两种走法拿到项目压缩包后先找sql或database目录里面一般有整个数据库的建表脚本和初始数据。我们先看一眼脚本开头有没有CREATE DATABASE语句有的话直接执行整个脚本即可没有的话需要先手动建一个空库再去跑脚本否则脚本里的USE xxx会直接报错。我一般先把库建好名字按项目脚本里引用的来如果脚本里写的是house_rental就用它避免后面改连接串时大小写、下划线对不上。在 Navicat 的查询窗口执行CREATE DATABASE house_rental COLLATE Chinese_PRC_CI_AS; GO这个排序规则值得说一下Chinese_PRC_CI_AS是简体中文、不区分大小写、区分重音毕设项目里的中文查询和模糊搜索基本靠它。如果你的 SQL Server 是英文版默认排序规则插入中文数据时可能出现乱码或排序怪癖所以建库时显式指定排序规则算是这套 JavaWeb 项目的老传统了能写上就写上省得后面查留言板中文数据时翻车。建完库后在 Navicat 里选中house_rental这个库右键 →运行 SQL 文件→ 选择下载包里的.sql脚本执行完看左下角有没有报错。Navicat 执行的时候对脚本里的GO批处理分隔符处理得很好一般都能一口气跑完。跑完刷新一下表列表应该能看到会员表、出租信息表、求租求购表、新闻表、留言表、管理员表等一串表。没装 Navicat 或者想验证脚本也可以直接在命令行用sqlcmd跑sqlcmd -S localhost -U sa -P 你的密码 -d house_rental -i D:\house_rental.sql-d house_rental指定目标库-i指向脚本文件路径。用sqlcmd有个好处脚本中途报错时行号显示非常清楚方便定位是建表语法问题还是某条数据插坏了。这套项目脚本我跑过几次普遍有初始管理员账号和几条新闻、房源示例数据跑完可以先用查询确认一下USE house_rental; SELECT COUNT(*) AS news_count FROM news;返回不是 0 就说明基础数据进去了。3.2 JDBC 连接参数驱动类、URL、账号密码逐项拆解数据库通了接下来把代码和数据库接上。这个项目是普通 JavaWeb 工程不是 Maven所以不会有application.yml这种花哨东西连接配置一般集中在db.properties、jdbc.properties或者直接写在某个工具类里常见类名是DBHelper.java、JDBCUtil.java、ConnDB.java。打开这类文件看到的内容基本长这样jdbc.drivercom.microsoft.sqlserver.jdbc.SQLServerDriver jdbc.urljdbc:sqlserver://localhost:1433;DatabaseNamehouse_rental jdbc.usernamesa jdbc.password123456四个参数逐个说。jdbc.driver用的是微软 SQL Server JDBC 驱动的完整类名注意别写成 MySQL 的com.mysql.jdbc.Driver这是两类项目最容易搞混的地方我在部署现场见过不下三次。jdbc.url里的localhost是本机数据库地址1433 是默认端口DatabaseNamehouse_rental要和刚才建库的名字完全一致如果你的 SQL Server 是具名实例比如localhost\SQLEXPRESSurl 要写jdbc:sqlserver://localhost\SQLEXPRESS:1433;DatabaseNamehouse_rental主机名和实例名之间用反斜杠中间别加空格。jdbc.username和jdbc.password对应数据库登录账号一般项目里默认写sa。如果安装 SQL Server 时没开混合认证这里改成sa也连不上必须回 Management Studio 把认证模式切过来这个在第 2.3 节已经提过。还有个连带坑SQL Server 2019 里sa的密码策略默认要求复杂密码如果你安装时设过强密码连接串就写那个强密码如果你后面用 Management Studio 改过密码这里必须同步更新驱动可不会帮你记住。如果你的项目里连接参数不是写在.properties而是直接硬编码在 Java 类里那改法和上面一样。改完记得确认 WEB-INF/lib 或项目 lib 目录里有没有 SQL Server 驱动 jar常见的是sqljdbc4.jar或mssql-jdbc-8.2.2.jre8.jar。版本拿不准时JDK8 配mssql-jdbc-8.2.2.jre8.jar是稳妥搭配驱动 jar 版本太低时SQL Server 2019 可能有 TLS 握手失败这个后面避坑章继续讲。4. 项目导入与部署从 IDEA 打开源码到 Tomcat 能访问首页4.1 源码目录识别先认出普通 JavaWeb 项目的骨架解压项目源码后先别急着往 IDEA 里拖先看一眼目录结构。这个项目既然不是 Maven就不会有pom.xml典型结构是src目录放着 Java 源码WebRoot 或者 web 目录放着 JSP 页面、css、js、WEB-INF在src里能看到按功能拆的包——servlet 或 controller 包、dao 包、entity 或 model 包、util 包WEB-INF下有web.xml这是整个 Web 应用的入口配置首页、Servlet 路径映射全在这里定义。先把这些认清楚是有价值的后面 IDEA 配置 Artifacts 时要明确告诉工具web 根目录是哪个、编译输出到哪、依赖 jar 有哪些认不清目录IDEA 帮你自动识别也很容易认错。比如有些源码把 JSP 直接放在根目录有些放在 WebRoot 下的jsp文件夹里这两种结构的 Web Resource 配置方式不同还有WEB-INF\lib如果本来就有 jar说明发布时这些 jar 会跟着项目一起打到包里去配置时只要不排除它就行。另外在src\util或src\dao里通常会看到那个数据库工具类压不压缩包里的配置指导文档一般也会在这里提一句把驱动 jar 放到 WEB-INF/lib这句话别忽略因为它直接决定你第 5 章会不会遇到 ClassNotFoundException。4.2 IDEA 导入与依赖配置Modules、Libraries、Artifacts 三件套用 IDEA 打开项目File → Open选择源码根目录IDEA 检测到不是 Maven 项目时会当普通项目打开或者弹提示让你选新建 IntelliJ 平台项目。关键配置在File → Project Structure里我要调三个地方第一个是Project → Project SDK选成 1.8Language level 也选 8。如果下拉框里没有 1.8说明你还没在 IDEA 里添加 JDK8点 Add SDK → JDK选择D:\Java\jdk1.8.0_211目录。第二个是Modules → Dependencies点加号 →JARs or directories把项目里自带的那几个 jar 加进来尤其是 SQL Server 驱动 jar。这一步解决的是编译期能不能 import 到java.sql.*之外那些驱动类的问题。第三个是Artifacts。点加号 → Web Application → Exploded → 选模块。然后在右侧的Output Layout里确认WEB-INF\lib下面是不是把依赖 jar 都带上了。这一步最容易被忽略Moduls 里加依赖只是编译期能过如果 Output Layout 里 lib 是空的部署到 Tomcat 后运行期就找不本文还有配套的精品资源点击获取