javaweb如何从0到1实现一个功能(例:导入Excel表)

我觉得初学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,也可以,我有时候用手机搜都能搜到不一样结果,多尝试几个搜索引擎。

 

总结:

    最开头只是其中一个例子,重点是实现的方法思路。实现同样功能的插件有很多。实现过程也可能稍微不同,整体方法都是差不多。多思考,重方法。实现方式多种多样,知道了大概的流程方法就能千变万化

 

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值