`

猜数字---------struts

阅读更多
新建一个web项目,为其添加struts1.1特性,然后新建一个产生数字的acionform

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package ch02;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

/** 
 * MyEclipse Struts
 * Creation date: 06-25-2010
 * 
 * XDoclet definition:
 * @struts.form name="ch02.form.GuessNumberFormForm"
 */
public class CreateNumberActionForm extends ActionForm {
	 private String digits;
	    public String getDigits() {
	        return digits;
	    }

	    public void setDigits(String digits) {
	        this.digits = digits;
	    }
	
	/*
	 * Generated Methods
	 */

	/** 
	 * Method validate
	 * @param mapping
	 * @param request
	 * @return ActionErrors
	 */
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		// TODO Auto-generated method stub
		return null;
	}

	/** 
	 * Method reset
	 * @param mapping
	 * @param request
	 */
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		// TODO Auto-generated method stub
	}
}


新建一个生成数字的action类,代码如下:

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package ch02;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

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 ch02.CreateNumberActionForm;

/**
 * MyEclipse Struts Creation date: 06-25-2010
 * 
 * XDoclet definition:
 * 
 * @struts.action
 */
public class createNumberAction extends Action {
	/*
	 * Generated Methods
	 */

	/**
	 * Method execute
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		CreateNumberActionForm cform = (CreateNumberActionForm) form;
		HttpSession session = request.getSession();
		session.removeAttribute("message");
		int digits = Integer.parseInt(cform.getDigits());

		int secret_number = (int) (Math.random() * digits);

		System.out.println(secret_number);

		session.setAttribute("secret_number", String.valueOf(secret_number));

		return mapping.findForward("guess");    //全局转发或是action forward
	}
}


再建一个接收所猜数字的acitionform

* Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package ch02;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

/** 
 * MyEclipse Struts
 * Creation date: 06-25-2010
 * 
 * XDoclet definition:
 * @struts.form name="ch02.form.JudgeActionForm"
 */
public class JudgeActionForm extends ActionForm {
	/*
	 * Generated fields
	 */

	/** guess_number property */
	private String guess_number;

	/*
	 * Generated Methods
	 */

	/** 
	 * Method validate
	 * @param mapping
	 * @param request
	 * @return ActionErrors
	 */
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		// TODO Auto-generated method stub
		return null;
	}

	/** 
	 * Method reset
	 * @param mapping
	 * @param request
	 */
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		// TODO Auto-generated method stub
	}

	/** 
	 * Returns the guess_number.
	 * @return String
	 */
	public String getGuess_number() {
		return guess_number;
	}

	/** 
	 * Set the guess_number.
	 * @param guess_number The guess_number to set
	 */
	public void setGuess_number(String guess_number) {
		this.guess_number = guess_number;
	}
}


判断所猜数字的action
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package ch02;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

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 ch02.JudgeActionForm;

/** 
 * MyEclipse Struts
 * Creation date: 06-25-2010
 * 
 * XDoclet definition:
 * @struts.action
 */
public class judgeAction extends Action {
	/*
	 * Generated Methods
	 */

	/** 
	 * Method execute
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		// TODO Auto-generated method stub
		
		JudgeActionForm jForm = (JudgeActionForm) form;

        HttpSession session = request.getSession();

        int guess_number = Integer.parseInt(jForm.getGuess_number());

        int secret_number = Integer.parseInt((String)session.getAttribute("secret_number"));

        if (guess_number == secret_number){
            session.setAttribute("message","equal");
        }else if (guess_number > secret_number){
            session.setAttribute("message","bigger");
        }else{
            session.setAttribute("message","smaller");
        }
		
		
		
		return mapping.findForward("guess");     //继续返回猜数字
	}
}


这些在myeclipse里都有图形化生成工具,填入对应的名称即可生成代码类,在写入所需的逻辑代码。这样系统会自动在struts-config.xml中配置对应的action和actionform,无需自己编写配置文件
struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="createNumberActionForm" type="ch02.CreateNumberActionForm" />
    <form-bean name="judgeActionForm" type="ch02.JudgeActionForm" />

  </form-beans>

  <global-exceptions />
  <global-forwards>
           <forward name="guess" path="/guess.jsp"></forward>
           </global-forwards>
  <action-mappings >
    <action
    name="createNumberActionForm"
      path="/createNumberAction"
      scope="session"
      type="ch02.createNumberAction"
      validate="false" />
    <action
      name="judgeActionForm"
      path="/judgeAction"
      scope="session"
      type="ch02.judgeAction"
      validate="false" />

  </action-mappings>

  <message-resources parameter="ApplicationResources" />
</struts-config>


web。xml主要配置servlet,
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	
	<!-- 中心控制器ActionServlet -->
	<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>
		<init-param>
			<param-name>debug</param-name>
			<param-value>3</param-value>
		</init-param>
		<init-param>
			<param-name>detail</param-name>
			<param-value>3</param-value>
		</init-param>
		<load-on-startup>0</load-on-startup>
	</servlet>
<!-- 中心控制器ActionServlet -->
	<servlet-mapping>
		<servlet-name>action</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
<welcome-file-list>
		<welcome-file>guess.jsp</welcome-file>
	</welcome-file-list>
</web-app>


唯一的一个jsp页面guess.jsp代码如下:主要用到struts的标签库
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ page contentType="text/html; charset=GB2312" %>
<html:html>
<head>
<title>
guess.jsp
</title>
</head>
<body>
<h1><bean:message key="page"/></h1>

<html:form action="/createNumberAction.do" method="POST">
<h3><bean:message key="page.choose"/></h3>
<html:select property="digits">
  <html:option value="10">10</html:option>
  <html:option value="100">100</html:option>
  <html:option value="1000">1000</html:option>
</html:select>
<html:submit><bean:message key="page.new"/></html:submit><br>
</html:form>

<hr>

<html:form action="/judgeAction.do" method="POST">
<html:text property="guess_number" value=""/>
<html:submit><bean:message key="page.guess"/></html:submit><br>
</html:form>

<hr>

<%
     String message = null;
     message = (String)session.getAttribute("message");
     if (message != null) {
       if (message.equals("equal")){
%>
           <!-- result.equal在资源文件中定义 -->
          <h1><bean:message key="result.equal"/></h1>
<%
       }
       else if (message.equals("bigger")){
%>
          <h1><bean:message key="result.big"/></h1>
<%
       }
       else {
%>
          <h1><bean:message key="result.small"/></h1>
<%
       }
     }
%>

</body>
</html:html>


资源文件 ApplicationResources.properties
result.equal  = \u606d\u559c\u4f60\uff0c\u7b54\u5bf9\u4e86\uff01
result.small  = \u592a\u5c0f\u4e86\uff0c\u91cd\u65b0\u731c\u5427\uff01
result.big    = \u592a\u5927\u4e86\uff0c\u91cd\u65b0\u731c\u5427\uff01

page          = \u731c\u6570\u5b57\u7684\u9875\u9762
page.choose   = \u9009\u62e9\u6570\u5b57\u7684\u8303\u56f4
page.new      = \u5f00\u59cb\u4e00\u6b21\u65b0\u7684\u731c\u6570
page.guess    = \u731c\u731c\u770b

部署到tomcat上,或直接拷贝项目至webapps启动tomcat,输入网址http://localhost:8080/项目名称,即可访问
分享到:
评论

相关推荐

    猜数字的struts web例子

    4. **Struts配置文件**:在项目的`struts-config.xml`文件中,我们需要定义Action和ActionForm之间的映射,以及Action如何响应特定的HTTP请求。例如,为猜数字的Action创建一个配置项,指定其处理的请求URL,以及...

    第二章 猜数字小游戏 S02.pdf

    【标题】: 使用JBuilder2005与Struts实现猜数字小游戏 【描述】: 本章节将介绍如何利用JBuilder2005集成开发环境结合Struts框架,实现一个简单的猜数字游戏,以此来学习和理解ActionForm、Action以及JSP在Struts...

    myeclipse+struts实例——2

    【描述】"myeclipse+struts+tomcat 猜数字,随即产生数字"描述了一个基础的教学场景,即创建一个猜数字的游戏。游戏中,系统会随机生成一个数字,用户通过界面输入猜测,然后系统会给出提示(如过高、过低或猜中...

    猜数字例子分析(简单介绍)

    在这个简单的猜数字游戏示例中,我们探讨了一个基于JSP和Struts的MVC架构的应用。首先,我们要明确视图(JSP)和控制器(Action)的职责划分。视图的作用是展示数据,而不应包含任何业务逻辑。因此,JSP应该只负责...

    Struts Web设计与开发大全

    02章:猜数字工程; 03章:登录用例和常用Web组件开发工程以及数据库脚本; 05章:实体Bean开发示例,该示例仅供参考; 08-11章:标记库taglib1应用,直接复制到tomcat的webapps目录下即可使用; 13章:复合视图...

    java猜数字源码-eweb4j-framework:简单的Java网络框架

    java猜数字源码 = 为什么要用 EWeb4J ? = EWeb4J 是一个基于 Servlet/Jdbc 构建的轻量级 Java Web 开发框架。它可以代替 SSH 来开发一个完整的 Web 应用程序。 它专注于 少侵入、少配置、松耦合、RESTful架构风格的...

    基于struts1.x的验证码实现

    这个字符串可以包含字母、数字,甚至符号,长度可以根据需求来设定。生成的验证码通常要存储在一个会话(session)变量中,以便后续验证时使用。 2. **显示验证码**:在用户请求登录或其他需要验证码的页面时,将...

    creator实现简单的猜牌游戏

    猜牌游戏通常涉及到随机生成一个数字或卡片,然后让用户尝试猜测它,直到用户猜对为止。 【描述】:“简单的代码逻辑” 这个描述暗示了游戏的实现可能使用了直观且易于理解的代码结构。在编程中,简洁的代码逻辑...

    Eclipse+Web开发从入门到精通(实例版).pdf

    书中还通过Java应用程序实例,让读者能够通过编写排序算法、猜数字游戏等程序来加深对Java基本语法和逻辑的理解。 在Web开发技术方面,本书详细地讲解了如何在Eclipse中使用Ant工具进行资源构建。Ant是Apache的一个...

    Eclipse Web开发从入门到精通(实例版)

    深入到具体的Java应用程序开发中,通过排序算法的实现、猜数字游戏、FTP文件传输等实例,让读者能够在实践中学习和巩固Java编程技能。这些实例不仅涵盖了基本的编程概念,还涉及到了网络通信、文件操作等进阶主题,...

    JCaptchaWebSample4

    JCaptcha的工作原理是生成一个随机的、难以通过计算机算法识别的图像,通常包含扭曲的文字或数字。用户在提交表单之前必须正确输入这个验证码,以证明他们是人类而不是机器。这样可以有效地防止自动脚本执行恶意操作...

    Java基础教程1.pdf(2021年整理精品文档).docx

    此外,还涉及了如何实现简单的应用程序,如猜数字游戏和五子棋控制台版本。 3. **集合框架**:详细介绍了Java中的各种集合类,如ArrayList、LinkedList、HashMap等,并讲解了Apache Commons工具包的使用,帮助...

    Java基础教程1.pdf.docx

    通过实现猜数字游戏的升级版、简单的记事本程序等项目,可以锻炼实际编程能力。 数据库知识是必不可少的,掌握SQL语言,包括基本的查询、更新、删除和插入操作,以及SQL语句的优化。了解Oracle数据库体系结构,能够...

Global site tag (gtag.js) - Google Analytics