您的位置:首页 > 编程语言 > Java开发

Struts2基础复习系列(1)

2015-11-28 21:49 218 查看

Struts2基础复习~~(1)

一、 选择Struts2还是Servlet

回答这个问题之前需要考虑的是,Servlet和struts2的优缺点

1. Servlet的优点:

a. mvc的基础,就目前来说基本市面上的mvc框架都是从Servlet的基础发展出来的。掌握Servlet你才能更好掌握其他框架。

b. Servlet将底层的api暴露出来给开发者,开发者可以很好对Servlet进行封装。同时由于api的暴露使得开发者能够看清作为控制器的作用。

c. 根据请求来响应客户端,能够很好的和其他资源进行交互。

2. Servlet的缺点:

a. 配置繁琐,如果在一个大项目中需要用到许多Servlet的话,那么会造成在web.xml中的内容过多。

b. 由于配置一个Servlet都需要在web.xml中写入配置语句,那么这样不利于分组开发的进行。

c. Servlet与Servlet的容器高度耦合,或者说Servlet对Servlet的容器有高依赖性,每个方法都要带有request和response两个参数。那么就会造成在没有服务器开启的情况下request和response是无法初始化的,那么造成无法进行单元测试。

d. 如果Servlet中具有很多方法那么就必须依赖一个传递进来的参数进行方法的选择。(doget和dopost方法中进行参数获取后再利用if语句判断选择哪个方法)

e. 如果表单有很多数据要填写,那么在servlet中势必要写很多行request.getParameter方法来进行数据的获取。虽然有BeanUtil这个框架可以适当的减轻这个问题带来的影响,但是正确的使用BeanUtil框架还是挺麻烦的。

了解了这些之后,所以才会去推崇一些mvc框架,因为可以有效的解决上面的缺点,同时还保证了优点的延续。

二、 Struts工作流程图



三、配置

1. 最基本配置:



2. 多文件配置:

可以定义多个struts.xml文件,最后在总的strtus.xml文件中用include标签将所有子文件包进来即可。

3. 常用常量配置(写在struts.properties文件中进行管理):

a. struts.il8n.encoding: 指web应用的默认编码集。对处理中文文本很有用处。设置此常量值为UTF-8后可以以有效避免中文乱码问题。默认值为UTF-8

b. struts.multipart.saveDir: 制定上传文件的临时保存路径。默认值为:javax.servlet.context.tempdir。

c. struts.multipart.maxSize: 指定文件上传中整个请求内容允许的最大字节数

d. struts.action.extension:指定处理struts2处理的请求后最,默认为action,只要符合*.action的均由struts处理。如若存在多个后缀名用“,”隔开。

e. struts.serve.static.browerCache:设置浏览器是否缓存静态内容。值为true/false

f. struts.dev.Mode:指定是否使用开发模式,将其设置为true时,在开发应用时,在应用出错时显示更多,更友好的提示,通常在开发过程中指定为true,发布时改为false。

g. struts.il8n.reload:设置是否每次HTTP 请求到达时,系统都重新加载资源文件。默认为false,通常在开发时应该设置为true有利于开发,发布后改回false

h. struts.configuration.xml.reload:当struts.xml文件改变后,系统是否自动重新加载该文件。默认值为false。

i. struts.custom.il8n.resources: 指定struts2应用所需的的国际化资源文件,如有多个,用“,”隔开。

PS:Struts2中配置常量共有3种方式,通过struts.properties,struts.xml,web.xml中配置。在struts. properties配置常量

在src目录下新建一个struts.properties



在struts.xml配置:



在web.xml



不过一般最好还是在struts.peoperties文件中写这些常量。因为还是让它们各司其职~

今天都写这么多了,我也是一边复习一边写的,但愿对各位有帮助,有问题的可以留言,有不当的地方欢迎指出,共同研究。不喜勿喷~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts mvc servlet