昨天上午,凯哥还在好好的使用idea,中午的时候,360扫描,好像要升级还是要干嘛的,没细看,然后凯哥就点击确定。结果到下午使用idea的Terminal 命令行的时候提示,如下图错误:
failed tostart[cmd.exe]
然后重新安装了ieda,又提示如下错误:counld't create PTY
然后百度、google.从搜索出的结果来看,可以总结为以下几个问题:
1:cmd命令全路径。如下图:
凯哥也修改了,结果是,然并卵。
2:使用管理员权限启动:
将idea的兼容性修改已管理员身份允许此程序。如下图:
结果依然是然并卵。
3:还有说把CMD使用旧版本。
使用旧版本控制台,选项选中,如下图:
结果依然是然并卵。
然后又去官网查下问题。修改也是类似的,修改ideade shell path位置。实际是什么用。
反正凯哥百度了一天,都没用。就在绝望的时候,再来看看错误原因:
注:此错误原因是在idea 2020.1的版本下打印的。凯哥换了2018、2019、2020 三个版本的idea.
Cannot open Local Terminal
Failed to start [C:\Windows\system32\cmd.exe] in D:/kaigejava/kaigejava
Error starting winpty: ConnectNamedPipe failed: Windows error 232
This error can occur due to antivirus blocking winpty from creating a pty. Please exclude the following files in your antivirus:
- E:\kaigejava\ideaIU-2020.1.2.win\lib\pty4j-native\win\x86_64\winpty-agent.exe
- E:\kaigejava\ideaIU-2020.1.2.win\lib\pty4j-native\win\x86_64\winpty.dll
于是凯哥搜索了:
Error starting winpty: ConnectNamedPipe failed: Windows error 232
偶然间,就这么不小心的看到了一篇文章,说是360安全卫士的原因导致的。
于是凯哥回忆出现问题的原因,还真的是360诱导的。
原因,360安全防护中的进程防护处于安全考虑禁止了其他进程获取cmd的权限,如果需要放开此权限,可以如下设置:
步骤:打开360安全卫士。在右侧有个【安全防护中心】。如下图:
点击打开后。有个进程防护。如下图:
把进程防护关掉。然后在idea中,点击terminal的加号,就可以了。如下图:
如果关闭掉之后:360会出现一个叹号。如下图:
这种方法只是临时关闭了安全防护。但是有可能电脑失去安全保护。
使用第二种方案:将idea添加到信任区。但是这个需要重启电脑哦~
具体步骤:
将:
- E:\kaigejava\ideaIU-2020.1.2.win\lib\pty4j-native\win\x86_64\winpty-agent.exe
- E:\kaigejava\ideaIU-2020.1.2.win\lib\pty4j-native\win\x86_64\winpty.dll
这两个文件添加到360信任区。
360首页,木马查杀-->信任区。如下图:
点击添加文件:
将上面两个文件添加进去。获取是添加目录,直接将上面两个文件的根目录添加进去。把安全防护中心的-进程保护打开,然后重启电脑,再试试。
就这个问题,凯哥(凯哥Java:kaigejava)搞了一天时间啊。浪费啊!不过,现在已经解决了。分享出来,希望能够帮助遇到类似问题的你。
说明:此方法时候解决360安全卫士导致Idea、webstorm等无法打开终端Terminal的问题Cannot open Local Terminal
Javaweb-案例练习-5-商品数量修改和合计金额实现凯哥java 凯哥java
商品数量和小计修改实现
前面一篇完成了添加购物的功能,这篇来完善购物车页面上,修改商品数量和小计这两处地方的代码。
需求
我们的需求如下图
购物车页面,每一个商品数量这列的- + 可以点击,然后小计这列金额跟随变化。
需求简单分析
下面来简单看看这个修改思路:
在- +上写onclick事件,调用一个js方法,例如changeNum(id,num)
跳转到一个servlet去处理这个减一还是加一
把金额回显到小计这一列。
在servlet方法中,其中一个参数肯定是Book.id, 第二个参数是购买数量num,这个num也需要从session中拿到。
修改cart.jsp
在数量这个 +控件,添加一个onclick事件,调用js方法changeNum(id),在方法中changeNum(),跳转到一个servlet去处理。
新建一个servlet
先创建一个ChangeNumServlet.java, 完整代码如下
部署测试
接下来进行部署到tomcat,重启服务,点击- +看看能不能修改数量
到这里,说明修改数量-+这两个控件代码没问题,接下来写小计中代码。
小计金额代码实现
小计金额需要根据数量和价格进行变动,这里价格是固定的,数量是变化的。很简单就是数量乘价格就是小计的金额。
存,刷新购物车页面
这样看起来没问题,但是有边界问题,我们没有考虑到。
第一个问题,数量当前可以是负数
二个边界,数量可以大于库存
解决商品数量边界问题
在cart.jsp中的changeNum(), 我们还需要把库存这个变量作为参数传入,然后写两个if判断,分别判断商品数量小于1和商品数量大于库存的情况。
在Servlet中需要处理num=0的情况,也就是从cart中移除这个商品。这个代码,也会在后面点击X这个从购物车删除商品控件上会用到。
部署看看,点击商品数量为1的时候,再点击减号,看看会不会弹出提示。
击OK,看看会不会从购物车页面删除这本书。
删除商品控件代码实现
页面上还有这个红色X,点击可以删除商品。这个很简单,就是我地址传过去,让num=0,这样后台servlet就会处理,和上面逻辑一样。
在cart.jsp中找到这个红色X,大概在93行位置跳转地址改成这样。
style="color:#FF0000font-weight:bold">X
保存代码,可以测试以下,点击就直接删除,最好JS代码提示以下是否确认删除。
解决合计金额
每个商品的小计计算出来了,现在我们来解决以下合计金额。
重点看以下三部分代码
第一部分,定义一个sum变量,在foreach之前定义,初始化值为0
第二部分,在foreach结束前,统计sum的值
第三部分,合计这块直接引用${sum},得到购物车全部商品合计金额。
合计: ${sum}元
1、根据你给的信息我可以帮你解答;Java培训是非常多的,给你讲讲Java培训的一个基本流程吧!看下面:2、首先,这些培训机构呢,基本上都是分为初级-中级-高级阶段
3、初级是Java的基础知识部分
中级是web网页制作部分
高级是三大框架ssh
4、基本上每一个部分末了会有一个适应的项目供你去做,当然,是一个4人左右的小团体去做的,
所以呢,你需要把上课的每一阶段都认真听好,课后做好练习
5、根据你的信息,建议你跟培训机构提出先听几节课的要求,然后再开始斟酌一下要不要去,这是
必须可以有的
6、基本上培训后都会通过自己做的项目来得到提升,如果都是很好的完成,那么自己求职也是非常
的有信心的。
7、希望能够帮助你