黑马程序员:三大框架11天笔记全之Struts2-day01笔记

黑马程序员郑州中心 编著 黑马程序员:三大框架Struts2-day01笔记

第1章 框架概述

什么是框架,为什么使用框架,框架优点

框架(framework)是一个基本概念上的结构,用于去解决或者处理复杂的问题

框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。

框架是在特定的领域内解决问题。

优点

重用代码大大增加,软件生产效率和质量也得到了提高

使用框架开发,它提供统一的标准,大大降低了我们的后期维护。

学习框架重点:了解框架做了什么,我们要在这个基础上在做什么事情。

第2章 java开发中常用框架

SSH (SSM SSI)

SSH struts2 spring hibernate

SSM(SSI) springmvc spring mybatis(ibatis)

SSH 它是企业开发中比较主流的一套架构。

SSH框架在开发中所处的位置: 黑马程序员郑州中心 编著

第3章 Struts2框架介绍

什么是struts2框架,学习struts2框架的核心。

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互

Struts2=struts1+webwork

问题:struts2是一个mvc框架,它的mvc是什么?

javaweb开发中的mvc,是在jsp的model2模式中提过

Model------javabean

View--------jsp

Controller----servlet

黑马程序员郑州中心 编著 核心点:

1.拦截器 interceptor

2.Action

3.ognl与valueStack

在现在开发中与struts2比较类似的框架有哪些?

Struts1 webwork springmvc

jsf

Struts2框架流程

黑马程序员郑州中心 编著

第4章 今天内容介绍与重点

今天内容:

一个简单的登录案例

在这个案例中,我们要使用struts2框架怎样解决

重点:

1.struts2框架如何完成原来由servlet完成的工作。

2.Struts2框架如何完成请求参数的封装处理

3.Struts2框架如何完成页面跳转。

黑马程序员郑州中心 编著

第5章 简单登录案例原型

需要三个jsp页面 login.jsp success.jsp failer.jsp

还需要一个servlet

LoginServlet 主要完成的是业务逻辑操作。

login.jsp

LoginServlet

黑马程序员郑州中心 编著

第6章 Struts2框架来完成登录操作

6.1 问题:为什么使用struts2框架?

Struts2框架它是一个在web中应用的mvc框架。

我们使用strtus2框架来完成web开发有什么优势?

6.2 问题:怎样使用strtuts2框架

首先要上网下载它的jar包。

步骤:

1.导入相关的jar文件

2.需要在web.xml文件中配置一个Filter(只有配置了它才可以使用struts2框架) 黑马程序员郑州中心 编著 3.struts.xml配置

4.创建Action来完成逻辑操作

6.3 快速入门

我们使用的是struts2 2.3.24版本

我们使用strtus2框架不是直接将它的lib包下的所有的jar文件copy到项目中,而是使用其中的一部分。

我们可以参考它的示例代码:

1.导入13个jar包

2.需要在web.xml文件中配置StrutsPrepareAndExecuteFilter

3.创建一个struts.xml文件,它的位置是可以放置在src下。

黑马程序员郑州中心 编著 6.3.1 代码实现

6.3.1.1 jsp页面

6.3.1.2 Action

6.3.1.3 struts.xml文件配置

6.3.2 流程分析

黑马程序员郑州中心 编著 6.4 使用struts2完成简单登录操作

1.login.jsp页面不变动

2.创建一个LoginAction来完成逻辑操作

3.在struts.xml文件中完成配置操作

问题1:在LoginAction中如何得到username与password

可以直接在Action类中提供成员属性,并为其提供get/set方法。

就可以得到请求参数

问题2:如果实现路径跳转?

1.我们可以给action中的方法添加一个String返回值

2.在struts.xml配置文件中,在其对应的action配置上通过来确定跳转的路径。

黑马程序员郑州中心 编著 第7章 Struts2框架执行流程

7.1 Struts2源码导入

对于struts2框架它的源代码我们主要使用三部分

1. struts2核心部分源代码 org.apache.struts2xx

src\core\src\main\java

2. struts2的xwork核心部分源代码

src\xwork-core\src\main\java\com\opensymphony\xwork2

3. struts2的插件的源代码

src\plugins

7.2 关于struts.xml配置文件中提示问题

第一步

在eclipse的window下首选面中查找xml catalog

第二步

Location:配置本地的dtd文件路径

key type:选择URI 黑马程序员郑州中心 编著 Key: /dtds/struts-2.3.dtd

注意版本要对应,如果你可以上网,那么会自动缓存dtd,具有提示功能。

7.3 执行流程介绍

1.当通过浏览器发送一个请求

2.会被StrutsPrepareAndExecuteFilter拦截

3.会调用strtus2框架默认的拦截器(interceptor)完成部分功能

4.在执行Action中操作

5.根据Action中方法的执行结果来选择来跳转页面Resutl视图

一般管StrutsPrepareAndExecuteFilter 叫做前端控制器(核心控制器),只有配置了这个filter我们的strtus2框架才能使用。 黑马程序员郑州中心 编著 Strtus2的默认拦截器(interceptor)它们是在struts-default.xml文件中配置

注意:这上xml文件是在strtus-core.jar包中。

默认的拦截器是在defaultStack中定义的。

第8章 Struts2配置详解

8.1 Struts2配置文件加载顺序

第一个加载的是default.properties文件

位置:strtus2-core.jar包 org.apache.struts2包下

作用:主要是声明了struts2框架的常量

第二个加载的是一批配置文件

Strtus-default.xml

位置:struts2-corl.jar

作用:声明了interceptor result bean

Strtus-plugin.xml

位置:在strtus2的插件包中

作用:主要用于插件的配置声明

Strtus.xml 黑马程序员郑州中心 编著 位置:在我们自己的工程中

作用:用于我们自己工程使用strtus2框架的配置

第三个加载的是自定义的strtus.properties

位置:都是在自己工程的src下

作用:定制常量

第四自定义配置提供

第五加载的是web.xml配置文件

主要是加载strtus2框架在web.xml文件中的相关配置.

第六 bean相关配置

重点掌握:

1.Default.properties

2.Struts-default.xml

3.Struts-plugin.xml

4.Strtus.xml

5.web.xml

8.2 struts.xml文件配置介绍

8.2.1 package配置

属性 作用:定义一个包的名称,它必须唯一。 黑马程序员郑州中心 编著 space属性 作用:主要是与action标签的name属性联合使用来确定一个action 的访问路径

3.extends属性 作用:指定继承自哪个包。一般值是strtus-default

strtus-default包是在strtus-default.xml文件中声明的。

4.abstruct属性 它代表当前包是一个抽象的,主要是用于被继承

8.2.2 action配置

属性 作用:主要是与package的namespace联合使用来确定一个action的访问路 径

2.class属性 作用:用于指示当前的action类

3.method属性 作用:用于指示当前的action类中的哪个方法执行

8.2.3 result配置

它主要是用于指示结果视图

属性 作用是与action类的method方法的返回值进行匹配,来确定跳转路径

2.type属性 作用是用于指定跳转方式

8.2.4 扩展

关于action配置中的class与method的默认值以及result中的name与type 默认值问题

原因:strtus-default.xml文件中配置

合集下载

Struts2学习笔记

Struts2学习笔记

Struts2项目的构建与配置

1. 配置struts.xml

(1) 配置struts.xml可以参考下载的struts-2.3.14.1-all.zip解压后的apps文件夹下的参考项目的struts.xml文件。

(2) 主要的配置如下:

/hello.jsp

value="true"表示是开发模式,当修改了配置时服务器会自动加载修改后的配置,不需要中期服务器,方便开发。

(3) namespace="/"与浏览器的访问地址有关,namespace的默认值为空。

(4) /hello.jsp action的name值与浏览器的访问地址有关,当地址是“http://„/hello”时,浏览器就会返回result中的hello.jsp的页面。

2. 配置web.xml

(1) 配置web.xml也可以参考下载的struts-2.3.14.1-all.zip解压后的apps文件夹下的参考项目的web.xml文件

(2) 主要配置如下:

struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

struts2

/*

3. 配置Struts2的jar包

(1) 复制下载的struts-2.3.14.1-all.zip解压后的apps文件夹下的参考项目的WEB-INF\lib文件夹下的所有的jar包到我们自己项目的WEB-INF\lib文件夹下即可。

Struts.xml的配置

1. package的属性与配置

(1) package的使用说明:类似于Java程序里的package,主要用于区分同名的action。在真正的项目开发中package通常来区分不同的模块。例如:

„

(2) name属性:用于区分不同的package,此属性不能省略不写。

(3) extends属性:用于继承其他的package,继承了某个package就包含了某个package里的所有配置,此属性可以省略不写,默认继承struts-default。

黑马程序员_javaweb讲义和笔记资料

黑马程序员_javaweb讲义和笔记资料

黑马程序员_javaweb讲义和笔记资料

一、简介

黑马程序员是一家专业的IT培训机构,提供全面的编程技术培训服务。javaweb是其中的一门重要课程,本文为黑马程序员_javaweb讲义和笔记的资料整理。

二、javaweb基础知识

1. Java语言概述

Java语言的特点和优势,Java开发环境的搭建等。

2. Servlet技术

Servlet的基本概念、生命周期、Servlet容器等。

3. JSP技术

JSP的基本语法、JSP指令、JSP内置对象等。

4. MVC设计模式

MVC设计模式在javaweb开发中的应用和实践。

三、javaweb开发流程

1. 需求分析

分析项目需求,明确开发目标和功能要求。

2. 数据库设计 设计数据库表结构,确定数据存储方式和关系。

3. 技术选型

根据项目需求和开发要求,选择合适的技术框架和工具。

4. 编码实现

使用Java语言和相关技术进行编码实现。

5. 测试调试

运行和调试项目,确保功能的正确性和稳定性。

6. 部署上线

将项目部署到服务器上线,提供给用户访问和使用。

四、javaweb开发常用框架和工具

1. Spring框架

Spring框架的介绍和核心特性,以及在javaweb开发中的应用。

2. SpringMVC框架

SpringMVC框架的详细讲解,包括请求映射、数据绑定、视图解析等。

3. MyBatis框架

MyBatis框架的使用方法和技巧,以及与数据库的集成。

4. Maven工具 Maven的基本使用和配置,常用插件介绍。

五、javaweb开发中的常见问题和解决方案

1. 数据库连接异常

分析数据库连接异常的原因和解决方法。

2. 页面跳转问题

页面跳转的实现方式和常见错误排查。

3. 表单数据验证

表单数据验证的常用技术和插件,提高数据输入的准确性和安全性。

黑马程序员:三大框架11天笔记全之hibernate-day06笔记

黑马程序员:三大框架11天笔记全之hibernate-day06笔记

黑马程序员:三大框架11天笔记全之hibernate-day06笔记

黑马程序员:三大框架hibernate-day06笔记

第1章Hibernate持久化类与主键生成策略

1.1Hibernate持久化类

什么是持久化类?

Persistent Object (PO)

PO=POJO+hbm映射配置

对于hibernate中的PO编写规则:

1.必须提供一个无参数的public构造方法

2.所有属性要private ,对外提供public 的get/set方法

3.在PO类必须提供一个标识属性,让它与数据库中的主键对应,我们管这个属性叫

OID

4.PO类中的属性尽量使用基本数据类型的包装类.

Int-→Integer double--→Double float-→Float

5.PO类它不能使用final修饰符

OID作用:

OID指的是与数据库中表的主键对应的属性。

Hibernate框架它是通过OID来区分不同的PO对象,如果在内存中有两个相同

的OID对象,那么hibernate认为它们是同一个对象。

为什么PO类属性它要使用包装类型?

使用基本数据类型是没有办法去描述不存在概念,如果使用包装类型,它就是一个对象,对于对象它的默认值是null.

PO类不可以使用final修饰?(hibernate中的get/load方法的区别)

Get/load方法它们都是根据id去查询对象。

1.get直接得到了一个持久化类型对象,它就是立即查询操作

load它得到的是持久化类开的代理类型对象(子类对象)。它采用了一种延迟

策略来查询数据。

2.get方法在查询时,如果不存在返回null

load方法在查询时,如果不存在,会产生异常

ObjectNotFoundException.

1.2Hibernate主键生成策略

Hibernate中定义的主键类型包括:自然主键和代理主键:

自然主键:具有业务含义字段作为主键,比如:学号、身份证号

开源框架之struts2笔记归纳张慧讲师.doc

开源框架之struts2笔记归纳张慧讲师.doc

1 ======================Day04====================

1.回顾

1)视图(jsp)到业务控制器(action)数据的传递,为action注入属性

eg:在action中有一个user属性,

2)在struts.xml中配置静态的参数,为action注入属性值

eg:

4//action.setPageSize(4)

4

//action.getPageinfo().setPageSize(4);

3)ognl valueStack struts2标签

a、struts2运转流程:客户端浏览器提交请求,请求业务控制器,struts2控制器接收到请求,创建valueStack对象,并且把valueStack对象放入request作用域中,接着创建业务控制器action的对象,同时把action对象放入valueStack,控制器调用action的业务方法,默认调用execute,然后由业务控制器action调用模型,模型返回结果给业务控制器action,action接收到模型返回的结果,再把result的name返回给控制器,控制器按照result的配置定位视图(jsp),最后jsp响应给浏览器.在视图(jsp)中使用struts2标签和ognl表达式进行数据的输出.

2.valueStack

1)valueStack是值栈,是一个栈的结构,是xwork对ognl的封装.

2)valueStack在request作用域中,request.setAttribute("struts.valueStack",valueStack)

3)在视图(jsp)使用查看valueStack

eg1:

a.首先从request作用域中找到valueStack

b.传递ognl表达式user到valueStack中的ognl引擎,ognl引擎进行解析,ognl引擎到root对象中获取user属性值,并且把值返回.

struts2学习笔记2

struts2学习笔记2

实用文案

标准文档

11.Result配置详解

说明:在前面的许多案例中我们所用到的Action基本都继承自ActionSupport这个类,而在这个类中我们定义了五个字段:SUCCESS,NONE,ERROR,INPUT,LOGING。我们可以直接返回这些字段值,这些字段值实质是被定义成:String SUCCESS=”success”这样的形式,所以我们只要在Result元素中用它们的小写即可。

标准完整形式如下:

/default.jsp

如果我们都采用默认的形式,最终可以简写成:/default.jsp

探讨type类型:

Type类型值 作用说明 对应类

chain 用来处理Action链 com.opensymphony.xwork2.ActionChainResult

dispatcher 用来转向页面,通常处理JSP org.apache.struts2.dispatcher.ServletDispatcherResult

redirect 重定向到一个URL org.apache.struts2.dispatcher.ServletRedirectResult

redirectAction 重定向到一个Action org.apache.struts2.dispatcher.ServletActionRedirectResult

plainText 显示源文件内容,如文件源码 org.apache.struts2.dispatcher.PlainTextResult 实用文案

标准文档 freemarker 处理FreeMarker模板 org.apache.struts2.views.freemarker.FreemarkerResult

httpheader 控制特殊http行为的结果类型

org.apache.struts2.dispatcher.HttpHeaderResult

struts2-课堂笔记案例

struts2-课堂笔记案例

目 录

第一章框架技术.................................................................................................... 2

struts2框架 ................................................................................................. 2

struts2的基本流程: .......................................................................................... 2

struts2中产生作用域 ......................................................................................... 3

上课实例: ................................................................................................... 3

一、模拟向数据库添加对象 ................................................................................ 3

二、模拟登陆效果 ........................................................................................ 4

三、struts2中产生作用域................................................................................. 5

01、struts2(Struts2开发入门 、常用配置、参数传递) - 副本

郑州星辰互联电子科技有限公司

1

1. Struts2简介

1.1. 什么是Struts2

1.1.1. Struts2的概念

Struts2是轻量级的MVC框架,它主要解决了请求分发的问题,重心在于控制层和表现层。

轻量级,指的是Struts2具有较低的侵入性,就是它对我们业务代码的依赖程度很低,简单来说,在使用Struts2框架时,我们的业务代码中基本上不需要import它的包。

Struts2实现了MVC,满足了MVC设计思想。在我们使用Struts2做开发的时候,就相当于使用了MVC,这是Struts2自动帮助我们实现的,是默认的、隐含的,我们不需要再写特别的代码来实现MVC了。

作为一个框架,Struts2提供了一系列的API,我们可以使用它们来简化代码的编写,从而提升开发效率。这些API复用程度很高,对业务代码的依赖性也很小,甚至很多是Struts2自动调用的,因此在很大程度上,我们的开发变得可以复用。

Struts2解决请求分发的问题,我们会在后面为什么使用Struts2中讲解。

重心在控制层和表现层,是纵观整个Struts2理论课程来看的,从中我们会体会到这一点,随着大家对Struts2的逐步了解,届时我们再回顾这一点。 郑州星辰互联电子科技有限公司

2

1.1.2. 什么是MVC

MVC是代码的分层思想,是软件设计领域经典的设计模式。它根据代码功能的不同,将一个软件的代码分为3部分,即模型、视图、控制器,这3部分代码的含义和功能如下。

1、M-Model 模型

模型(Model)的职责是负责业务逻辑。包含两层:业务数据和业务处理逻辑。比如实体类、DAO、Service都属于模型层。

2、V-View 视图

视图(View)的职责是负责显示界面和用户交互(收集用户信息)。属于视图的组件是不包含业务逻辑和控制逻辑的JSP。

3、C-Controller 控制器

控制器是模型层M和视图层V之间的桥梁,用于控制流程。比如:在Servlet项目中的单一控制器ActionServlet。

day01课堂笔记

今日内容介绍

 基础知识回顾

 继承

今日学习目标

 能够解释类名作为参数和返回值类型

 能够理解匿名对象

 能够写出类的继承格式

 能够说出继承的特点

 能够说出子类调用父类的成员特点

第1章 基础知识回顾

1.1 类

类:现实生活中一类事物的抽象描述;

类的组成:构造方法、属性(成员变量)、成员方法;

Public class 类名{

构造方法、属性(成员变量)、成员方法;

}

对象:现实生活中的具体某个事物的体现;(个体)

类与对象的关系:一个类可以创建多个对象,每一个对象必须有所属的类型;

对象与对象的关系:每一个对象都是独立的个体;(对象中的成员变量互不影响);

1.2 构造方法

构造方法的格式: Public 类名(参数列表){

写代码;(通常是给成员变量赋值)

}

执行特点:

在创建对象的过程中,由java虚拟机自动匹配对应的构造方法,并调用一次;

构造方法的作用:

1、创建对象;

2、给成员变量赋值;

构造方法与set方法的区别:

1、构造方法是在对象创建的过程中对成员变量赋值;

2、Set方法是对象创建成功后,修改对象中成员变量的值;

1.3 This关键字

This是当前对象的引用;(哪个对象调用方法,那么它就是当前对象)

每个对象中成员变量的值,互不影响;

成员变量是随着对象的创建而产生,随着对象的死亡而死亡;

1.4 方法的参数与返回值的问题

关于基本数据类型参数传递的规则:

在一个方法内部,对基本数据类型(包含String)的变量的值,进行修改,不会对原方法的变量的值影响;

关于引用数据类型参数传递的规则:

在一个方法内部,对引用数据类型(不包含String)的变量的值,进行修改,会对原方法的变量的值影响;

1.5 匿名对象

没有起名字的对象,就是匿名对象;

Person p = new Person();

new Person();

匿名对象的特点:

黑马程序员java培训就业班笔记集合体系总结

1、Collection:

集合框架的由来:因为每一个容器对象的自身的数据结构不同,所以对它们进行单独的描述和对象封装,并非断的向上抽取共性内容,这样变形成了集合框架。

概念:集合就是一个容器、用来存储对象、长度可变。

理解:其实班级就是一个容器,班上的每一个学生都是单独封装了功能的对象,因为班级中的人数由于有人请假天天都再转变,所以长度是可变的,

常见方式:

1、增加:

add();增加一个元素

addAll();增加一部份元素。

2、删除:

Remove();删除一个元素,会返回boolean类型,其实用到是equals方式,所以判断是不是有符合要求的元素。若是删除成功会改变集合的长度。下面同理。

removeAll();删除全数

Clrea();清空容器

总结:在这里要尤其注意,面试题中常常考到。

3、判断:

Contains();是不是包括,也就说要所有的都包括在其中才算包括,不然不算包括。

isEmpty();集合是不是为空

Size();集合长度。

4、取:

retainAll();取交集。 理解总结:

班级就是一个容器,班级中进来一名新生就是Add()添加一个元素,来了一堆同窗就是addAll,班上出去一个学生就是remove删除一个,出去一部份就是removeAll删除一部份,班级是不是有人,isEmpty,班上是不是包括张三contains,班上有多少人size。班上是不是包括隔壁班的同窗retainAll.去交集。

集合利用细节:

1、直接存储大体数据类型值也是可以的,因为后有自动装箱,会将大体数据类型转成对象,绝对不行。Eg:(3)

2、集合对象中存储的实际上是对象的元素的引用。

3、Add的参数是Object类型,可以接收所有的类型的对象,会出现向上转型,掏出元素时类型仍是Object不能利用具体对象的特有内容,想要利用特有内容向下转型。Eg:Object obj="obj";想要掏出访问子类的特有方式,向下转型,String

netty黑马程序员笔记

netty黑马程序员笔记

Netty是一个基于Java NIO的异步事件驱动的网络应用框架,它的设计目标是提供一个高性能、高可靠性的网络编程解决方案。作为网络通信领域的优秀框架,Netty在服务端程序的开发中发挥着重要作用。本文将围绕Netty的相关知识点展开讲解,以帮助黑马程序员更好地理解和应用Netty。

一、Netty的核心组件

1. Channel(通道):Channel是Netty中最基本的概念,它用于和远程节点进行通信。在Netty中,数据通过Channel进行读写,Channel相当于传统IO编程中的Socket。

2. EventLoop(事件循环):EventLoop是Netty的核心,用于处理所有的事件,包括接收连接、读写数据等。每个Channel都会被关联到一个EventLoop,一个EventLoop可以被多个Channel共享。

3. ChannelHandler(事件处理器):ChannelHandler用于处理Channel中的事件,比如读写数据、连接建立与关闭等操作。每个Channel都可以关联多个ChannelHandler,ChannelHandler之间形成一个处理链,通过这个链来处理Channel中的事件。

4. ChannelPipeline(事件处理链):ChannelPipeline是ChannelHandler的容器,它负责管理ChannelHandler的调用顺序。当有事件发生时,ChannelPipeline会依次调用关联的ChannelHandler进行处理。

二、Netty的生命周期

1. ChannelOption(通道选项):ChannelOption用于设置Channel的参数,比如TCP_NODELAY、SO_KEEPALIVE等。通过设置ChannelOption,可以影响到Channel的行为。 2. ChannelConfig(通道配置):ChannelConfig用于配置Channel的基本参数,比如接收缓冲区大小、发送缓冲区大小等。通过配置ChannelConfig,可以更好地控制Channel的性能和行为。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档