我觉得初学web感觉比较有难度就是,该怎么去实现一个功能。
我先给出思路:
拿其中一个例子来说:excel导入分成2部分,上传到项目中的一个地方,然后从表里然后取出数据再插入进数据库。(这是整体的思路)
步骤:
第一步(上传文件):文件上传可以用以前做过的思路。我选择其中一个方法是,用smartupload这个组件来上传文件到项目。
具体步骤是:在jsp写一个上传文件的表单-》点击后文件就传送到后台-》后台用smartupload组件接收文件-》创建一个存放的地方-》在通过smartupload的saveAs方法保存文件。
这是其中几行代码
第二步(导入数据):文件上传到项目之后,就取出那个文件里面的数据一行行插进数据库。可以使用jxl组件或者poi组件来实现。但jxl不兼容xlsx后缀的数据库,我选用的是poi组件。
具体步骤是:使用Workbook(工作薄类)对文件操作-》工作薄操作sheet(工作表类)一个excel文件可以有多个工作表-》工作表类再对每行每列的数据取出(实际上都是循环的步骤)-》拿一行数据就放到一个对象-》然后就可以一行行操进数据。
这是其中几行代码
实现方式:
我所使用的环境是eclipse,技术:jsp+servlet+poi+mysql。选用servlet的原因是,我觉得框架只不过外面套一层而已,实际上还是这些基础的东西。而已一上来就直接在原来的框架上写代码,会很乱,还不如花多一点点时间,先新建个简单的servlet项目弄好一个demo理清思路再整合到自己本来的项目上。
功能实现分析(重点):
就算我分析这个功能,到了别的功能,还是要自己分析,所以知道怎么实现功能,这个点很重要。也就是说,我怎么样从0到1地去实现功能,接下来就是分析。
开始时:像这个阶段,拿到一个新的功能需求,是比较难自己一行行代码敲出来的(做过除外)。
第一步:拿到一个新功能,先到网上看别人博客文章之类的,一般都附带代码
第二步:如果只看网页不是很好看懂的话,就拷贝下来,自己新建一个项目研究,有些可能写得不好或者很累赘,就多看几篇博客,我觉得放上去得基本都是博主实现过的,只不过自己看不懂觉得拷贝下来也没用。
第三步:研究代码的思路步骤,把多余的部分去掉(例如一个校验什么的,一些无关紧要的参数设置),关注主体步骤即可。
第四步:解决项目上的报错,让项目跑起来。
第五步:运行效果,不断地调参数,运行测试(这个我觉得必须步骤吧),最终达到跟自己差不多的效果。
第六步:理清思路后,加上自己喜欢需要的元素整合到自己本来的项目中。
出现的问题(重点):
我认为这个点才是重中之重。很多小伙伴其实知道要去看别人写的,也知道大概的步骤流程,但是很多时候看一篇博客就是半途而废。
问题一:
看到了别人的博客,但是一眼感觉太长太复杂了,不想看,觉得自己根本不会这个技术,应该用不上,不看了。然后接连几篇博客都是差不多(大哥,别人实现功能的博客也没有很多篇),现在估计找到有实现这个功能的了,然后就(太难了)。。。
解决一:
看过了几篇博客之后,静下心来,先把其中一篇的代码拷贝出来看尝试能不能实现,网页一般看不到什么问题,先拷贝一个工程再说,慢慢琢磨每行代码是什么意思(新技术其实很多时候就是一些插件和jar包)。
问题二:
代码是拷贝下来了,但是到了工程上全部报错。都是错误,类似于下图(随手拷贝来的),到处是红线,很多人就是现在就放弃了。然后错过了一个实现功能的机会。
解决二:
其实这些都很好解决,像第二框框的话都是一些格式问题,去除格式就好了,可以用记事本等工具(具体搜索就能搜到)。然后上面的import也是一些没导入jar包的问题,因为没jar包所以这些类,系统没找到。jar包也很好找,比如我找一个import org.apache.commons.fileupload.FileItem;。你要先知道它属于哪个包再去找(有方法可以确定),比如我知道了这个是属于commons-fileupload-1.2.2.jar,这种类型的包,版本可能不一样。那么就可以去搜索了。
像这些都是可以下载,不要觉得有毒,毒不死你的放心,毒多几次就好了,csdn那种是要积分的,而这些包包其实本来就是免费的。
问题三:
自定义类。上面的报错基本都解决了,但是还是发现有些地方是错误的,像下图的,为什么会错了,怎么找都找不到这个jar包,会不会它本来代码有问题(博客上代码有问题感觉比较少,有也是自己能改过来的),其实这种就是自定义的类,有可能是自己定义的实体类、工具类、什么类。
解决三:
很多时候,是很多时候,博主都不会提供完整的代码。有个类没提供就抓破头了,其实这种也可以推敲一下。一般是实体类,看着上图,89、90行只有两个属性。它没提供,自己弄一个就好了,反正就是测试而已。现在知道有哪些属性,创建一个类不难吧,假如你担心还有没有其他属性,还不如先把类建起来再说,看到就是有,没看到就是没有。
问题四:
这是你们最常见的问题吧,控制台报错。不过我觉得这种挺好解决的。
解决四:
直接把第一行复制过去搜索。就有很多回复。这都是比较一般方法,就不说多了,还有就是看下面的一些文件,找下有没有自己写的文件,点过去跟踪看看。
坑:
坑一:有时候jar包版本不一致会错误。意思就是连续几个jar包版本要一样才能用。
坑二:自己坑自己,不要有错误就搜索,自己多分析,先分析再搜索,多看英文是什么意思可能就已经猜错错误了
技巧:
技巧一:多用输出语句,输出变量,自己分析是否这个值为空什么的,我认为能加上前面的技能能解决90%的问题。
技巧二:多思考,不要只做代码搬运(虽然现在搬运也不一定就搬成功),理清它的思路之后,想想他的某个地方能不能优化,同样的功能,自己优化得简洁些。
技巧三:有注意到,我用的字眼是搜索而不是百度吗,搜索引擎不只有百度,谷歌、搜狗、360,也可以,我有时候用手机搜都能搜到不一样结果,多尝试几个搜索引擎。
总结:
最开头只是其中一个例子,重点是实现的方法思路。实现同样功能的插件有很多。实现过程也可能稍微不同,整体方法都是差不多。多思考,重方法。实现方式多种多样,知道了大概的流程方法就能千变万化