Struts学习之HelloWord

1、Struts环境配置

1)由于Struts是分离表现层和控制层的一个Java Web 框架 ,所以第一步创建项目一个Web Project 

Struts学习之HelloWord


2)拷贝Struts的相关jar包到/WEB-INF/lib文件夹下,这样就可以在Referenced Libraries 下看到相关的引用

Struts学习之HelloWord


2、Struts环境配置完成之后,Struts项目并不能工作,还需要一些配置工作。我们都知道Struts是分离的表现层和控制层的MVC框架,那么分离之后,运行时,它又是如何做到将表现层和控制层联系起来的呢?接下来的操作就会告诉你。
1)创建表现层文件login.jsp 文件代码如下:

		<%@ page language="java" contentType="text/html; charset=GB18030"

		    pageEncoding="GB18030"%>

		<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

		<html>

		<head>

		<meta http-equiv="Content-Type" content="text/html; charset=GB18030">

		<title>Insert title here</title>

		</head>

		<body>

			<form method="post" action="login.do">	 

				<input type="submit" id="btnLogin" value="测试Struts"/>

			</form>

		</body>

		</html>

创建表现层文件login_success.jsp 文件代码如下:

		<%@ page language="java" contentType="text/html; charset=GB18030"

		    pageEncoding="GB18030"%>

		<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

		<html>

		<head>

		<meta http-equiv="Content-Type" content="text/html; charset=GB18030">

		<title>Insert title here</title>

		</head>

		<body>

			测试成功!

		</body>

		</html>

2 ) 配置web.xml文件 web.xml文件配置如下:

 

		<?xml version="1.0" encoding="UTF-8"?>

		<web-app version="2.4" 

			xmlns="http://java.sun.com/xml/ns/j2ee" 

			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

			xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 

			http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

			

			<servlet>

				<servlet-name>Action</servlet-name>

				<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

		 		<init-param>

					<param-name>config</param-name>

					<param-value>/WEB-INF/struts-config.xml</param-value>

			    </init-param>

	  		<load-on-startup>2</load-on-startup>

			</servlet>

			

			<servlet-mapping>

				<servlet-name>Action</servlet-name>

				<url-pattern>*.do</url-pattern>

			</servlet-mapping>  

		

		</web-app>

 

这样配置之后通过Serlvet就将表现层(*.do)的与Struts框架(ActionServlet)相连。

3)创建控制层文件LoginAction.java 该文件代码如下:

 

		import org.apache.struts.action.ActionForm;

		

		public class LoginForm extends ActionForm  {

			private String userName;

		

			public String getUserName() {

				return userName;

			}

		

			public void setUserName(String userName) {

				this.userName = userName;

			}

			

		}

4)创建struts-config.xml文件,配置struts-config.xml文件如下:

 

		<?xml version="1.0" encoding="ISO-8859-1" ?>

		

		<!DOCTYPE struts-config PUBLIC

		          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"

		          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

		

		<struts-config>	 

			

			<action-mappings>

				<action path="/login" 

						type="com.control.LoginAction"				

						scope="request"		

						>

					<forward name="success" path="/login_success.jsp" /> 	

				</action>

			</action-mappings>

			

		</struts-config>

配置struts-config.xml文件之后,就可以将Struts框架与控制层进行联系。这是因为Struts框架(ActionServlet)加载之后,会对struts-config.xml进行一系列的处理,这些处理都是Struts框架内部进行的,这里我们不做详细解释。

 


3、到目前为止,一个简单的Struts实例已经完成,但是MVC中的model层我们并没有体现与Struts的联系。接下来我们继续完善上述实例,将模型层与Struts框架关联

1)首先我们创建LoginForm.java文件,文件代码如下

 

		import org.apache.struts.action.ActionForm;

		

		public class LoginForm extends ActionForm  {

			private String userName;

		

			public String getUserName() {

				return userName;

			}

		

			public void setUserName(String userName) {

				this.userName = userName;

			}

			

		}

2)修改之前的login.jsp文件,修改后文件如下

 

		<%@ page language="java" contentType="text/html; charset=GB18030"

		    pageEncoding="GB18030"%>

		<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

		<html>

		<head>

		<meta http-equiv="Content-Type" content="text/html; charset=GB18030">

		<title>Insert title here</title>

		</head>

		<body>

			<form method="post" action="login.do">

			姓名:<input type="text" name="userName"/><br/>

			<input type="submit" id="btnLogin"/>

			</form>

		</body>

		</html>

3) 修改struts-config.xml文件,配置struts-config.xml文件如下:

 

		<?xml version="1.0" encoding="ISO-8859-1" ?>

		

		<!DOCTYPE struts-config PUBLIC

		          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"

		          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

		

		<struts-config>	

			<form-beans>

				<form-bean name="loginForm" type="com.model.LoginForm"/>

			</form-beans>

			

			<action-mappings>

				<action path="/login" 

						name="loginForm"

						type="com.control.LoginAction"				

						scope="request"		

						>

					<forward name="success" path="/login_success.jsp" />

					<forward name="error" path="/login_error.jsp"/>		

				</action>

			</action-mappings>

		</struts-config>

4)修改LoginAction.java 该文件代码如下

 

		import javax.servlet.http.HttpServletRequest;

		import javax.servlet.http.HttpServletResponse;

		

		import org.apache.struts.action.Action;

		import org.apache.struts.action.ActionForm;

		import org.apache.struts.action.ActionForward;

		import org.apache.struts.action.ActionMapping;

		

		import com.model.LoginForm;

		

		public class LoginAction extends Action {

		

			@Override

			public ActionForward execute(ActionMapping mapping, ActionForm form,

					HttpServletRequest request, HttpServletResponse response)

					throws Exception {

				

				LoginForm laf = (LoginForm)form;

			 	String username =laf.getUserName();

				System.out.println(username);		

				String forward="error";

				

				if("admin".equals(username)){

					forward="success";

				} 

				

				return mapping.findForward(forward);

			}

		}


完成之后,我们就通过struts-config.xml文件将模型层(LoginForm)与控制层(LoginAction)联系了起来,至于如何联系模型层与表现层,我们只需要知道模型层中getUserName()和setUserName()表现层中userName保持对应即可将其联系起来,具体实现这就交给了Struts框架完成,这里我们不错解释。

 


到此为止,我们已经将Struts如何应用介绍完毕,相信你也对Struts使用有了一定的了解。但你可能还有许多疑问,Struts是如何实现那些联系的细节的呢?这些留到下次我们继续讲解。

你可能感兴趣的:(struts)