之前只学过Struts2,学过的版本有2.0和2.1的,在几次面试中都有被问到Struts1的,对于这些回答唯有说还没学过,心里很是好奇,也来瞧瞧。
本文是新手文章,属学习笔记,还望指教!
笔者使用的是MyEclipse集成的struts1.2。
web.xml配置如下(配置说明已在注释中):
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- struts1.2配置 -->
<!-- 配置ActionServlet -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<!-- Struts应用程序的配置文件位置(相对路径),则默认值为/WEB-INF/struts-config.xml -->
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<!-- 设置Servlet的debug级别,控制日志记录的详细程度。默认为0,记录相对最少的日志信息。 -->
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<!-- 设置Digester的debug级别,Digester是Struts框架所使用的用来解析xml配置文件的一个框架,通过此设置,可以查看不同详细等级的解析日志。默认为0,记录相对最少的日志信息。 -->
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<!--
ActionServlet在服务器开启时加载的优先级,数值越低,越先加载。
大多数 Servlet是在用户第一次请求的时候由应用服务器创建并初始化,但<load-on-startup>n</load-on-startup>可以用来改变这种状况,该元素说明某个 Servlet在应用程序启动的时候就立即装入 Servlet,并初始化它。
-->
<load-on-startup>0</load-on-startup>
</servlet>
<!-- Struts所拦截的路径,即Struts要处理的请求路径。 -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Action 类代码(Hello World):
package bing.struts.action;
import java.io.UnsupportedEncodingException;
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;
/**
* struts1第一例hello world
* @author bing
* @version 2011-07-06
*
*/
public class HelloAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
try {
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
request.setAttribute("msg", "hello " + name);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return mapping.findForward("index");
}
}
Struts1是从Servlet中扩展出来的,用起来与Servlet有些相似,捕获参数用的还是HttpServletRequest的getParameter方法,而且还要处理中文乱码问题。
struts-config.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<!-- 数据源元素,可以通过<set-property>设置driverClass、url、user、password等属性 -->
<data-sources />
<!-- 子元素form-beans用来配置绑定到Action的各个FormBean的实例。每个FormBean实例用form-bans的子元素form-bean来定义。form-bean又分普通的FormBan和动态FormBean。 -->
<form-beans />
<global-exceptions />
<!-- global-forwards用于配置全局转发,struts首先会在<action-mappings>元素中找对应的<forward>,若找不到,则到全局转发配置中找。它包含0个或多个<forward/>元素。 -->
<global-forwards />
<!-- 该元素用于将Action元素定义到ActionServlet类中,它含有0到多个<action/>元素 -->
<action-mappings >
<action path="/hello" type="bing.struts.action.HelloAction">
<forward name="index" path="/index.jsp"></forward>
</action>
</action-mappings>
<!-- 该元素用来定义资源文件。 -->
<message-resources parameter="bing.struts.ApplicationResources" />
<!-- 该元素用于定义插件,可定义0到多个插件元素,最常见的plug-in为Struts的验证的插件 -->
<!--
<plug-in className=""></plug-in>
-->
</struts-config>
struts-config标签中各元素的顺序是固定的,不可变换的。
笔者在网上找到了一篇struts1.2的配置文件struts-config.xml的详细教程,以上的注释说明来源于blogjava,原地址如下:
http://www.blogjava.net/amigoxie/archive/2008/01/03/172360.html
index.jsp:
...
${msg==null?'显示区域':msg }
<form action="hello.do" method="post">
<input type="text" name="name" />
<input type="submit" value="say hello" />
</form>
...
分享到:
相关推荐
在本示例中,"struts2完整的Hello Word例子"是帮助开发者理解并熟悉Struts2基本工作原理和配置的一个入门级教程。下面将详细介绍这个Hello World应用的关键知识点。 1. **Struts2框架概述**: Struts2作为继Struts...
本实例“Struts2 Hello word 完整实例”是为初学者设计的,它包含了所有必要的组件和库文件,以便你能够快速上手并理解Struts2的基本工作原理。 首先,我们来看一下Struts2框架的核心概念: 1. **Action类**:在...
1. **Hello World**:在Struts2入门阶段,我们通常从创建一个简单的"Hello World"示例开始。这涉及到配置Struts2的主配置文件(struts.xml),创建Action类以及相应的JSP页面,以展示Struts2如何处理HTTP请求并返回...
总的来说,"Struts2 in Action"这本书和其配套的源代码为学习和掌握Struts2框架提供了一个全面的平台,无论你是初学者还是经验丰富的开发者,都能从中受益。通过实践这些示例,你可以更好地理解MVC模式,提升Java ...
- **在hello.jsp中使用Struts Logic标签库**:通过具体的示例展示了如何在JSP页面中使用Logic标签库。 #### Tiles标签库 - **struts中使用tiles组件**:讲解了如何将Tiles组件与Struts框架结合使用,以实现页面布局...
1. **Hello, World!**:展示JSP如何输出简单文本。 2. **使用脚本元素**:演示如何在JSP中嵌入Java代码,如变量声明、表达式输出和脚本块。 3. **JSP表达式语言(EL)**:利用EL简化数据访问,如`${var}`。 4. **...
Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...