之前只学过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 完整实例,含lib文件,解压即可运行 适合初学者
Struts2的HelloWorld例子适合Struts2的初学者,例子虽小,但是很有帮助。 保证初学者利大于弊~!
以前看着视频学习struts2时候写的练习代码,完整的代码,可以供初学者学习或者参考。
该压缩包中包含初学Struts2所需的13个jar包。为初学Struts2的人员提供jar包支持。
struts2 annotion helloworld 源代码,适合初学者看看,不懂得看看文档就知道了。
MyEclipse8下struts2简单例子,有说明。适于初学struts2者
初学struts2用到的所有jar包,最近刚学struts2,部署以后启动总是抱错,原因都是缺少jar包,刚刚把所有jar包凑齐(还没整合Spring,Hibernate)。
一本全面介绍struts2的文档,相信对初学者很有用,唯一不足的是对struts2的标签介绍的很少。
可以帮助初学者快速的理解并应用struts2
struts1写的登陆页面,非常适合初学者
这几天正在看,里面有一本书,两份struts总结和配置的doc文件,对初学struts的人很有帮助。能够很快的入门并上手开发。
菜鸟初学struts1 API 容易上手
本人学习时写的一些例子 对初学者来说应该很有用的
在这里,通过一个小例子稍微总结了下struts1和struts2的区别,希望这个能帮助到初学struts的朋友
很适合初学者的struts1学习文档 Struts框架属于哪层技术?主要解决什么问题?
struts初学者教程文档
struts1的工作流程,初学者不错的资源
初学者的第一个《hello Word》程序。英文版的,慢慢看。需要有一点点的c++基础。
struts2的简单例子,适用于初学java的人
让初学者学习struts提供帮助,为接触struts进行一定的知识