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,再逐渐往里加功能,代码如下所示:

 <?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> <action-mappings> </action-mappings> </Struts-config> 

在以下的步骤我们就可以看到,我们如些向这个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"); 
阅读更多
个人分类: java
想对作者说点什么? 我来说一句

struts学习笔记

2010年04月15日 2KB 下载

MVC框架struts学习笔记

2009年08月31日 254KB 下载

Struts 学习笔记.doc

2007年08月21日 172KB 下载

struts笔记

2008年08月02日 267KB 下载

struts概要

2008年03月21日 290KB 下载

Struts 学习笔记

2008年01月31日 52KB 下载

struts 1.x学习笔记

2011年09月28日 70KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭