GPT对比 : claude,gpt3.5在线版,gpt3.5API版本
提示词:
You are a senior Java engineer, please use java to help me output a copy of springboot combined with ssm framework to achieve login interception code, including the required dependencies in the process, and so on, you can answer in batches, when I type to continue, you output the rest
你是一名资深的Java工程师,请用Java帮我输出一份SprringBoot结合SSM框架实现的登录拦截代码,包括所需的依赖等过程,你可以分批回答,当我输入继续时,你输出剩下的代码
ps:每一步都是我回复了继续以后给出的
claude :
第一步 先给出了 Maven 和yml的基本配置
第二步 给出了pojo,mapper,xml service LoginInterceptor WebMvcConfig
第三步 LoginController login.html home.html:
第四步 WebSecurityConfig
第五步 给出了RBAC角色控制的相关扩展 包括前后端同上的层面的代码
第六步 扩展到https层面的请求头上安全性的一些属性设置
claude可以做到我输入中文回复中文,输入英文回复英文。灵活切换
GPT3.5在线版
1 给出了Maven依赖
2 给出了 SecurityConfig LoginController login.html
3 User UserDetailsServiceImpl
4 UserMapper MyBatisConfig
5 YourApplicationName
6 继续扩展就是一些springSecurity的相关控制了
GPT3.5API版本:
在之前的测试中API版本一直是比较逊色的,但是这次居然第一步给出了项目的结构是我没想到的
如图:
第二步:WebMvcConfig LoginInterceptor LoginController yml配置
第三步 mapper UserService LoginInterceptor LoginController login.jsp
第四步 优化之前的代码,比如在LoginInterceptor.java中,我们可以添加一些排除路径,使得某些请求不受登录拦截的影响。请修改addInterceptors方法中的代码如下:
第五步:
好的,接下来我们可以进行一些额外的功能扩展。以下是一些常见的功能,您可以根据需要选择添加到代码中。
记住我功能:允许用户选择“记住我”选项,在下次访问时免登录。
添加一个名为rememberMe的复选框到登录页面;
在登录请求处理方法中,判断是否勾选了“记住我”选项,如果是,则设置一个长期有效的cookie或token,用于自动登录。
权限验证和角色控制:根据用户的权限和角色,对不同的资源进行访问控制。
在User对象中添加字段来表示用户的权限和角色信息;
创建相应的数据库表和实体类,并在登录成功后将权限和角色信息存储到session中;
在资源访问之前,通过拦截器或注解进行权限验证。
密码加密:保护用户密码的安全性,使用加密算法对密码进行加密存储。
使用合适的加密算法(如BCrypt、SHA-256等)对用户密码进行加密;
在注册或修改密码时,对用户输入的密码进行加密,然后保存到数据库;
在登录验证时,对用户输入的密码进行加密后与数据库中的密码进行比对。
之前的前后端代码一起写的过程中,对于上下文,以及代码输出能力,在线版比API接口的输出能力要好一些,这次测试 看结果是API版本比在线版输出的好一些,但是API的有长度限制
总结:
claude 从代码的结构层面来说,完成的效果好一些,至少我是按照 配置层面 pojo mapper service controller层等等去写代码的,他这个结构就输出的很清晰。而且扩展的也围绕中心,合理。
本次测试:claude >API >在线版本