# 旅游网
## 1、主要功能
实现旅游网
## 2、主要知识点
### (1)目标
能正确理解分析旅游网功能需求;
能正确创建数据库和表;
能理解并熟练搭建SSM环境;
掌握基于SSM进行相关功能操作;
结合以前所学能灵活综合运用到项目中;
积累项目案例经验。
### (2)任务
```
搭建SSM环境;
完成数据库和表的创建并添加测试数据;
完成旅游网相关功能。
```
### (3)功能说明
#### 主要功能概述
```
旅游网主要有以下八大功能需求:
登录功能;
注册功能;
邮件处理;
分类数据;
线路分页;
线路查询;
线路详情;
线路收藏。
```
### (4)数据库表
![image-20200520174547171](RImgs/image-20200520174547171.png)
### (5)功能操作
#### 1.环境搭建
```
导入数据库表及相关测试数据;
导入基础的素材(前端后台)。
```
#### 2.注册功能
##### 去注册页面
a、页面---在header.jsp里面添加这个超链接
```html
<a href="toRegPage.do">注册</a>
```
b、控制层---在UserController.java中
```java
@RequestMapping("/toRegPage.do")
public String toRegPage() {
return "register";
}
```
##### 验证输入的合法性
###### a、验证规则
**用户名:**不为空且由数字、字母、下划线组成的6-10个字符,不符合要求给出提示信息
**密码:**不为空且由数字、字母、下划线组成的6-15个字符,不符合要求给出提示信息
**姓名:**非空,不符合要求给出提示信息
**出生日期:**非空,不符合要求给出提示信息
**邮箱:**不为空且要合法,不符合要求给出提示信息
**手机号:**不为空且由11位符合规则的数字组成,不符合要求给出提示信息
###### b、验证时机-register.jsp
提交表单时
```js
//点击时验证
$("#btn1").click(function(){
$("#registerForm").submit(function(){
return checkUname() && checkEmail() && checkPhone() &&checkPwd() && checkName() &&checkBirth();
});
});
```
离开焦点时
```js
//离开时验证
$("#username").blur(checkUname);
$("#email").blur(checkEmail);
$("#telephone").blur(checkPhone);
$("#password").blur(checkPwd);
$("#name").blur(checkName);
$("#birthday").blur(checkBirth);
```
验证代码
```js
//验证用户名
function checkUname(){
var uname=$("#username").val();
//正则表达式
var reg=/^\w{6,10}$/;
if(!reg.test(uname)){
//加红色,实线边框
$("#username").css("border","1px solid red");
$("#msg").html("用户名不能为空且由不为空且由数字、字母、下划线组成的6-10个字符!");
return false;
}
//清空红色实线边框
$("#username").css("border","");
//清空消息
$("#msg").html("");
//发送ajax请求
$.post("checkUname.do",{"username":uname},function(res){
if(res=="false"){
//加红色,实线边框
$("#username").css("border","1px solid red");
$("#msg").html("用户名重复不可用!");
return false;
}else{
//清空红色实线边框
$("#username").css("border","");
//清空消息
$("#msg").html("");
return true;
}
})
return true;
}
//验证邮箱
function checkEmail(){
var email=$("#email").val();
//邮箱正则表达式-xiefucai@qq.com
var reg=/^[a-z0-9]{3,12}@[a-z0-9]{2,6}\.com$/;
if(!reg.test(email)){
//加红色,实线边框
$("#email").css("border","1px solid red");
$("#msg").html("邮箱不为空且要合法!");
return false;
}
//清空红色实线边框
$("#email").css("border","");
//清空消息
$("#msg").html("");
return true;
}
//验证手机号
function checkPhone(){
var telephone=$("#telephone").val();
//手机号正则表达式
var reg=/^1[356789]\d{9}$/;
if(!reg.test(telephone)){
//加红色,实线边框
$("#telephone").css("border","1px solid red");
$("#msg").html("手机号不为空且由11位符合规则的数字组成!");
return false;
}
//清空红色实线边框
$("#telephone").css("border","");
//清空消息
$("#msg").html("");
return true;
}
//验证密码
function checkPwd(){
var password=$("#password").val();
//密码正则表达式
var reg=/^\w{6,15}$/;
if(!reg.test(password)){
//加红色,实线边框
$("#password").css("border","1px solid red");
$("#msg").html("手机号不为空且由11位符合规则的数字组成!");
return false;
}
//清空红色实线边框
$("#password").css("border","");
//清空消息
$("#msg").html("");
return true;
}
//验证姓名
function checkName(){
var name=$("#name").val();
if(name.length==0){
//加红色,实线边框
$("#name").css("border","1px solid red");
$("#msg").html("姓名为必填项!");
return false;
}
//清空红色实线边框
$("#name").css("border","");
//清空消息
$("#msg").html("");
return true;
}
//验证出生日期
function checkBirth(){
var birthday=$("#birthday").val();
if(birthday.length==0){
//加红色,实线边框
$("#birthday").css("border","1px solid red");
$("#msg").html("出生日期为必填项!");
return false;
}
//清空红色实线边框
$("#birthday").css("border","");
//清空消息
$("#msg").html("");
return true;
}
```
##### 用户名合法性
用户名通过验证要发送异步Ajax请求-从后台验证用户名是否重复
###### 数据层-UserMapper.java
```java
/**
* 根据用户名查询该用户
*/
@Select("select * from tab_user where username=#{username}")
User selectByUname(String username);
```
###### 业务层接口-UserService.java
```java
boolean checkUname(String username);
```
###### 业务层实现-在UserServiceImpl.java中重写以下方法
```java
@Override
public boolean checkUname(String username) {
User user = uMapper.selectByUname(username);
if (user != null) {
return false;
} else {
return true;
}
}
```
###### 控制层-UserController.java
```java
/**
* 验证用户名是否重复
*/
@RequestMapping("/checkUname.do")
public String checkUserName(String username) {
boolean flag = uService.checkUname(username);
if (!flag) {
// 用户名重复,返回false
return "false";
} else {
return "true";
}
}
```
###### 表示层-在register.jsp的验证用户名中发送ajax请求部分
```js
//发送ajax请求
$.post("checkUname.do",{"usernane":uname},function(res){
if(res=="false"){
//加红色,实线边框
$("#username").css("border","1px solid red");
$("#msg").html("用户名重复不可用!");
return false;
}else{
//清空红色实线边框
$("#username").css("border","");
//清空消息
$("#msg").html("");
return true;
}
})
```
##### 保存数据
###### 页面情况-register.jsp
```html
<form id="registerForm" action="doReg.do" method="post">
```
###### 数据层-UserMapper.java
```java
/**
* 增加用户-点击注册,增加数据到数据库中
*
* @param user
* @return
*/
int addUser(User user);
```
###### 映射文件-/TravelProject/src/com/zk/dao/UserMapper.xml
```xml
<!-- 增加用户|注册 -->
<insert id="addUser" useGeneratedKeys="true" keyProperty="uid">
insert into
tab_user(username,password,name,birthday,sex,telephone,email,status,code)
values(#{username},#{password},#{name},#{birthday},#{sex},#{telephone},#{email},#{status},#{code})
</insert>
```
###### 业务层接口-/TravelProject/src/com/zk/service/UserService.java
```java
/**
* 只是关心是否增加成功,不关心是如何增加的
*
* @return
*/
boolean registerUser(User user);
```
#####
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于SSM建立的旅游网项目,使用eclipse、Navicat、mysql、mybatis、maven、spring等。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 基于STM32、ESP8266、PHP、QT、应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#、单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备、移动设备、LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等、数据集、大数据分析、人工智能、机器学习等各种项目 项目具有较高的学习借鉴价值,也适用于小白学习入门进阶。当然也可作为毕设项目、课程设计、大作业、初期项目立项演示等。如果基础还行,或者热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
毕设&课设&项目&实训-基于SSM建立的旅游网项目.zip (1850个子文件)
bootstrap.min.css 149KB
bootstrap-theme.min.css 25KB
normalize.css 8KB
common.css 4KB
search.css 4KB
route-detail.css 3KB
index.css 2KB
ranking-list.css 2KB
register.css 2KB
login.css 2KB
glyphicons-halflings-regular.eot 20KB
500.html 228B
404.html 222B
TravelProject.iml 4KB
UserController.java 5KB
Route.java 4KB
MailUtils.java 3KB
RouteController.java 3KB
User.java 2KB
UserServiceImpl.java 2KB
Md5Util.java 2KB
UserMapper.java 1KB
ResultInfo.java 1KB
FavoriteServiceImpl.java 1KB
Seller.java 1KB
RouteImg.java 1KB
CategoryController.java 953B
FavoriteController.java 839B
RouteMapper.java 784B
FavoriteMapper.java 767B
Category.java 753B
RouteServiceImpl.java 752B
Favorite.java 632B
CategoryServiceImpl.java 609B
UserService.java 565B
UuidUtil.java 536B
CommonController.java 436B
CategoryMapper.java 399B
RouteService.java 309B
FavoriteService.java 278B
CategoryService.java 250B
m462011d4865faef5c2dce3c6a3d683f35.jpeg 33KB
m262011d4865faef5c2dce3c6a3d683f35.jpeg 33KB
banner_2.jpg 469KB
banner_1.jpg 458KB
banner_3.jpg 403KB
d32c871ec03784e7dba426a2cd1b5e8f.jpg 356KB
m2d32c871ec03784e7dba426a2cd1b5e8f.jpg 356KB
cc18e9f07398424898dd77866df6624c.jpg 342KB
m2cc18e9f07398424898dd77866df6624c.jpg 342KB
e55b5c21f86efb34f3dcc3fa6a5cd2cb.jpg 323KB
m2e55b5c21f86efb34f3dcc3fa6a5cd2cb.jpg 323KB
058da2caf1718bda8fefdf8b66fcc1e4.jpg 323KB
m2058da2caf1718bda8fefdf8b66fcc1e4.jpg 323KB
52b0bb33210fb1b4af1820ab11c119b9.jpg 319KB
m252b0bb33210fb1b4af1820ab11c119b9.jpg 319KB
a8762e95cca5720fb8ab720d085ad6c8.jpg 296KB
m2a8762e95cca5720fb8ab720d085ad6c8.jpg 296KB
d62aa9f19c84f99a8b700f12824b195b.jpg 269KB
m2d62aa9f19c84f99a8b700f12824b195b.jpg 269KB
9e0caefe49275de05203249776afa9b3.jpg 268KB
m29e0caefe49275de05203249776afa9b3.jpg 268KB
395dd088670dfb34bbff4367c06acbcb.jpg 256KB
m2395dd088670dfb34bbff4367c06acbcb.jpg 256KB
e82ac48b3219c91935ba7cd4a8d28915.jpg 215KB
m2e82ac48b3219c91935ba7cd4a8d28915.jpg 215KB
guonei_1.jpg 166KB
5b95dd85d2fe9fe53f743e618f67d891.jpg 162KB
m25b95dd85d2fe9fe53f743e618f67d891.jpg 162KB
5b214cac251e1ae9f68a12c2a1f36112.jpg 149KB
m25b214cac251e1ae9f68a12c2a1f36112.jpg 149KB
jiangwai_1.jpg 140KB
106431b19d068a78b3b85197eeb64a64.jpg 136KB
m2106431b19d068a78b3b85197eeb64a64.jpg 136KB
fc18c837f7f144926adead2219a01add.jpg 120KB
m2fc18c837f7f144926adead2219a01add.jpg 120KB
e9ee4a800c087ccf0d18adfeb135afc5.jpg 119KB
m2e9ee4a800c087ccf0d18adfeb135afc5.jpg 119KB
325e6a8c0948ea9b1636e96b3983b21a.jpg 110KB
m2325e6a8c0948ea9b1636e96b3983b21a.jpg 110KB
d6bed49f9c749efa09f23f6754b25307.jpg 110KB
m2d6bed49f9c749efa09f23f6754b25307.jpg 110KB
af4cda4b7d0c0d7b65b8a203ebe55eb0.jpg 109KB
m2af4cda4b7d0c0d7b65b8a203ebe55eb0.jpg 109KB
245e8fae59aa629c11de582562c984b0.jpg 107KB
m2245e8fae59aa629c11de582562c984b0.jpg 107KB
18047a205e4286a7d56e1d17c8499363.jpg 105KB
m218047a205e4286a7d56e1d17c8499363.jpg 105KB
a62fbf5da7ba3814810b5f31238decaa.jpg 104KB
m2a62fbf5da7ba3814810b5f31238decaa.jpg 104KB
74cc1984c1f76571bf6aab86f3f613d1.jpg 103KB
m274cc1984c1f76571bf6aab86f3f613d1.jpg 103KB
e2a57866e5f783579eb3ab5ee5a56a88.jpg 101KB
m2e2a57866e5f783579eb3ab5ee5a56a88.jpg 101KB
7e7d96dcf1052c4cb7b749703784fd42.jpg 100KB
m27e7d96dcf1052c4cb7b749703784fd42.jpg 100KB
9b9dd85f6e87d2cd8ff88b1ef756ae2b.jpg 96KB
m29b9dd85f6e87d2cd8ff88b1ef756ae2b.jpg 96KB
fe89654cb1d095d30a90eca1dbfd77c5.jpg 95KB
m2fe89654cb1d095d30a90eca1dbfd77c5.jpg 95KB
共 1850 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19
资源评论
妄北y
- 粉丝: 2w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 内部讲师评选方案.doc
- 培训师职业训练教材《教学媒体应用技能训练》.doc
- 培训之网络写作指南.doc
- 培训师职业技能训练教材《良好心理素质养成与心理辅导技能训》.doc
- HR师认证复习资料-人力资源规划.ppt
- 关于如何对待工作的一些建议(ppt 45页).ppt
- 培训导师.ppt
- 管理领导力与激励.ppt
- 培训导师的职责与任务.ppt
- 培训艺术与技术(教材).ppt
- 企业内部培训师培训分享资料.ppt
- 培训与开发(ppt 157页).ppt
- 人力资源培训教材-人员招募与甄选(PPT 24页).ppt
- 巧妙处理听众的问题.ppt
- 企业培训讲师形象.ppt
- 人力资源培训教材-如何设计发展空间(PPT 26页).ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功