(2)对比struts
a。核心控制器:spring mvc核心控制器是Servlet,而Struts2是Filter。
b。控制器实例:Spring Mvc会比Struts快一些。Spring Mvc是基于方法设计,而Sturts是基于对象,每次发一次请求都会实例一个action,每个action都会被注入属性,而Spring更像Servlet一样,只有一个实例,每次请求执行对应的方法即可。
c。管理方式:大部分的公司的核心架构中,就会使用到spring,而spring mvc又是spring中的一个模块,所以spring对于spring mvc的控制器管理更加简单方便,而且提供了全注解方式进行管理,各种功能的注解都比较全面,使用简单,而struts需要采用XML很多的配置参数来管理。
d。参数传递:Struts2中自身提供多种参数接受,其实都是通过(ValueStack)进行传递和赋值,而SpringMvc是通过方法的参数进行接收。
e。intercepter的实现机制:struts有以自己的interceptor机制,spring mvc用的是独立的AOP方式。这样导致struts的配置文件量还是比spring mvc大,虽然struts的配置能继承,所以我觉得论使用上来讲,spring mvc使用更加简洁,开发效率Spring MVC比struts2高。
f。spring mvc处理ajax请求,直接通过返回数据,方法中使用注解@ResponseBody,spring mvc自动帮我们对象转换为JSON数据。
2。Freemarker
(1)FreeMarker是一款模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
(2)对比jsp
a。内置大量常用功能。比如:html过滤,日期金额格式化等等,使用非常方便。
b。宏定义比jsp方便。
c。支持jsp标签
d。可以实现严格的MAC分离
e。在复杂页面上,freemarker的性能最好
2。5 系统实现功能的具体描述
1。对于“新浪微博”:
(1)经过多方搜索发现新浪微博wap版存在权限bug,利用此bug可以在不登录的情况下搜索获取微博内容并获取该微博对应评论,从而避免了PC端的获取限制及API的申请困难等问题。
(2)方法:本系统使用Apache HttpClient模拟http请求,在抓取微博时直接发送请求到官方存在bug的请求地址获取所需数据并对数据进行格式的解析,构造系统所需内容(默认获取前10页微博,每条微博的前10页评论)。
(3)具体解析规则:
1。默认获取到第一页内容为html+数据,该html内容是没有任何意义的,要做的是从 html中获取到所 需的数据字符串,这里利用正则表达式来匹配抓取数据;
2。从第二页开始请求直接返回所需的json字符串格式数据
3。利用alibaba fastjson将数据转成json格式后获取所需字段值
4。同理,获取评论请求地址数据并解析
5。随后将解析的数据存储到数据库中,微博内容存入:article表,回复信息存入:article_reply表
2。对于“天涯论坛”:
因为天涯论坛不限制登录访问,所以抓取天涯论坛的数据相对简单,以下对天涯论坛的抓取进行简要描述:
1。httpClient 访问所需抓取关键字的网页,获取网页对应的html文献综述
2。使用jsoup对html进行解析,选择系统所需数据的节点进行数据获取
3。将解析的数据存储到数据库的表:论坛内容存入:article表,回复信息存入:article_reply表
2。6 可行性分析
可行性分析是通过对项目的主要内容和配套条件,对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。可行性分析应具有预见性、公正性、可靠性、科学性的特点。