黑马旅游网遇到的问题
注册表单校验
注册功能,需要在提交表单之前对input标签内的文本进行检验,因为涉及到许多格式的校验,要用到正则表达式,这方面又学的稀松冰凉,尤其是对生日的正则表达式检验很头疼,所以就找了很多检验表单时用到的正则表达式。
//用户名正则,4到16位(字母,数字,下划线,减号)
var reg_username = /^[a-zA-Z0-9_-]{4,16}$/;
//密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
var reg_password = /^.*(?=.{6,})(?=.*d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
//Email正则
var reg_email = /^([A-Za-z0-9_-.])+@([A-Za-z0-9_-.])+.([A-Za-z]{2,4})$/;
//手机号正则
var reg_telephone= /^1[34578]d{9}$/;
//日期正则,简单判定,未做月份及日期的判定
var reg_date = /(\d{4})(-|\/)(\d{1,2})(-|\/)(\d{1,2})/g;
//日期正则,复杂判定
var reg_date = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
//包含中文正则
var reg_chinese = /[u4E00-u9FA5]/;
在注册功能的web、service、dao层的编写后,发现中文写入数据库乱码,跟着老师写了一个监听器来对post请求统一改成utf-8的编码格式,但是还是有乱码,于是开始打印每个环节数据,发现从浏览器请求的request.getParameterMap()方法中的中文就是乱码,所以问题位置基本找到。找了很多关于乱码的解决方法,在此列出
一类是修改pom.xml文件中的tomcat配置添加uri属性
```javascript
<!--tomcat插件-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<!-- tomcat7的插件, 不同tomcat版本这个也不一样 -->
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>在这里插入代码片
<!-- 通过maven tomcat7:run运行项目时,访问项目的端口号 -->
<port>8080</port>
<!-- 项目访问路径 本例:localhost:9090, 如果配置的aa, 则访问路径为localhost:9090/aa-->
<path>/travel</path>
<server>tomcat</server>
<!-- 设置编码格式为UTF-8-->
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>
不过此方法对我的问题并不适用,最后发现在maven下Runner里配置了一个属性就解决了。
添加 -Dfile.encoding=GB2312
好像是设置文件默认字符集,于是又尝试改成UTF-8是否也可行,但是使用UTF-8时就会乱码。希望有大佬可以指点一下为什么不可以。
后面比较顺利,基本没有什么困扰很久的问题。就到这里,欢迎交流