Struts2、Spring MVC、Webx对比

一、struts2简单样例

步骤1:filter拦截请求,为了防止对初始页面拦截,使用/*.action,而不是/*

步骤2:Action处理,可以继承自xwork2的ActionSupport类;也可以不继承,但必须有public String execute() throws Exception方法

步骤3:在classpath下面(src/main/java或者src/main/resources),配置struts.xml

步骤4:在页面提交表单给action处理(‘/’代表从根webapp开始找,否则代表从当前页面所在目录下找),其中.action是从struts.properties中继承而来的(struts.action.extension=action,,)

步骤5:取得属性

username:${param.username}

【注意】EL表达式在Servlet2.5中默认禁用,需要开启:

【注意】

(1)获取从ActionContext中获取session,而不需要直接使用HttpServletRequest和HttpServletResponse。

二、Spring MVC使用样例

步骤1:添加Spring的相关依赖

步骤2:在web.xml中配置spring mvc的入口

也可以指定spring servlet拦截之后,Spring mvc的配置文件

【注意】

1、在src源下面的文件,都将被映射到/WEB-INF/classes/下面,可以使用通配符。

2、让容器启动的时候就加载配置文件

步骤3:如果没有指定spring mvc的映射文件名称,默认使用:在WEB-INF目录下的*-servlet.xml文件,其中*为web.xml中配置的servlet-name。本例为:springmvc,则寻找的配置文件为:springmvc-servlet.xml,里面的配置如下:

解释:如果start.test访问,则使用com.alibaba.spring.LoginSpringAction进行处理。

处于jsp页面隐藏的考虑,放在/WEB-INF目录下,按照跳转要求,则找决定的。前缀和后缀是在*-servlet.xml中指定的,本例为springmvc-servlet.xml。

【注意】如果需要使用注解annotation的方式,在需要引入context和mvc命名空间,具体如下:

步骤4:LoginSpringAction.java文件

【注意】使用annotation方式,可以避免耦合方式,也方便单元测试

setp 1:为controller的类添加注解:@Controller

setp2:为方法添加@RequestMapping

在类级别定义:@RequestMapping("/test"),该类的根级别,可选

在方法上定义:@RequestMapping("/start"),相对与类级别,网站空间,必选,访问方式:/test/start.do

setp3:在spring servlet配置文件中添加扫描功能,使annotation产生作用

<!–把标记了@Controller注解的类转换为bean–>

setp4:在spring servlet中使用视图解析类,如

步骤5:启动jetty访问,url::8080/start.test, 则后台输出:Controller is working

补充:制作一个index.jsp页面开始运转

访问::8080/index.jsp

【补充】

(1)对于不需要的controller的login.jsp页面,香港虚拟主机,可以使用spring自带的org.springframework.web.servlet.mvc.ParameterizableViewController,而不需要自己再写controller的实现。具体配置如下:

它会根据策略寻找到/WEB-INF/jsp/login.jsp

(2)如果login.test直接找login.jsp,即login是一致的,不需要改变,网站空间,则可以更加省略,直接写为:

三、Webx MVC(以webx3为基础)

1、webx3的入口点

webx.xml:每个webx应用,都需要有一个webx.xml配置文件。这个文件定义了Webx所用到的所有services的配置。

pipeline.xml:即管道,它是由一个或多个“阀门Valve”构成的。可以看做webx框架的总控文件。

log4j.xml:日志系统配置文件。对于程序的排错至关重要。

在乎的应该是沿途的风景以及看风景的心情。

Struts2、Spring MVC、Webx对比

相关文章:

你感兴趣的文章:

标签云: