• Struts学习之HelloWord


    1、Struts环境配置

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


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


    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是如何实现那些联系的细节的呢?这些留到下次我们继续讲解。

  • 相关阅读:
    感知机预测NBA总冠军
    java 一维数组
    2020-11-25
    2020-11-24学习日记
    Java语言概述
    人脸情绪识别系统---测试心得
    结对编程,问题不大
    结对编程之队友代码赏析
    项目测试心得——基于微信的图书销售小程序
    数据库设计心得
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3067659.html
Copyright © 2020-2023  润新知