• Structs2笔记①--structs的背景、structs2框架的意义、第一个helloworld


    Struts2的背景

    1. 由出色稳定的框架struts1和webwork框架整合而来的
    2. 吸取了两大框架的优点
    3. 提高了开发的效率和规范性
    4. 更好的实现了MVC架构
    5. 解除了与servlet的强耦合性

    使用struts2框架的意义

    1. 更敏捷的开发
      1. 自动封装表单提交数据:属性驱动,模型驱动
      2. 便捷的实现上传文件:fileupload
      3. 使网站通用于国内外:国际化
      4. 通过配置完成表单验证:校验器
      5. 强大的标签库:Struts2标签库,OGNL标签库
    2. 更科学的管理
      1. 使用xml文件管理程序文件对应关系
    3. 更安全的操作
      1. 安全的线程机制:每个action都是独立的
      2. 防止了数据的重复提交:token令牌机制
    4. 先进的编程思路
      1. 面向切面编程:拦截器

    Helloworld

    下载路径:http://struts.apache.org/download.cgi#struts2324

    第一步把需要的jar文件拷贝过去

    第二步把struts.Xml拷贝过去

    如果不连接网络的话就不能提示

    需要在myeclipse内配置下,将dtd文件的网址复制到浏览器的地址框中,下载。

    或者在struts-2.3.24srccoresrcmain esources目录内也存在dtd文件。

    第三步将关于filter的配置拷贝到web.xml中

    Struts.Xml的属性配置

    <!-- bean标签用于创建一个JavaBean 实例 -->

    <!-- constant该标签用于struts2默认行为标签 -->

    <!-- package该标签 包标签 用于区分不同的请求文件的标签

            比如说网站前台请求 网站后台请求-->

    <!--include该标签用于引入其他的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>  

        <!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->  

        <constant name="struts.i18n.encoding" value="UTF-8" />  

      

        <!--  

            该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。  

            如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。  

        -->  

        <constant name="struts.action.extension" value="do" />  

      

        <!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->  

        <constant name="struts.serve.static.browserCache" value="false" />  

      

        <!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->  

        <constant name="struts.configuration.xml.reload" value="true" />  

      

        <!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->  

        <constant name="struts.devMode" value="true" />  

      

        <!-- 默认的视图主题 -->  

        <constant name="struts.ui.theme" value="simple" />  

      

     

     

    Helloworld的例子

     

    输入的表单

    <form action="<%=path %>/new/login.action" method="post">

                用户名:<input type="text" name="username"><br>

                密码:<input type="text" name="password"><br>

                <input type="submit" value="提交">

            </form>

    LoginAction

     

    public class LoginAction {

        private String username;//此处 表单内的name必须与此一致

        private String password;

        public String execute(){

            if (username.equals("admin")&&password.equals("123")) {

                return "success";

            }else {

                return "fail";

            }

        }

        

        public String getUsername() {

            return username;

        }

        public void setUsername(String username) {

            this.username = username;

        }

        public String getPassword() {

            return password;

        }

        public void setPassword(String password) {

            this.password = password;

        }

        

    }

    配置struts.xml文件 表单中访问的路径也要加上namespace的名字

    <package name="test" extends="struts-default" namespace="/new">

    <action name="login" class="com.pcx.filter.LoginAction">

    <result name="success">/success.jsp</result>

    <result name="fail">/fail.jsp</result>

    </action>

    </package>

    Struts2的属性驱动和模型驱动帮我们完成了数据的获取和数据的封装。

    加入struts2的标签库的支持 <%@tagdlib prefix="s" uri="/struts-tags"%>

     

     

     

     

    注意:要想拿到当前应用程序的路径需要在请求的路径前面加上

    action="<%=request.getContextPath() %>

     

  • 相关阅读:
    [设计] 判断LOGO好坏的12条参考标准
    [3D] (开源)1997年世界编程大赛第一名作品
    [CSS3] 哆啦A梦告诉你目前各家浏览器对 CSS3 的支持状况(含源文件)
    [游戏] 游戏开发中常用的设计模式
    [D3D] DX10 D3D10阴影技术演示Demo
    [D3D(C#)] 创建设备
    [JS] 全世界最短的IE判定
    [游戏] 游戏中的资源管理资源高速缓存
    [游戏] 网络游戏:为什么失败
    [VC] (开源)游戏源代码列表
  • 原文地址:https://www.cnblogs.com/chengzhipcx/p/4752786.html
Copyright © 2020-2023  润新知