创建数据库
2019.3-2
以前一直是用navicat作为MySQL的图形化工具。视频中用了SQLYog。所以我也下载SQLYog。
创建database travel;时出现
错误代码: 1366
Incorrect string value: ‘\xE9\xBB\x91\xE9\xA9\xAC…’ for column ‘sname’ at row 1
解决办法:修改数据库编码,改为utf-8;
SQLYog出现问题,暂没解决;还是用navicat;
在navicat中创建datadbase travel;并将travel.sql导入数据库。
表单的校验功能
在register.html 中加入相应的校验代码;
校验功能实现主要分为;(用JavaScript编写。)
- 获取校验对应的字段;
- 定义正则表达式
- 判断
例子:
//校验用户名
function checkUsername() {
//1 获取用户名
var username=$("#username").val();
//2 定义正则
var reg_username=/^\w{8,20}$/;
//3 判断,给出提示信息
var flag=reg_username.test(username);
if (flag){
// 用户名合法
$("#username").css("border","");
} else {
//用户名不合法 加一个红色边框
$("#username").css("border","1px solid red");
}
return flag;
}
// 当某一个组件失去焦点时,调用对应的校验方法
$("#username").blur(checkUsername);
该过程中出现的问题:
- 组件失去焦点时才会校验;对应的校验方法为:
KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲username").blur…("#username").blur(checkUsername(); - 定义的正则表达式一定要准确
异步提交表单(Ajax实现)
html为视图层,不能直接从servlet相关的域对象获取值,所以只能通过ajax获取响应数据。
实现代码为:
$(function () {
//当表单提交时,调用所有的校验方法
$("#RegisterForm").submit(function () {
// 1 发送数据到服务器
if (checkUsername()&&checkPassword()&&checkEmail()){
//校验通过,调用Ajax请求 提交表单的数据
$.post("registUserServlet",$(this).serialize(),function (data) {
// 处理服务器响应的数据 data
});
}
// 2 跳转页面
return false;
//如果这个方法没有返回值,或者返回值为true。表单提交,否则不提交)
});
/我的问题 registerUserServlet无效,会出现500错误,
解决方法:在新建的RegistUserServlet中修改注解
@WebServlet(name = "/registUserServlet")