struts开发经验汇总

  笔者接触struts2之时,对于web开发甚至还没有概念,仅有的知识是如何利用HTML、CSS和简单的JS进行静态网页的编写。对于开发一个网站所必需的后台、数据库基本没有了解。

  因此这篇博文,可以说不单单是笔者利用struts2框架进行web开发的经验汇总,也是对目前为止web开发的一个简单梳理。

  作为一名初学者,在没有系统学习计算机网络以及任何web实战经验的前提下,不断搜索成为了开发过程中至关重要的一环。因此本文在陈诉经验与学习脉络的基础之上,将罗列出一篇篇对我有帮助的文章,将基于struts2的web开发中遇到的一系列细节问题加以重现,希望为struts2以及web开发的初学者提供一定的借鉴。


一、web开发基本流程

  我的理解中,基于struts2的web开发其实和它的运作机理相同,也十分很简单:

  前端(网页)--------(接收用户的输入)-------->

  后台(java写的action类)----(响应用户在网页中做出的输入,将必要的数据存储到数据库中)---->

  数据库(通常以MySql数据库中的表的形式存在)------(返回响应所需的数据)-------------->

  后台(与前一个java写的action类是同一个)---(处理从数据库中返回的数据,加工后送到前端网页,显示给用户)----->

  前端(可能是同一个网页,也可能是不同的,显示的内容与用户之前的输入有关)。

  以上的语言都比较好理解,大概只有后台里面的“java写的action类”令人费解。所谓action类,是struts2框架中处理前端网页和数据库的“大脑”,也是我们的网站能够处理一系列业务的核心。通常一个网站会有不同的action类来处理不同的请求/业务。它的主要功能是对接收并处理加工(通常要将新的数据存储到数据库中)来自前端网页的数据(用户的请求、输入的数据等待),并访问数据库,取出所需的数据,根据业务需求,返回前端网页展示所需要的数据。之所以叫做action类,其一,它是由java代码写成的一个class,其二,其作用在于take action according to request from front end and respond with data in database.(希望这段中英文夹杂不会让人感到难堪...)

  没错,即使是肤浅的大白话,相信你很有可能一个字也看不下去,但是对于像我之前一样的菜鸟来说,基本的概念却必须提前建立起来,脑子里有了这么个框架,以后再往里面填东西就简单得多。(其实struts2本身也是这么一个填坑的过程)


二、MVC模型

  在之前介绍的网页开发流程中,其实我已经不自觉地把web框架构成分成了三部分:前端、后台和数据库,并将他们与实体联系在一起:网页、java代码和数据库数据。

  这背后事实上蕴含着这样一个广为人知的MVC模型,M--Model--Java对象,V--View--网页--HTML/CSS/Javascript,C--Control--Java控制类。

  网上有很多关于MVC模型的介绍与入门教程,请读者自行搜索、阅读相关内容,想必定会加深读者对web开发流程的认识,形成初步的印象。

  相关链接:

  从MVC框架看MVC架构的设计 – 码农网  www.codeceo.com/article/mvc-framework-mvc-design.html

  Servlet和JSP开发入门教程 | 天码营 - 新一代技术学习服务平台  https://course.tianmaying.com/servlet-and-jsp


三、前端入门

  前端在第一部分中,我们将其对应为网页;在第二部分MVC模型中,对应着View部分。顾名思义,即用户通过浏览器所见的网页及其内容,便是前端。

  学习前端,我们需要掌握HTML、CSS和Javascript三大神器。

  通俗来说,HTML告诉浏览器显示什么内容,以怎样的格式(比如大小、位置等等)显示。因此HTML中包含着需要显示的文本以及为了标记文本格式的标签。除了文本,HTML还可以通过一系列标签引入图像、视频、音频甚至画图板等诸多功能。

  更详细的介绍,请通过w3s网站学习。该网站覆盖了web开发的整套学习材料,是广为推崇的web学习网站。

  w3s    http://www.w3school.com.cn/

  HTML 系列教程  www.w3school.com.cn/h.asp

  

  虽然HTML能够指定文本的大小和位置,但功能十分有限。CSS则对HTML中的元素施加魔法,使之能够呈现出更多的样式,以更好的效果展现在用户面前。

  CSS教程  http://www.w3school.com.cn/css/index.asp

  如果你的网页是一成不变的,那么HTML和CSS足以做出令人惊艳的网页。但是一个静态的、难以响应用户输入的网页功能就大打折扣了。Javascript能操纵HTML和CSS,改变它们的展现方式,达到动态效果。

  Javascript教程  http://www.w3school.com.cn/js/index.asp


四、Java入门

  Java是广为使用的面向对象的编程语言,具有多平台的可移植性,附有齐全的库,也是struts框架中的后台语言。

  struts框架中使用的java代码并无特殊要求,故在此不对Java做特别介绍,如果读者对Java语言不了解,请自行搜索相关资料阅读。在此推荐一个简明的Java入门教程,有过编程经验的读者应该能够在两三天的时间掌握基本的Java编程要求。

  

  Java入门教程  https://course.tianmaying.com/java-basic


五、开始你的struts2 Hello World

  接触一个新的框架/软件,配置问题往往既麻烦,又耗时,有时需要反复试验才能成功。如何在网页上显示一个HelloWorld呢?以下两篇文章可能会对你有所帮助。(如果遇到问题,请不要着急,stackoverflow、csdn以及分布各处的热心网友会答疑解难的,用好搜索引擎是成功的快捷通道)

  

  为Struts 2.0做好准备 - Max On Java - BlogJava  www.blogjava.net/max/archive/2006/10/10/74353.html

  搭建一个简单的struts2.0的web工程 - joy_zhao988的专栏 - 博客频道 - CSDN.NET  blog.csdn.net/joy_zhao988/article/details/8684283


六、实现一个struts2 CRUD

  所谓CRUD,是Create、Remove、Update、Delete 4个英文单词的缩写,这代表着我们的网站不再只是一个能够显示Hello World的静态网站了,而必须能够根据用户的操作,在网页上反应出对应的结果。

  CRUD操作的对象是数据库里面的数据,因此我们的网站必须能够连接到数据库。CRUD指令是用户在前端网页发出的请求,因此我们的后台java程序将发挥用处,一个个action类将根据用户输入的数据,访问数据库取出数据,经过处理后将结果重新存到数据库里,并返回我们希望用户看到的结果。

  笔者的另一篇博客记录了如何实现一个具有CRUD功能的图书管理系统,内附有大量的配置与代码截图,希望能够对读者有所帮助。

  

  struts2 CRUD 入门 配置 - zhangnf - 博客园  http://www.cnblogs.com/zhangnf/p/struts2.html

  

  与之前的Hello World相比,大量的技术细节问题将逐渐暴露出来。笔者认为,最关键的问题是前端页面与后台java类的数据传递。再次附上链接:

  struts2中action接收参数的方法 - 大陶陶 - 博客园  www.cnblogs.com/bukudekong/archive/2012/03/29/2423064.html

  struts2从action向jsp传参数 - saobchj - 博客园  www.cnblogs.com/saobchj/archive/2012/05/09/2491641.html

  其次便是jsp的如何有效显示数据。对jsp以及struts2背后的servlet的深入了解,可以参考以下教程:

  

  Servlet和JSP开发入门教程 | 天码营 - 新一代技术学习服务平台  https://course.tianmaying.com/servlet-and-jsp

  

  这篇文章也提供了jsp显示数据的有用信息:

  

  Struts2 数据标签(四)s:param标签的三种赋值方法 - - ITeye技术网站  wl-ldy.iteye.com/blog/860169

  当然,还会有很多的技术问题出现,请各位读者用好手边的书和手上的搜索引擎,自力更生,丰衣足食。


七、struts进阶——拦截器

  有人说拦截器是struts2框架的核心,不假。拦截器提供了在前端页面与后台action类之间施加额外操作的重要手段。一个最典型的例子便是非法登陆浏览页面检测:

  防止未登录用户操作—struts2拦截器简单实现 - - 博客频道 - CSDN.NET  blog.csdn.net/zhutulang/article/details/38351629

  有关struts2拦截器的相关知识覆盖了struts2的整套工作原理,感兴趣的读者可以自行查阅资料学习。


八、web进阶

  想要做好一个网站,自然可以从web运作流程中的每个环节都加以考虑。比如,一个十分赏心悦目的前端,定会更加吸引别人的眼球。bootstrap便是一个十分优秀的前端框架,为前端开发者提供了许多有用的布局、组件、插件支持。使用bootstrap作为前端框架,可以实现现代化的网站布局,效果十分美观。

  bootstrap中文文档  http://v3.bootcss.com/

  如何高效实现一个动态响应的网站呢?jQuery是Javascript的封装,被誉为写的更少,做的更多的Javascript。值得一提的是,jQuery中还封装了ajax,可以实现在不刷新网页的前提下执行后台action类操作,并更新网页内容的强大功能。jQuery的编写十分容易上手,且功能强大,强烈推荐学习。

  jQuery教程  http://www.w3school.com.cn/jquery/

  利用JQuery实现Struts2的Ajax功能 - 编程记录 - 博客频道 - CSDN.NET  blog.csdn.net/yongh701/article/details/44279635


九、小结

  近三个月的学习,我从web小白一步步变成中白,期间推动我不断学习的动力,正是来自于网上流传各处的丰富的前人经验。出于此,我才有了将自己学习经验发表出来的想法。所以在此,向我文中引用到的各位作者表示感谢。

  在此附上小组web开发的github项目,与各位读者共勉。

  https://github.com/py100/project-staples

时间: 2024-10-16 18:48:47

struts开发经验汇总的相关文章

iOS 音频开发经验汇总

一.音乐播放类概念 iOS 下能支持歌曲和声音播放的的类有几个: SystemSound AVFoundtion库中的AVAudioPlayer #重要 MediMPMusicPlayerController 常用音频控件 3. MPMediaPickerController 本地音乐库选择器 5. MPVolumeView 播放进度条 这里有一个PPT在解释几种概念: https://ccrma.stanford.edu/~jsanchez/NSSpain.pdf 这教程中同时用不同机制播放例

python网页抓取练手代码

from urllib import request import html.parser class zhuaqu(html.parser.HTMLParser): blogHtml = "" data = [] flag = 0 def getHtml(self): res = request.urlopen("http://www.cnblogs.com") self.blogHtml = res.read().decode('utf-8') def hand

TSH框架整合

Tapestry+Spring+Hibernate整合工作小结 Cyberwing FrankSoo是我的项目经理.前段时间公司决定作个新的J2EE二次开发平台,以替换公司原有的开发平台.公司让FrankSoo和我组成平台开发项目组,FrankSoo担任项目经理.现在这个平台整合开发阶段已经结束,进入项目应用阶段.下面是我们的整合工作小结,介绍一下我们在工作中遇到的问题,以及我们选择的解决方案. 1.架构的选择 首先,我们都同意以我们现有的能力,没有足够的时间和资源自行开发一套完整的平台.在已有

Struts学习之流程汇总

struts2 架构图如下图所示: 依照上图,我们可以看出一个请求在struts的处理大概有如下步骤: 1.客户端初始化一个指向Servlet容器(例如Tomcat)的请求: 2.这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin): 3.接着StrutsPrepareAndExecuteFilter被调用,StrutsPrepareAn

ASP.NET MVC4入门到精通系列目录汇总(转)

序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,Web开发依旧停留在拖控件的水平,最最基本的算 法,递归.排序(我不要求快速排序,你会冒泡就行了)都不会,数据库方面,很基础的SQL都写不出,分组过滤也不会,更别提性能了,问下数据优化经验,除 了回答加索引基本就没下文了.当然,一些过去N年都是做ASP.NET WebForm开发的,不熟悉MVC,那也没

【IOS】Mac和IOS开发资源汇总

本文主要汇集一些苹果开发的资源,会经常更新,建议大家把这篇文章单独收藏(在浏览器中按**command+D**). 今天收录了许多中文网站和博客.大家一定要去感受一下哦. 如果大家有知道不错的站点,可以告诉我.  目录 1.苹果官方文档 2.邮件列表 3.论坛 4.网站 5.博客 6.大会 7.播客和录像 正文 1.苹果官方文档 构建iOS程序:下面的这篇文章介绍了 iOS 程序开发的过程: Start Developing iOS Apps Today 构建Mac OS X程序:下面这篇文章介

java项目开发经验总结,值得收藏!绝对有用!

Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1.掌握项目开发的基本步骤2.具备极强的面向对象的分析与设计技巧3.掌握用例驱动.以架构为核心的主流开发方法 没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法! 关于基

158个JAVA免豆精品资料汇总

附件完整版下载地址: http://down.51cto.com/data/431561 附件部分预览~ java中国移动收费系统[源代码] http://down.51cto.com/data/70784 java开发必备的日志文件开发包[工具] http://down.51cto.com/data/135698 JS代码自动排版工具 http://down.51cto.com/data/55013 <疯狂Ajax讲义>作者李刚 http://down.51cto.com/data/1317

目前见到的最傻瓜全面的STRUTS入门教程^_^

目前见到的最傻瓜全面的STRUTS入门教程^_^ 一  Jakarta Struts学习之新手上路 Web 应用开发早期曾经是那么的“简单”,那个时候还只是纯HTML页面和浏览器特效而已.由于还涉及不到动态数据操作和商业应用,也就省去了很多麻烦.但是这 样的“简单”只是过眼云烟,如今我们不得不为复杂的基于Web的商业应用开发采用诸多技术. 本文将介绍如何利用Struts进行应用开发的前台整合的开发过程.Struts是一个为开发基于模型(Model)-视图(View)-控制器 (Controlle