zoukankan      html  css  js  c++  java
  • 分步学习Struts(二) HelloWord

             “Hello World”是我们了解一个语言、框架,做一个简单实例的入门程序,这次我们就通过一个简单的Struts的“Hello World”来简单了解一下Struts的使用。

    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 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 {
    				
    				LoginActionForm laf=new LoginActionForm();
    				laf.setUsername(request.getParameter("username"));
    				laf.setPassword(request.getParameter("password"));
    
    				String username =laf.getUserName();
    				System.out.println(username);		
    				String forward="error";
    				
    				if("admin".equals(username)){
    					forward="success";
    				} 
    				
    				return mapping.findForward(forward);
    			}
    		}

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

  • 相关阅读:
    HDU 1874 畅通工程续(dijkstra)
    HDU 2112 HDU Today (map函数,dijkstra最短路径)
    HDU 2680 Choose the best route(dijkstra)
    HDU 2066 一个人的旅行(最短路径,dijkstra)
    关于测评机,编译器,我有些话想说
    测评机的优化问题 时间控制
    CF Round410 D. Mike and distribution
    数字三角形2 (取模)
    CF Round410 C. Mike and gcd problem
    CF Round 423 D. High Load 星图(最优最简构建)
  • 原文地址:https://www.cnblogs.com/zs234/p/3233357.html
Copyright © 2011-2022 走看看