黑马旅游 进度记录

创建数据库

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编写。)

  1. 获取校验对应的字段;
  2. 定义正则表达式
  3. 判断

例子:

			//校验用户名
			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);

该过程中出现的问题:

  1. 组件失去焦点时才会校验;对应的校验方法为:
    KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲username").blur…("#username").blur(checkUsername();
  2. 定义的正则表达式一定要准确

异步提交表单(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")

你可能感兴趣的:(黑马旅游)