day01
阶段大纲
-
ssh阶段 6
- struts2
- hibernate
- ssh
-
NoSQL 2
- redis
- mongoDB
- linux------1-2
-
企业项目 n
- CRM客户管理系统
- P2P金融借贷平台
- 企业级的解决方案
- 简历指导-模拟面试 1-2
MAVEN
用于项目的构建、发布、测试、打包的项目管理工具
-
命令
- mvn test
- mvn install
- mvn clearn
- mvn bulid
-
图形化界面
-
应用与开发工具中作为集成插件
eclipse、myeclipse、IDE(全家桶)
-
maven结构和web项目的结构
maven结构:
jar:一般用于补丁管理的文件情况下
pom:一般用于分布式项目搭建
pro-service
pro-entity(VO)
pro-utils
pro-controller
pro-pom---pom.xml
war:一般用于搭建工程(第一次搭建),并且只会创建一次---应用服务器(支持自解压)
web结构
略
Tocmat
开发环境
切忌:所有路径,不允许出现中文路径或者特殊字符
搭建环境工具:
myeclipse、mysql5+、sqlyog、jdk1.7、tomcat7、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>