阶段大纲 struts2 火推 01 02笔记

day01

 

阶段大纲

  • ssh阶段 6java

    • struts2
    • hibernate
    • ssh
  • NoSQL 2mysql

    • redis
    • mongoDB
    • linux------1-2
  • 企业项目 nlinux

    • CRM客户管理系统
    • P2P金融借贷平台
    • 企业级的解决方案
    • 简历指导-模拟面试 1-2

MAVEN

用于项目的构建、发布、测试、打包的项目管理工具
  • 命令web

    • mvn test
    • mvn install
    • mvn clearn
    • mvn bulid
  • 图形化界面面试

    • 应用与开发工具中做为集成插件redis

      eclipse、myeclipse、IDE(全家桶)spring

maven结构和web项目的结构sql

maven结构:apache

jar:通常用于补丁管理的文件状况下
pom:通常用于分布式项目搭建
        pro-service
        pro-entity(VO)
        pro-utils
        pro-controller
        pro-pom---pom.xml

war:通常用于搭建工程(第一次搭建),而且只会建立一次---应用服务器(支持自解压)

web结构设计模式

Tocmat

开发环境

切忌:全部路径,不容许出现中文路径或者特殊字符

搭建环境工具:

myeclipse、mysql5+、sqlyog、jdk1.七、tomcat七、maven

搭建步骤:

1:删除环境变量中的tomcat设置
2:解压缩各个软件
3:切换本地jdk为1.7
4:安装myeclipse
5:设置myeclipse中jdk的版本
6:将tomcat配置到myeclipse中
7:将repository压缩包,解压到其它目录
8:将maven中央仓库,配置到myeclipse中
9:安装sqlyog,并测试mysql链接

搭建图文说明:

jdk配置步骤:

tomcat配置步骤:

maven配置步骤:

    1:将repository压缩包,解压到其它目录
    2:修改maven的配置文件setting.xml
        将<localRepository>D:/repo</localRepository>这标签去掉注释,改为本身的解压目录
    3:配置到myeclipse中,步骤以下:

生成web.xml步骤: 

day02

开发工具快捷键

ctrl+N:新建
ctrl+1:提示错误信息
ctrl+D:删除
ctrl+/:行注释
ctrl+\:取消行注释
ctrl+shift+/:代码段注释
ctrl+shift+\:取消代码段注释
ctrl+H:快速查找任何文件信息、字符信息
ctrl+shift+O:导包
ctrl+T:查找类(支持模糊查找)
ctrl+R:查找文件(支持模糊查找、支持资源文件查找)
ctrl+shift+I:debug模式下,查看当前执行代码信息
ctrl+G:定位文件(不经常使用)

DUBUG模式开发

注意:从今天开始,包括后续进入企业中,全部开发环境下的项目启动,都要用debug模式启动。

F5:进入方法内
F6:执行下一步
F7:跳出方法外
F8:执行到下一个断点

Struts2

概述

是从webwork发展而来,而且属于MVC的设计模式,其本质是一个servlet,充当的是C控制器层,和struts在名称上区别不大,可是在代码规范和内核上有很大的区别,其编码规范和内核流程遵循的是webwork2的流程习惯

属于非嵌入式框架,而且属于非单例模式

演变:

优点

1:内部封装了大量的拦截器
2:支持多种表现层的组件
3:携带大量的类型转换器-----
    日期-----2017-10-10(支持)   2018年10月10日  20181010

结构原理

springMVC结构图:

struts2结构图:

搭建步骤

Spring搭建步骤:

    1:导包--(core\aop\ioc\jdbc.....、webMVC)
    2:增长配置文件信息applicationcontext.xml
    3:配置启动容器

Struts2搭建步骤

    1:导包(struts2-core)

        <dependency>
          <groupId>org.apache.struts</groupId>
          <artifactId>struts2-core</artifactId>
          <version>2.5.13</version>
        </dependency>

    2:增长配置文件信息(struts.xml)

        <?xml version="1.0" encoding="UTF-8" ?>
        <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
            "http://struts.apache.org/dtds/struts-2.5.dtd">

        <struts>

        </struts>

    3:配置启动容器

        <!-- struts2配置filter控制器 -->
        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>*.action</url-pattern>
        </filter-mapping>

struts.xml不提示标签问题

入门示例1 - Hello Struts2

请求流程:

/hello.action-->StrutsPrepareAndExecuteFilter控制器->HelloAction--->result(struts.xml)--->hello.jsp

开发步骤:

1:遍写hello.jsp文件
2:添加struts.xml中配置信息
3:编写HelloAction.java文件
4:将工程部署到应用服务器Tomcat中
5:启动运行
6:浏览器访问:http://localhost:8081/ssh_13/demo/hello.action

代码:

HelloAction.java:

/**
 * 1:接收请求(url或者带有参数url)
 * 2:处理请求的方法
 *          public String execute(){.......}
 *              其中execute对应的是struts.xml中action中的method值
 * 3:返回请求结果集XXXX
 * 
 *          struts.xml----<result name="XXXX" type="">/.....</result>
 * @author likang
 * @date   2018-1-8 上午11:22:56
 */
public class HelloAction {

     public String execute(){
         return "success";
     }

}

struts.xml配置文件信息:

<!-- name:表明的是package名称,能够自定义,通常是按照系统的业务模块划分package
    extends:表明的是继承struts2的核心配置文件,struts-default并非struts2的核心配置文件名
            而是struts-default.xml中的package对应的name值
    namespace:表明的是命名空间,若是不写namespace值,则默认是/
 -->
<package name="demo" extends="struts-default" namespace="/demo">
    <!--hello.action
            name:表明的是请求名,可是请求后缀无需填写
            class:表明的是请求所处理的action类
            method:接收接口请求的处理方法名,暂时写死:execute
      -->
    <action name="hello" class="com.xdl.action.HelloAction" method="execute">
        <!--execute返回的result值:
                name:表明的是execute返回的标志
                type:表明的是根据标志,处理结果响应的类型,默认的是dispatcher
          -->
        <result name="success" type="dispatcher">/WEB-INF/jsp/hello.jsp</result>
    </action>
</package>

hello.jsp:

<h1>Hello Struts2</h1>

命名空间、请求后缀、组件默认值

/demo/user/hello.action

请求名:hello 请求后缀:.action 命名空间:/demo/user

加载顺序问题:

http://localhost:8081/ssh_13/demo/dd/ddd/dd/hello.action

1:匹配请求后缀
2:匹配请求名:hello
3:匹配namespace,是一级一级匹配

请求后缀修改:

1:将web.xml中的url修改成/*.以下:
    <url-pattern>/*</url-pattern>
2:在struts.xml中增长以下配置信息:

    <!-- 修改struts2的默认后缀请求方式,struts.action.extension属性来源于struts2的属性文件
    default.properties
    若是是多个请求后缀,则用逗号隔开 -->
    <constant name="struts.action.extension" value="do"/>

接收、传出参数

1:struts2中使用的全局变量来接收和传出参数
2:为参数增长getter和setter方法
3:变量名和请求参数名,名称必须保持一致
4:页面取值方式:${参数名 }

入门示例2 - 列表展现

请求流程:

/demo/list.do-->filter控制器--->ListAction-->result(struts.xml)->list.jsp

开发步骤:

1:编写list.jsp页面---${}
        C标签
        导包:jstl
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

2:编写ListAction.java

代码以下:

ListAction.java:

/**
 * 列表展现
 * @author likang
 * @date   2018-1-8 下午2:43:23
 */
public class ListAction {

    public List<Dept> listDept;

    public String execute(){
        listDept = new ArrayList<Dept>();
        for (int i = 0; i < 10; i++) {
            Dept dept = new Dept();
            dept.setId(Long.valueOf(i));
            dept.setDeptName("java13_"+i);
            dept.setDeptNote("BeiJing"+i);
            listDept.add(dept);
        }
        return "success";
    }

    public List<Dept> getListDept() {
        return listDept;
    }

    public void setListDept(List<Dept> listDept) {
        this.listDept = listDept;
    }
}

struts.xml:

<!-- 列表页面的跳转 -->
    <action name="list" class="com.xdl.action.ListAction" method="execute">
        <result name="success" type="dispatcher">/WEB-INF/jsp/list.jsp</result>
    </action>

list.jsp

1:引用c标签
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
2:遍历取值

    <h1>列表展现</h1>
    <table>
        <c:forEach items="${listDept }" var="dept">
            <tr>
                <td>${dept.id }</td>
                <td>${dept.deptName }</td>
                <td>${dept.deptNote }</td>      
            </tr>
        </c:forEach>
    </table>

Struts2+Spring整合

相关文章
相关标签/搜索