JavaWeb开发的一些常用业务

本文探讨了JavaWeb开发中的常见业务,包括参考牛客叶神的视频学习,连接MySQL数据库,注册与登录流程,ticket在登录注册中的应用,多线程和拦截器在权限管理中的使用,以及图片上传和Redis数据库的交互。同时,文章提到了前端校验、数据库查询、登录后的默认状态、邮件/短信激活等功能实现。
摘要由CSDN通过智能技术生成

参考

牛客叶神视频质量很高,讲解了开发中的很多注意事项,受益匪浅!

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值