Struts入门 lldwolf [原作]

转载 2004年08月08日 15:13:00
  Struts入门
出处  

Struts学习笔记


需要的Struts包

从网上下载Struts的压缩包后,解开,把lib子目录下的所有.jar文件复制到自己应用程序的lib目录下。当然,或许有些用不到,但全放进来最起码不会出错。

web.xml配置文件

只要用Struts来搭建J2EE架构,web.xml的写法都差不多,我现在不用Struts的标签库,只用其最基本的功能,写法如下:

 <?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> <display-name>Struts Example Application</display-name> <!-- Action Servlet Configuration --> <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> <!-- Action Servlet Mapping --> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <!-- The Welcome File List --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> 

也就是说所有以.do为后缀的请求都将发往org.apache.struts.action.ActionServlet,这个类包含在struts.jar中。 至于/WEB-INF/struts-config.xml,这是Struts用的配置文件,文件名和路径也可以由用户自定义,其实我写的这个是Struts的默认配置,即如果省略这个参数,Struts会自动把/WEB-INF/struts-config.xml作为配置文件,也可以指定多个配置文件,不同的配置文件以逗号","隔开。

struts-config.xml

我们由简到难,先做一个空的struts-config.xml,再逐渐往里加功能,代码如下所示:

  "" "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">     

在以下的步骤我们就可以看到,我们如些向这个XML文件添加内容。其实空的文件连<action-mappings>也没有,但是这struts-config.xml里面最基本的标签,所以我先加进去了。

实现最简单的页面跳转

也就是说,我们要实现这么一个动作,它只是简单地从一个页面跳到另一个页面,功能和HTML页面中的静态链接完全一样。我们先在index.jsp中创建这么一个链接:

 <a href="jump.do">点这里跳转到别的页面</a> 

然后在struts-config.xml中的<action-mappings>标签中加入如下<action>标签:

 <action path="/jump" forward="/success.jsp"> </action> 

OK,这个最简单的功能就实现了。其中,path属性表示客户端传来的链接请求,注意,这里并没有.do后缀。forward自然就是跳转的目标页面了。

使用Servlet

我们先实现一个最简单的Servlet,它只是返回一个字符串“Hello, I come back!”给客户端,其代码如下:

 //UseServlet.java import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionForm; public class UseServlet extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { request.setAttribute("test_value", "Hello, I come back!"); return mapping.findForward("return"); } }

Servlet必须是org.apache.struts.action.Action的子类并重载execute方法,execute方法返回一个org.apache.struts.action.ActionForward类,用于返回相应页面。在本例中我们使用mapping.findForward("return")来返回这个对象,至于字符串"return",过会儿你可看到,这是我们定义在struts-config.xml中的一个标识。

然后是定义struts-config.xml的<action-mappings>中的相应标签如下:

 <action path="/servlet" type="UseServlet" scope="request"> <forward name="return" path="/servlet_test.jsp"/> </action> 

其中type属性表示要使用的Servlet,scopen表示有效范围,值得注意的是<forward>子标签,其中的name属性"return"和servlet最后的mapping.findForward()的参数一致。

最后在index.jsp相应的加入:

 <a href="servlet.do">点这里使用Servlet</a> 

使用数据库

我们可以直接在struts-config.xml中的<struts-config>中指定数据库连接,方式如下:

 <data-sources> <data-source> <set-property property="autoCommit" value="false"/> <set-property property="description" value="Example Data Source Configuration"/> <set-property property="driverClass" value="sun.jdbc.odbc.JdbcOdbcDriver"/> <set-property property="maxCount" value="4"/> <set-property property="minCount" value="2"/> <set-property property="password" value=""/> <set-property property="url" value="jdbc:odbc:test"/> <set-property property="user" value=""/> </data-source> </data-sources> 

本例中我使用的是JDBC-ODBC数据库连接,你需要事先建一个名为test的ODBC连接。然后你就可以在Servlet中以如下方式得到数据库连接:

 javax.sql.DataSource dataSource = getDataSource(request); java.sql.Connection conn = dataSource.getConnection();

你可以在</data-sources>中定义多个数据库连接,例如:

 <data-sources> <data-source key="A"> ... properties as before ... </data-source> <data-source key="B"> ... properties as before ... </data-source> ... </data-sources>

然后以如下方式取得数据库连接:

 dataSourceA = getDataSource(request, "A"); dataSourceB = getDataSource(request, "B"); 

Struts1框架轻易入门,经典示例

Struts1框架轻易入门,经典示例 一枚菜鸟的学习笔记,请多指教。Struts工作原理及流程 登录验证示例 Struts1 工作原理及流程 这是本人整理的一点材料,原...
  • jdjdndhj
  • jdjdndhj
  • 2016年08月17日 23:31
  • 9848

Struts2框架学习之一:Hello World程序

前言Struts2框架Apache基金组织下的一个开源框架,基于MVC模式设计的Web应用开发框架。Struts 2是一个用于开发Java EE网络应用程序的开源Web应用框架,它利用并扩展了Java...
  • u011116672
  • u011116672
  • 2015年12月09日 16:49
  • 1497

初学者必看——最简单最清晰的Struts2项目搭建流程

我在项目中想要使用Struts2框架,我该怎么做?如何开始?这是我的疑问,我想也是很多初学者的最大的疑问。网上的理论知识应有尽有,详细的说明与操作过程却是凤毛麟角,因此把这两天的学习过程记录下来。这篇...
  • KEY0323
  • KEY0323
  • 2016年03月01日 17:44
  • 14798

React 入门实例教程(原作者: 阮一峰)

转载(http://www.ruanyifeng.com/blog/2015/03/react.html) 现在最热门的前端框架,毫无疑问是 React 。 上周,基于 React 的 React...
  • u014388408
  • u014388408
  • 2016年01月27日 16:10
  • 1455

React 入门实例教程(原作者: 阮一峰)

  • Mr_dong_ya_yun
  • Mr_dong_ya_yun
  • 2017年07月19日 14:40
  • 659

Mavlink移植到STM32F407(原作者:恒久力行)

  • 2017年12月01日 14:59
  • 1.21MB
  • 下载

Python机器学习 预测分析核心算法 完整全本 文字版 pdf 原作 Michael Bowles 翻译 沙嬴 李x鹏

  • 2017年12月01日 22:42
  • 22.44MB
  • 下载

Cocos2dx2.2游戏源码:奇怪大冒险(手绘搞怪类,原作熊同学)

  • 2014年03月13日 10:55
  • 2.96MB
  • 下载

C#创建文件&amp;文件夹&amp;浏览按钮实现两种方式(原作)

  • 2009年12月22日 11:43
  • 38KB
  • 下载

.net 小游戏(原作)

  • 2008年05月29日 16:26
  • 133KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts入门 lldwolf [原作]
举报原因:
原因补充:

(最多只允许输入30个字)