日期:2014-05-16  浏览次数:20365 次

一口一口吃掉Struts(一)——用JSP+Servlet演示Struts的基本原理

 

struts是开源项目。它通过采用 Java Servlet/JSP 技术,实现了基于Java EE Web应用的MVC的应用框架Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。

 

MVC即Model-View-Controller的缩写,是一种常用的设计模式(具体自己百度吧)

 

我们用JSP+Servlet实现“一个应用的增改信息”,先来看一下,如果没有Struts,我们一般都是怎么做的。

废话少说,果断上代码

 

 

V

JSP实现

<body>
<a href="Servlet/Add.action">测试增加》》》》》》》》》》</a>
<a href="Servlet/Modify.action">测试修改》》》》》》》》》》</a>
</body>


 

C

前端控制器Servlet

package Control;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class Controller extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		//截取字符串
		String requestURI=request.getRequestURI();
		String flagAction = requestURI.substring(requestURI.indexOf("/", 1), requestURI.indexOf("."));
		
		IAction action =null;
		
		//根据字符串转发相应的Action
		if("/Servlet/Add".equals(flagAction))
		{
			//TODO 采用读取配置文件,反射,这里省略,就直接NEW了
			action=new AddAction(); 
		}else if("/Servlet/Modify".equals(flagAction))
		{
			action =new ModifyAction();
		}
		
		//TODO 获取表单信息
		//TODO 将字符串转换为我们需要的格式等等,向下传递
		
		//得到转向信息
		String forwordString=action.Excute();
		
		//转发
		request.getRequestDispatcher(forwordString).forward(request, response);
		
	
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request,response);
	}

}

 

配置文件

<servlet>
		<servlet-name>Controller</servlet-name>
		<servlet-