`
roruby
  • 浏览: 335224 次
  • 来自: ...
社区版块
存档分类
最新评论

Struts学习傻瓜式入门篇

阅读更多
 

  或许有人觉得struts不容易学,似乎里面的一些概念让未接触过的人迷惑,MVC1、MVC2、模式……我写这篇文章是想让从来没有接触过struts的人,能有个简单的入门指引,当然,系统地学习struts是必要的,里面有很多让人心醉的东东,那是后话了。

  该案例包括首页,用户登陆、网站向导页面。就这么简单,没有深奥的struts概念,主要靠动手,然后用心体会。

  WEB Server用tomcat4。到http://jakarta.apache.org下载struts1.1,把zip文件释放到c:\struts,拷贝C:\struts\webapps\struts-example.war到c:\tomcat4\webapps中,启动tomcat,war包被释放为struts-example文件夹,删除war包,把struts-example文件夹更名为test。
  一、把WEB-INF\web.xml改成:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>
<!—这是struts中的Controller(控制器),系统的指令中转由其,既ActionServlet 类负责,它从struts-config.xml中读取配置信息,并在服务器后台自动启动一个线程。如果没有特别的要求(如添加语言编转功能),程序员可以不管这部分,照用就可以了。-->
<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>1</load-on-startup>
</servlet>
<!--该系统的servlet可以映射成cool为后缀的文件,而不是常见的.jspdo等,后缀名可以改成任何名称,当然名字要健康#◎¥%!-->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.cool</url-pattern>
</servlet-mapping>
<!--该系统的默认首页是index.jsp,可以有多个,系统按次序找,类似IIS-->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

  二、把test\WEB-INF\ struts-config.xml改成:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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>
<!--FormBean是struts的一个概念,本质是JavaBean,用来自动存储页面表单中各个域的值,并在适当的时候回填表单域,不需要象传统那样request.getParameter(“fieldName”);,常被action-mappings中的action 使用-->
<form-beans>
<!—稍后我们会新增一个UserForm类,用来存储用户信息。-->
<form-bean name="userForm" type="test.UserForm"/>
</form-beans>
<!--这里存放整个系统都可以使用的全局转向中转(Forward)地址,类似于javascript中的window.location(‘index.jsp’);,也类似于电视控制器上的各种按钮,可以转频道、调色等等是基于Struts的Web应用的控制流程流转。一般情况下,一个Action处理完毕后,会转发到一个JSP页面进行显示。这也是JSP中的MVC的实现的要点。-->
<global-forwards>
<!--failed.cool将被当成servlet请求,到action-mappings中寻找对应的action处理。-->
<forward name="failed" path="/failed.cool"/>
<forward name="regist" path="/regist.jsp"/>
</global-forwards>
<!--还记得web.xml中后缀为cool的请求吗?它们是转到这里处理的。这里相当于struts的Model部分,Model部分是struts中比较灵活的地方。-->
<action-mappings>
<!--处理regist.cools的请求,使用的FormBean是userForm,既test.UserForm类,当处理过程发生错误时将返回index.jsp-->
<action path="/regist" type="test.RegistAction" name="userForm" scope="request" input="/index.jsp" />
<action path="/overview" forward="/hello.jsp"/>
<action path="/failed" forward="/wuwu.jsp" />
</action-mappings>
</struts-config>
  三、增加一个FormBean,类路径为test.UserForm,以下是这个类的内容:

package test;
import org.apache.struts.action.ActionForm;
public class UserForm extends ActionForm
{
 private String name="lpw";//用户名
 private String ps="1111";//密码
 public UserForm(){}
 public void setName(String s) {name=s;}
 public String getName() {return name;}
 public void setPs(String s) {ps=s;}
 public String getPs() {return ps;}
}


  四、增加一个Action的子类,类路径为test. RegistAction,以下是这个类的内容:

package test;
import java.lang.reflect.InvocationTargetException;
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.util.MessageResources;
import test.UserForm;
public final class RegistAction extends Action
{
 public ActionForward execute(ActionMapping mapping,ActionForm form, HttpServletRequest request, HttpServletResponse response)
 throws Exception
 {
  Locale locale = getLocale(request);
  MessageResources messages = getResources(request);
  HttpSession session = request.getSession();
  UserForm userform = (UserForm) form;
  //此处可以调用其他类来执行数据库写入或其他逻辑判断
  // 如果UserForm传来的参数name的值为默认的lpw,将forward到failed,
  // 该名称将到struts-config.xml的<global-forwards>中寻找映射的url地址
  // (可以是绝对路径,也可以是相对路径),对于本例,是转到failed.cool,
  // 还记得吗?后缀为cool的请求全部到action-mappings中寻找
  // 对应的action处理,最终目录是wuwu.jsp*/
  if( "lpw".equals(userform.getName()) )
   return (mapping.findForward("failed"));
  else
   return (mapping.findForward("regist"));
 }
}

  五、以下所有新增或修改的页面相当于struts的View部分,把首页index.jsp改成:

<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ page import = "test.*" %>
<a href="overview.cool">站点导航</a><br>
<form action="regist.cool" method="post">
<!—表单中的域的名称要和UserForm中的参数一样,就可以实现数据自动获取功能,不需要用request.getParameter(“param”);-->
用户:<input type="text" name="name"><br>
密码:<input type="password" name="ps"><br>
<input type=submit value="新增用户">
</form>

  六、增加hello.jsp,用于站点导航:

<h1>site map</h1>The following is content filling by reader

  七、增加wuwu.jsp,当没有新用户登陆时,将转到这个页面:

<%@ page contentType="text/html;charset=GBK" language="java" %>
<jsp:useBean id="beanlpw" class="test.UserForm" scope="session"/>
现有用户:<%=beanlpw.getName()%><br>
密码:<%=beanlpw.getPs()%><br>

  没有得到新的用户!

  八、增加regist.jsp,当有新用户登陆时,将转到这个页面:

<%@ page contentType="text/html;charset=GBK" language="java" %>
<jsp:useBean id="beanlpw" class="test.UserForm" scope="session"/>
新用户帐号:<%=beanlpw.getName()%><br>
密码:<%=beanlpw.getPs()%>

  九、启动tomcat4,浏览器中键入http://localhost:8080/test/index.jsp,操作一下,就可以看到结果,并初步理解struts的M、V、C各部分的协同工作原理,当然这是作者的良好意愿,如果读者看得一头雾水,欢迎指出错误在哪里 :)

分享到:
评论

相关推荐

    struts傻瓜式学习

    在"Struts傻瓜式学习(一天篇)"中,你可能会学习到以下关键知识点: 1. **Struts配置**:包括struts-config.xml文件的编写,定义ActionMapping、FormBean、Action等元素,这是Struts框架运行的基础。 2. **Action...

    Struts_2.0从入门到精通

    总之,《Struts_2.0从入门到精通》一书全面覆盖了Struts2.0框架的核心概念和关键技术,从环境搭建到实际应用,从基础知识到进阶技巧,为读者提供了系统而深入的学习指南。无论是初学者还是有一定经验的开发者,都能...

    struts2入门学习源码

    这个入门学习源码包包含了关于Struts2的基础知识、学习笔记以及源码实例,旨在帮助初学者快速理解和掌握Struts2的核心概念和技术。 首先,让我们深入了解Struts2的基本原理。Struts2是Apache软件基金会的一个开源...

    struts学习,主要用于给struts的入门学习

    struts学习,主要用于给struts的入门学习

    Struts2简介与入门

    对于希望入门Java Web开发的学习者来说,掌握Struts2框架的使用是基础且关键的一步。通过阅读官方文档、学习示例程序、了解各配置文件的作用以及实际编写案例代码,能够帮助学习者快速进入Java Web开发的大门。

    Struts经典入门篇

    ### Struts经典入门篇:构建HelloApp应用 #### 一、引言 在《Struts经典入门篇》中,孙卫琴通过一个简单的Struts应用示例——helloapp,带领读者快速入门Struts框架,掌握基于MVC设计模式的Web应用开发基本流程。...

    struts1.x入门

    ### Struts1.x 入门知识点详解 #### 一、Struts 概念与起源 Struts 是一款基于 Java 的开源 MVC(Model-View-Controller)框架,最初由 Apache Jakarta 项目开发。其目的是简化 Web 应用程序的开发过程,并提供一...

    struts练习 初学者入门

    本教程“Struts练习 初学者入门”旨在帮助初学者快速掌握Struts的基本概念和用法,通过一系列的实践练习,让学习者能够快速上手。 首先,理解Struts框架的核心理念至关重要。Struts采用Model-View-Controller(MVC...

    struts1,struts教程,struts1.x入门

    在"struts1.x入门"的教程中,我们可以学习到以下几个核心知识点: 1. **MVC模式**:理解MVC模式的基本概念,它将应用程序分为模型、视图和控制器三个部分,各自负责数据处理、用户界面展示和用户交互处理。 2. **...

    struts2(1-7)源码 struts2学习入门 源码学习

    struts 初步认识Struts2并部署验证 struts2 将要进行自定义类型转换的点数据从1个增加到3个 struts3 进行全局的类型转换 struts4 使用Struts2中内部类中的方法进行自定义类型转换,用到的类StrutsTypeConverter ...

    struts学习(二)

    在本篇文章中,我们将探讨Struts的核心概念、安全问题以及一些实用工具,帮助开发者更好地掌握这一技术。 Struts是基于Model-View-Controller(MVC)设计模式的开源框架,它提供了组织和控制Web应用程序结构的能力...

    Struts 学习资料大全

    Struts2 学习书籍: 《精通Struts:基于MVC的JavaWeb设计与开发(孙卫琴)》 《Struts快速学习指南》 Struts2.0.chm 《Struts 2 in Action》 《Struts in Action 中文版》

    struts2简单入门教程

    在入门Struts2之前,需要准备以下开发环境和工具: - 开发工具:MyEclipse6(尽管它不直接支持Struts2,但可以使用其进行基础开发) - Web服务器:Tomcat6(用于部署和测试Web应用程序) - Struts版本:Struts*.*.**...

    struts2框架入门

    为了更好地理解Struts2,你需要学习如何创建Action类、编写struts.xml配置文件、使用Interceptor、处理结果以及理解OGNL的使用。通过阅读提供的"15_学员用书_STRUTS2核心_IMAGE版.pdf",你可以逐步掌握这些概念和...

    struts2开发入门以及webWork开发入门文档

    - `Struts2学习入门.pdf`可能是一个全面的PDF教程,涵盖Struts2的各个方面,适合初学者系统学习。 - `webwork2开发指南.pdf`则是针对WebWork框架的指导手册,帮助理解WebWork的设计原理和用法。 通过以上文档,你...

    struts2入门demo

    通过这个简单的入门案例,你可以学习到如何创建Action、编写配置文件、设计交互页面,并理解Struts2框架如何将所有这些组件协同工作。对于想要深入学习Struts2的人来说,这是一个很好的起点,可以帮助他们快速掌握...

Global site tag (gtag.js) - Google Analytics