简单明了的提及一下两者的主要区别:
SpringMVC:
<form action="register.do" method="post">
<label>姓名</label><input type = "text" name = "name"><br>
<label>密码</label><input type = "password" name = "password"><br>
<input type = "submit" value = "注册"><br>
已注册,请<a href = "inLogin.do">登录</a>
</form>
@RequestMapping("register")
public String register(Model model,String name,String password,HttpSession session) throws Exception {
User user = userService.register(name, password);
if (user == null) {
throw new CustomException("注册失败");
}
session.setAttribute("USER_IN_SESSION", user);
return "login";
}
Struts:
<form action="user/user_login" method="post">
请输入手机号<input type="text" name="user.phone"><br>
请输入密码<input type="password" name="user.password"><br>
<input type="submit" value="点击登录">
</form>
<package name="user" extends="struts-default" namespace="/user" strict-method-invocation="false">
<action name="user_*" class="com.jiangnan.Struts.StrutsLoginAndRegister" method="{1}">
<result name="login">/login.jsp</result>
<result name="register">/login.jsp</result>
<result name="success">/success.jsp</result>
<result name="message">/message.jsp</result>
</action>
</package>
分析:
如上所示,分别为SpringMVC和Struts的两种处理请求的方法,他们两者的共同之处都是处理请求,只不过处理的方式不同而已。MVC通过注解的方式在Controller里面处理参数,并且参数的传递是直接注入到方法中的,是方法所独有的,接着通过Model传递给页面;而Struts则是通过配置文件来处理请求,通过类属性来封装数据,在接收参数时,可以通过属性接收,表明属性参数是让多个方法共享的。安全性来讲,SpringMVC更为谨慎,而Struts更加符合oop编程思想。