文章目录
参考
牛客叶神视频质量很高,讲解了开发中的很多注意事项,受益匪浅!
JavaWeb开发过程中的依赖
<!--web场景启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--连接数据库-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--mybatis和spingboot的整合-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!--redis驱动-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.0</version>
</dependency>
<!--单元测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--thymeleaf模板引擎-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
JavaWeb开发过程中的配置
连接mysql数据库
spring.datasource.url=jdbc:mysql://localhost:3306/redisdemo?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
注册
需要的信息至少要有用户名、密码;
常见的还需要手机、邮箱。
需要判断这些注册信息的合法性,包括
(1)信息是否已经被填写,
(2)填写的信息格式是否正确
比如输入字符长度过长或者过短
密码字符种类过少或者存在不合法字符(比如包含html字符就不被允许)
邮箱格式是否正确
(1)和(2)的解决方案:这些都是可以通过前端js进行数据处理,没必要交给后端服务器去处理。
(3)用户名是否以及存在
(3)的解决方案:这就只有查看一下数据库是否有该用户名了,如果经过前端验证没问题而且没有该用户名在数据库中,那就可以合法了。
别的注意事项:就我的经历而言,有的网页注册时就会默认登录(我觉得这个应用场景更广泛),
有的网页注册时就只是注册,往往注册完以后还要登录一下(比如QQ,不过QQ毕竟是在BS架构下注册,在CS架构下登录,还是情有可原的)。
默认登录时的一个解决方案是直接调取“登录”接口,代码简洁明了,就是说前端格式验证得再过一遍,我觉得还是可以接受的。
常用技术:ajax。
别的扩展点:邮件/短信激活!
这是@Controller层
@RequestMapping(path = {
"/reg/"}, method = {
RequestMethod.GET, RequestMethod.POST})
@ResponseBody
public String reg(Model model, @RequestParam("username") String username,
@RequestParam("password") String password,
@RequestParam(value="rember", defaultValue = "0") int rememberme,
HttpServletResponse response) {
try {
Map<String, Object> map = userService.register(username, password);
if (map.containsKey("ticket")) {
//如果map里包含了
Cookie cookie = new Cookie("ticket", map.get("ticket").toString());
cookie.setPath("/");
if (rememberme > 0) {
cookie.setMaxAge(3600*24*5);
}
response.addCookie(cookie);
return ToutiaoUtil.getJSONString(0, "注册成功");
} else {
return ToutiaoUtil.getJSONString(1, map);
}
} catch (Exception e) {
logger.error("注册异常" + e.getMessage());
return ToutiaoUtil.getJSONString(1, "注册异常");
}
}
这是@Service层
/**
* 根据注册时填写的用户名和密码,如果有问题,返回一个描述了错误信息的Map
* @param username
* @param password
* @return 一个描述了错误信息的Map(注册信息填写正确当然就没必要了)
*/
public Map<String, Object> register(String username