struts快速入门第一篇 —— struts相关XML配置映射及讲解

时间:2022-01-12 19:19:22

  我们回忆一下在学习JavaWeb过程中(Jsp + servlet编程)所感受到的Servlet的不足:

    1 Servllet很多时,web.xml中的代码会很多。这样一来,维护起来就不方便,不利于团队合作;

    2 一个Servlet的入口只有doGet或doPost方法,如果需要定义其它方法,就必须得在前两者中调用它们。这样会导致代码结构很乱;

    3 let类与servlet容器高度耦合,每个方法中都有两个参数request,response。如果服务器不启动,这两个参数没有办法初始化。这会给 单元测试 带来麻烦。

    4 如果在servlet中的一个方法中,有很多功能,这个时候,会导致该方法比价复杂,以致于不利于维护

    在servlet中如果要获取页面上表单中的数据,那么在方法中会写很多行

  

Struts2的历史

  1、 servelet

  2、 struts1

    1、 写action

    2、 写了一个中控的servlet

    3、 actionForm 和页面上表单中的内容一致

   3、webwork

1、使得action与servlet容器完全松耦合

    2、属性驱动和模型驱动获取页面上表单中的数据

    3、利用了拦截器的概念把servlet容器的第4个缺点克服掉了

4、struts1+webwork=struts2

第一个例子

  编写步骤:

    1 创建一个Web project

    2 从struts的jar包中拷贝web.xml放入到上述项目中

    struts快速入门第一篇 —— struts相关XML配置映射及讲解

    3 创建一个普通的Java类,我们习惯将它名字的最后一个单词写为Action。如HelloWorldAction。它应该提供返回值为String的方法。

    struts快速入门第一篇 —— struts相关XML配置映射及讲解

    4 在src文件夹下创建struts.xml[名字必须是这个] 并将struts-2.3.1.2\apps\struts2-blank\WEB-INF\classes目录下struts2.xml的部分代码拷贝至其中。改写如下:

    

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>
<package name="helloworld" namespace="/" extends="struts-default">
<action name="HelloWorldAction" method="greet"
class="com.struts2.action.HelloWorldAction">
<result name="index">index.jsp</result>
</action>
</package>
</struts>

    5 部署到Tomcat上后,开启服务器并访问

http://localhost:8080/struts2_helloworld/HelloWorldAction.action