• Struct2


    1、MVC思想概述

      Servlet作为前端控制器,负责接收客户端发送的请求,在Servlet中只包含控制逻辑和简单的前端处理;然后调用后端javabean来完成实际的逻辑处理;

    最后转发到相应的jsp页面处理显示逻辑。

      JSP页面的请求与Servlet交互,Servlet负责与后台的javabean通信。

      MVC并不是java语言所持有的设计思想,它是所有的面向对象程序设计语言都应该遵守的规范。

    2、Struts 2的下载和安装

      (1)下载Struts2的完整版,解压缩,该文件夹包含如下文件结构:

    •   apps:包含了基于Struts2的示例应用;
    •   docs:包含了Struts2的相关文档;
    •   lib:包含了Struts2框架的核心类库,以及他的第三方插件类库;
    •   src:包含了Struts2框架的所有源代码;

      (2)将lib中的部分必须类库复制到web应用的WEB-INF/lib路径下。

      (3)编辑web应用的web.xml配置文件,配置Sturts 2的核心Filter。

     <!-- 定义Struts2的核心Filter -->
      <filter>
          <filter-name>struts2</filter-name>
          <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
      </filter>
     
      <!-- 让Struts2的核心Filter拦截所有的请求 -->
      <filter-mapping>
          <filter-name>struts2</filter-name>
          <url-pattern>/*</url-pattern>
      </filter-mapping>

      (4)eclipse中struts.xml文件配置(这里用的Struts2.2.1)

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd" >
    <struts>
        <constant name="struts.custom.il8n.resources" value="mess"/>
        <constant name="struts.il8n.encoding" value="GBK"/>
    </struts>

    3、定义一个Struts2的Action,该Action通常应该继承ActionSupport基类。

      为login.jsp页面中登陆表单指定该表单的action为login;

      编写一个LoginAction类:

    package lee;

    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;

    public class LoginAction extends ActionSupport{
        
        private String username;
        private String password;
        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;
        }
        public String execute() {
            if(getUsername().equals("cui") && getPassword().equals("1234")) {
                ActionContext.getContext().getSession().put("user", getUsername());
                return SUCCESS;
            }
            else
            {
                return ERROR;
            }
        }
    }

      配置文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd" >
    <struts>
        <constant name="struts.custom.il8n.resources" value="mess"/>
        <constant name="struts.il8n.encoding" value="GBK"/>
        
        <!-- 所有的Action定义都应该放在package下 -->
        <package name="lee" extends="struts-default">
        <!-- 下面配置了一个名为login的Action,浏览者可以向该Action发送请求。该Action下还配置了三个result元素
        用于指定逻辑视图和物理资源之间的映射,即当前返回input逻辑视图名时,系统跳转到/login.jsp页面 -->
            <action name="login" class="org.crazyit.app.action.LoginAction">
                <!-- 定义是三个逻辑视图和物理资源的映射 -->
                <result name="input">/login.jsp</result>
                <result name="error">/error.jsp</result>
                <result name="welcome">/welcome.jsp</result>
            </action>
        </package>
    </struts>

  • 相关阅读:
    《20170920-构建之法:现代软件工程-阅读笔记1》
    结对-贪吃蛇项目-开发过程
    个人-GIT使用方法
    团队-爬取豆瓣电影TOP250-开发环境搭建过程
    团队-爬取豆瓣电影TOP250-简单团队一阶段互评
    团队-爬虫电影网站-开发文档
    结对-贪吃蛇游戏-结对项目总结
    课后作业-阅读任务-阅读提问
    结对-贪吃蛇游戏-开发环境搭建过程
    结对编程贪吃蛇项目-结对编项目设计文档
  • 原文地址:https://www.cnblogs.com/shuqicui/p/day5.html
Copyright © 2020-2023  润新知