写JavaWeb项目时应注意的一些事项

简单总结一下前两天写的一个小Demo的心得。

环境搭建 :springboot整合mybatis ,数据库用的是mysql,开发工具是idea

1、首先是建项目时记得把自己需要的依赖都勾选上,比如mysql驱动 ,mybatis等等。
由于我是刚接触springboot,建项目时仍然是ssm的思想,自己一个一个导入依赖,导致版本冲突的问题困扰了我很久,浪费了大量时间。

2、要配置自己的Maven仓库,导入依赖的速度能提高很多。

3、idea集成了多种数据库,在idea的右侧配置相关信息并连接数据库。这一点之前我大概知道,但没有实际操作过,在这里连接数据库后进行一些数据库操作,还是比较方便的。

4、在建表时一定要规范,各个字段的命名一定要见名知意。除非极特殊字段,否则尽量不要使用大写,应该使用_来分割同一个字段中的各个单词,驼峰命名规则应该应用在Java开发过程中,如实体类的属性,方法等。

5、为了避免字段名与关键字冲突,可以用字段名来避免这种情况(CSDN的编辑器识别了这个符号,并将其(` )用作其他含义了,这个符号是键盘左上角esc键下面、TAB键上面的那个键,切勿与英文单引号搞混)

6、数据库的主键不是默认自动递增的,如果将其设置成自增(sqlServer的自增是identity(1,1);mysql是auto_increment),那么就不能再通过sql插入主键数据,主键数据自己默认生成;不设置主键自增的情况下才可以通过sql插入。

7、实体类和数据库字段名的对应关系使用resultMap来使其一一对应即可。一定一定要注意拼写!避免拼写错误!!!

8、写代码应该规范,该有的注释必须有,比如实体类的属性是什么含义,以及其他类的各种方法等都应该有注释标明其含义,以便他人阅读及进行二次开发;实体类的属性名也应该是见名知意,如果有对应的数据库字段,两者命名应该尽可能使用同样的单词。

9、逻辑处理要全面。后台接收前端的数据要做最全面的判断,以应对各种可能的情况,如空参等,避免空参应使用StingUtils.isBlank(String s)或StringUtils.isNoneBlank(s),而不是使用null ==s来做判断,null做等值比较会漏掉 “”、 " "、以及String s=new String();等情况;对数据库进行增删改操作时一定要try{}catch{},而不是执行了sql就认定操作成功了。

10、测试尽量新建一个controller,而不是在正式的controller上做改动(或者直接去test目录下去测)。

11、代码提交到远程仓库之前一定要检查!检查!检查 。保证万无一失再提交,大家的时间都很宝贵,不要浪费自己的时间,更浪费别人的时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 JavaWeb 项目登录用 RSA 加密的代码示例: 1. 首先,生成 RSA 密钥对: ```java KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(2048); KeyPair keyPair = keyPairGenerator.genKeyPair(); PrivateKey privateKey = keyPair.getPrivate(); PublicKey publicKey = keyPair.getPublic(); ``` 2. 将公钥保存到服务器端,传递给客户端: ```java String publicKeyString = Base64.getEncoder().encodeToString(publicKey.getEncoded()); // 将 publicKeyString 保存到服务器端,比如保存到数据库中 ``` 3. 客户端用公钥加密用户名和密码: ```java PublicKey publicKey = getPublicKeyFromServer(); // 从服务器端获取公钥 Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, publicKey); byte[] encryptedUsername = cipher.doFinal(username.getBytes()); byte[] encryptedPassword = cipher.doFinal(password.getBytes()); ``` 4. 传递加密后的用户名和密码到服务器端: ```java String encryptedUsernameString = Base64.getEncoder().encodeToString(encryptedUsername); String encryptedPasswordString = Base64.getEncoder().encodeToString(encryptedPassword); // 将 encryptedUsernameString 和 encryptedPasswordString 传递到服务器端 ``` 5. 服务器端用私钥解密用户名和密码: ```java PrivateKey privateKey = getPrivateKeyFromServer(); // 从服务器端获取私钥 Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.DECRYPT_MODE, privateKey); byte[] decryptedUsername = cipher.doFinal(Base64.getDecoder().decode(encryptedUsernameString)); byte[] decryptedPassword = cipher.doFinal(Base64.getDecoder().decode(encryptedPasswordString)); String username = new String(decryptedUsername); String password = new String(decryptedPassword); // 对比 username 和 password 是否正确 ``` 需要注意的是,RSA 加密的过程比较耗时,建议使用线程池来处理加密/解密操作。同时,为了防止中间人攻击,需要使用 SSL/TLS 协议来保证通信的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值