2001年7月,Struts1.0,正式发布。该项目也成为了Apache Jakarta的子项目之一 。Struts 本质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑。
6、MVC的应用实例:
一个MVC模式的数据传递的过程,从JSP页面输入一个字符,然后提交给Servlet,由Servlet调用JavaBean处理后,然后再把页面定向到另一个JSP页面,然后用session和request两种方式实现显示。
由JSP所实现的录入页为Login.htm,显示页分别为RequestTest.jsp和SessionTest.jsp;
Servlet为TestServlet.class,JavaBean为TestBean.class。
(1)Login.htm 代码如下
<body bgcolor="#FFFFFF">
<FORM METHOD="post" ACTION="/TestServlet">
<INPUT TYPE="text" NAME="testStr">
<INPUT TYPE="submit">
</FORM>
</body>
(2)TestServlet.java Sevlet的代码
package mvcExamples;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
public class TestServlet extends HttpServlet
{
static final private String CONTENT_TYPE = "text/html; charset=GBK";
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void destroy()
{
}
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
}
protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
TestBean testbean = new TestBean (); //对JavaBean进行实例化
HttpSession session = request.getSession(); //获得session对象
String testStr = request.getParameter("testStr"); //获得从录入页为Login.htm所传递来的参数
testbean.setTestStr (testStr); //向JavaBean传递参数
String targetURL = "/RequestTest.jsp"; //定义目标页面URL
session.setAttribute("sessionbean",testbean); //向session中存储JavaBean以便在另一页中获得它
request.setAttribute("requestbean",testbean); //向request中存储JavaBean以便在另一页中获得它
this.dispatch(targetURL, request, response); //转移到目标页面
}
public void dispatch(String targetURI,HttpServletRequest request,HttpServletResponse response) throws java.io.IOException,
ServletException
{
RequestDispatcher dispatch = getServletContext().getRequestDispatcher(targetURI);
dispatch.forward(request, response);
}
}