你说:
最近尝试单纯使用Servlet来做Control,实现MVC。
由于之前都是直接使用Struts来做MVC,能够很好的避免Control过多问题,但是换成Servlet,始终没有找到好的解决方法但请你注意,在struts 中ActionServlet就是一个Servlet,来做Control的
在一般的jsp+sevlet项目中,servlet就是做control。如果单纯使用Servlet实现MVC,要分情况考虑了:要是业务逻辑比较简单,使用Servlet实现比较好(但注意不一定就是MVC框架);要是业务逻辑比较复杂,要是使用servlet而不使用映射机制控制就比较繁琐了,
你要把所有的流程都要想到,这样你就会发现做的好累的。
所以总结起来就是:没有必要非要使用Servlet来实现MVC(这里先不讨论能不能实现和实现后效率问题)
重要的是拿到一个东西,你能很好的判断使用什么来解决他就是很高的境界了!不过楼主有这个思路已经很不错了
最近尝试单纯使用Servlet来做Control,实现MVC。
由于之前都是直接使用Struts来做MVC,能够很好的避免Control过多问题,但是换成Servlet,始终没有找到好的解决方法但请你注意,在struts 中ActionServlet就是一个Servlet,来做Control的
在一般的jsp+sevlet项目中,servlet就是做control。如果单纯使用Servlet实现MVC,要分情况考虑了:要是业务逻辑比较简单,使用Servlet实现比较好(但注意不一定就是MVC框架);要是业务逻辑比较复杂,要是使用servlet而不使用映射机制控制就比较繁琐了,
你要把所有的流程都要想到,这样你就会发现做的好累的。
所以总结起来就是:没有必要非要使用Servlet来实现MVC(这里先不讨论能不能实现和实现后效率问题)
重要的是拿到一个东西,你能很好的判断使用什么来解决他就是很高的境界了!不过楼主有这个思路已经很不错了
解决方案 »
- EXTJS主细表功能不知用哪些控件结合使用
- hibernate一对多的问题
- 排班问题
- 请问WORD里头的那个简体中文与繁体中文的互转用java代码怎么实现?
- tomcat多用户并发访问时request中无法得到Attribute
- help : JAVA 访问 MYSQL 中文乱码问题
- struts-config的message-resources问题(快疯掉了)
- 大侠帮忙啊,数据库查询报错
- apache soap中的COMProvider.dll需要怎么部署啊?
- 黑马旅游网的问题!!! 表单异步提交没有反应,header里面数据没有绑定!!!怎么办?
- 用struts的tiles写了一个应用 高手给指点一下怎么解决!!!
- struts2如何用客户端的js验证表单,如何改变错误信息提示的样式?
我想这也是MVC框架之所以如此受欢迎的原因吧。 楼上的说的很好,任何MVC框架都是借用Servlet的,Struts1,2,Spring都是这样。
public abstract class BaseAction extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String methodName = request.getParameter("method");
Method methods[] = this.getClass().getMethods();
for(int i=0;i<methods.length;i++){
if(methods[i].getName().equals(methodName)){
System.out.println("methodName-->"+methods[i].getName()+"参数长度->"+methods[i].getParameterTypes().length);
try {
if(methods[i].getParameterTypes().length==2){
Object[] args = {request,response};
methods[i].invoke(this,args);// 调用
}else if(methods[i].getParameterTypes().length==3){
String userid = (String)request.getSession().getAttribute("userid");
Object[] args = {request,response,userid};
/**
* 这里就不做权限认证了
*/
methods[i].invoke(this,args);// 调用
}
break;
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
}
/**省略**/
}