搜档网
当前位置:搜档网 › 尚学堂-马士兵Struts2教学视频之Struts2 学习笔记

尚学堂-马士兵Struts2教学视频之Struts2 学习笔记

Struts2 学习笔记

---wjt276 [二○一○年一月五日完]

目录

01 Struts2-Action (5)

一、Struts作用: (5)

二、搭建Struts2的运行环境: (5)

三、Namespace (6)

四、标签 (6)

五、Action (6)

六、路径问题的说明 (8)

七、Action的动态调用方法 (8)

八、Action通配符(wildcard)的配置 (9)

九、Action的属性接收参数 (10)

1、在Action添加成员属性接受参数 (10)

2、域模型(Domain Model) (10)

3、ModelDriven接收参数 (11)

十、Action属性接收参数中文问题 (12)

十一、简单数据验证 (12)

十二、访问Web元素 (14)

一、方法一:ActionContext方式 (15)

二、方式二:Ioc(控制反转)—推荐使用 (15)

三、方式三:获取原类型 (16)

四、方式四:获取原类型-控制反转 (17)

十三、Struts2配置文件模块化包含(include) (17)

十四、默认的Action (18)

十五、Action总结 (18)

02 Struts2-Result (19)

一、Result类型 (type) (19)

二、全局结果集(Globle Result) (20)

三、动态的结果集(dynamic result) (21)

四、带参数的结果集 (21)

五、Result总结 (22)

六、项目经理: (22)

03 OGNL表达式语言 (23)

04 Struts2-Tags (28)

Struts2标签目录 (28)

一、property标签 (28)

二、set标签 (29)

三、bean标签 (29)

四、标签-少使用 (29)

五、If elseif else (30)

六、Iterator标签 (31)

七、Theme (31)

05设计约定(编码规定) (32)

06 项目开发顺序 (32)

07 声明式异常处理 (33)

08 国际化 (35)

一、国际化资源文件 (35)

二、Java国际化 (35)

Struts学习笔记第3页共39页

三、Struts2国际化 (35)

1、Action级别 (35)

2、Package级别 (36)

3、Application级别 (36)

四、资源文件中的参数处理 (37)

五、国际化-动态语言切换 (37)

09 自定义拦截器 (38)

10 类型转换 (38)

Struts2总结 (39)

目录

Action

?简单数据校验

Result

常用配置文件

OGNL & ValueStack

Tags

---------------------Project

?类型转换、上传与下载、interceptor、防止重复提交 MVC思想深入剖析

源码解读

其他话题

Struts学习笔记第5页共39页

01 Struts2-Action

一、Struts作用:

将请求与结果分开

二、搭建Struts2的运行环境:

1、建立Web项目;

2、建立Struts2的配置文件(struts.xml);

将Struts2的空项目中的配置文件(struts.xml)复制到项目的src目录下。

配置如下:

/hello.jsp

3、复制Struts2相应的jar包及第三方包。

将空项目中lib目录中的除junit和spring-test之外的所有文件复制到项目的WebRoot/WEB-INF/lib目录下

4、修改对应的web.xml,建立struts2的filter(参考struts自带的项目),添加如下配置:

struts2

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

struts2

/*

三、Namespace

Namespace决定了action的访问路径,默认为“”,可以接收所有路径的action,如果没有找到相应的namespace时,则使用namespace为空的action

Namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action、/xxx/index.action、或者/xxx/yyy/index.action.

Namespace最好也用模块来进行命名。

namespace :对应与项目名称后面的"/"(例如Struts2_0100_Introduction后面的"/")

(http://localhost:8080/Struts2_0100_Introduction/)

四、标签

是用来解决重名的问题,例如当系统的前台和后台都有一个action名叫hello,这时就需要用package来区分。前台后台

struts2中的package与java的package是相同的作用的。

五、Action

具体视图的返回可以由用户自己定义的Action来决定

具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容,有三种手段:

/ActionIntroduction.jsp

注:标签中的class属性是表示action的对应的类(这个类是一个普通Java类),当访问这个action时会创建这个类成为一个对象,然后执行这个对象中的execute方法()(execute方法返回类型为String)。

第一种:Action 普通Java类

public class IndexAction1 {

public String execute() {

return"success";

}

}

标签中class属性省略时,则默认执行com.opensymphony.xwork2.ActionSupport类中的execute方法,而这个方法返回一个字符串常量SUCCESS(常量值为:”success”).

第二种:Action 实现com.opensymphony.xwork2.Action接口,这个接口中定义了一些常量和一个execute 方法,我们重写execute()方法就可以了。

import com.opensymphony.xwork2.Action;

public class IndexAction2 implements Action {

@Override

public String execute() {

//return "success";

return this.SUCCESS;//SUCCESS常量值为:"success"

}

}

第三种:Action 继承com.opensymphony.xwork2.ActionSupport类,而这个类又实现了

com.opensymphony.xwork2.Action接口,我们重写execute()方法就可以了。

import com.opensymphony.xwork2.ActionSupport;

public class IndexAction3 extends ActionSupport {

@Override

public String execute() {

//return "success";

return this.SUCCESS;//SUCCESS常量值为:"success"

}

}

注:第三种Action是我们需要使用的方式,因为这个类不担实现了com.opensymphony.xwork2.Action 接口,更重要的是它已经帮我封装了许多其它有用的方法。

六、路径问题的说明

struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。

虽然可以用redirect方式解决,但redirect方式并非必要。

解决办法非常简单,统一使用绝对路径。(在jsp中用request.getContextRoot方式来拿到webapp的路径)或者使用myeclipse经常用的,指定basePath

还有另一种方式,就是在标签中,指定标签值,这样就使用统一绝对路径。

<%

String path = request.getContextPath();//

String basePath =

request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+ "/";

%>

…………

注:标签:当前页面中所有连接都会在前面加上base地址。

七、Action的动态调用方法

Action执行的时候并不一定要执行execute方法,我们可以指定Action执行哪个方法:

1、方法一(通过methed属性指定执行方法):

可以在配置文件中配置Action的时候用method=来指定执行哪个方法

/user_add_success.jsp

这样,只要在action的对象中有一个add的方法,并且返回类型为String就可以了。如果没有method属性,则默认执行execute()方法。

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {

public String add() {

return SUCCESS;

}

}

2、动态方法调用DMI(推荐)

可以在url地址中动态指定action执行那个方法。Url地址如下:

http://localhost:8080/Struts2_0500_ActionMethod/user/user!add

方法:action + ! + 方法名

注:只要Action对象中有这个方法,并且返回类型为String就可以调用。

这样Struts.xml配置文件中不需要配置methed属性。代码如下:

/user_add_success.jsp

Action类:

public class UserAction extends ActionSupport {

public String add() {

return SUCCESS;

}

}

总结:推荐使用第二种动态方法调用DMI,因为第一种需要大量的Action配置,后者可以在url中动态指定执行action中哪个方法。

八、Action通配符(wildcard)的配置

使用通配符,将配置量降到最低, 不过,一定要遵守"约定优于配置"的原则

1、通配符

星号(*) 表示所有

{数字}表示第几个通配符

例如:Student* 那么{1}代表第一个星号(*)

*_* 那么{1}代表第一个星号(*) ,{2}代表第二个星号(*)

2、实例

method="{1}">

/Student{1}_success.jsp

/{1}_{2}_success.jsp

解释:第一个Action的名称为name=”Student*”method=”{1}”,表示所有Action以Student开始的都会执行这个Action,并且执行Student后字符为方法名的方法,例如:访问的Action为Studentadd,会执行这个Action(Student*),并且执行add的方法.因为{1}在这里代表add,并且返回/Studentadd_success.jsp 页面。

第二个Action的名称name=”*_*”method=”{2}”class=”…action.{1}Action”表示所有Action 中包含下划线(“_”)都会执行这个Action,例如:Teacher_add,那么会执行这个Action,并且Action对应的类为TeacherAction,且执行Action中的add方法,返回结果页面为/Teacher_add_success.jsp,因为在这里的{1}表示Teacher,{2}表示add

3、匹配顺序

当匹配的Action有两个以上时,则会按匹配精确度高的那个Action,当有个相同的匹配精确度时,则按先后顺序进行。

九、Action的属性接收参数

Action中三种传递并接受参数:

1、在Action添加成员属性接受参数

例如请求的URL地址:

http://localhost:8080/Struts2_0700_ActionAttrParamInput/user/user!add?name=a&age=8

其中传递了两个参数:name和age,其值分别为:a、8,此Action执行的是add()方法。

那我们只要在user这个Action对象中添加这两个成员属性并生成set、get方法。

public class UserAction extends ActionSupport {

private String name;

private int age;

public String add() {

System.out.println("name=" + name);

System.out.println("age=" + age);

return SUCCESS;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.sodocs.net/doc/6410984350.html, = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

2、域模型(Domain Model)

就是利用对象域来进行传递和接受参数

例如请求的URL地址:

http://localhost:8080/Struts2_0800_DomainModelParamInput/user/user!add?https://www.sodocs.net/doc/6410984350.html,=a &user.age=8

其中,访问的是namespace=”/user” action的name=”user” Action所执行的方法method=”add”

利用对象域user来传递参数,为对象的属性赋值(https://www.sodocs.net/doc/6410984350.html,=a user.age=8)

注:需要一个对象user并且这个对象需要有两个成员属性,且具有get、set方法。

然后在Action中添加一个User对象的成员属性。并且有get、set方法,就可以了。

//User对象

public class User {

private String name;

private int age;

public String getName() {

return name;

}

public void setName(String name) {

https://www.sodocs.net/doc/6410984350.html, = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

//Action类

public class UserAction extends ActionSupport {

private User user;

//private UserDTO userDTO;

public String add() {

System.out.println("name=" + user.getName());

System.out.println("age=" + user.getAge());

return SUCCESS;

}

public User getUser() {

return user;

}

public void setUser(User user) {

https://www.sodocs.net/doc/6410984350.html,er = user;

}

}

3、ModelDriven接收参数

使Action实现com.opensymphony.xwork2.ModelDriven(在实现接口时需要使用泛型,否则使用时需要转型)中利用其getModel()方法返回对象模型,从而获得传入的参数。

例如URL如下:

http://localhost:8080/Struts2_0900_ModelDrivenParamInput/user/user!add?name=a &age=8

其:访问的是namespace=”/user” action的name=”user” Action所执行的方法method=”add”,其传入了两个参数:name=a,age=8。

参数被传入至Action后,会被ModelDriven对象根据参数名自动赋值给User对象相应的属性而生成User对象,并且由getModel()返回。那么我们在Action中就可以利用这个对象了。

注意:传入的参数名需要与对象模型中的成员属性一致。

对象模型User:

public class User {

private String name;

private int age;

public String getName() {

return name;

}

public void setName(String name) {

https://www.sodocs.net/doc/6410984350.html, = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

Action对象

import com.opensymphony.xwork2.ActionSupport;

import com.opensymphony.xwork2.ModelDriven;

public class UserAction extends ActionSupport implements ModelDriven{ private User user = new User();

public String add() {

System.out.println("name=" + user.getName());

System.out.println("age=" + user.getAge());

return SUCCESS;

}

@Override

public User getModel() {

return user;

} }

十、Action属性接收参数中文问题

如果表单提交数据中有中文时,尽量使用post方式。

需要在Struts.xml配置文件中加入一个常量配置,如下:

method="add">

/user_add_success.jsp

但是,在Struts2 2.7之前,这个配置无效,需要其它方法设置。如下:

手动在web.xml中在Struts过滤器之前配置一个过滤器用于解决中文的问题。

十一、简单数据验证

使用addFieldError方法和s:fieldError标签简单处理数据校验

场景:对一个用户名进行验证,如果用户名不合法,则显示给客户端查看信息。

URL请求地址:

http://localhost:8080/Struts2_1100_SimpleDataValiation/user/user!add?name=a

分析:访问的Struts2配置,namespace=”/user” action的name=”user” Action所执行的方法method=”add”并且传入了一个参数name=a.如下:

/user_add_success.jsp

/user_add_error.jsp

根据配置文件可以得知action所对应的类为https://www.sodocs.net/doc/6410984350.html,erAction,并且具有两个结果集(success和error).代码如下:

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {

private String name;

public String add() {

if(name == null || !name.equals("admin")) {

//addFieldError 添加错误信息,可以在客户端访问到。

this.addFieldError("name", "name is error");

this.addFieldError("name", "name is too long");

return ERROR;

}

return SUCCESS;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.sodocs.net/doc/6410984350.html, = name;

}

}

根据Action类代码,可以看到Action是利用Action的成员属性(name)来接受参数值,并且使用this.addFieldError()方法添加错误信息,以便前台可以访问到。

this.addFieldError(name, errorMessage);

注:此方法是使用继承了ActionSupport父类的

name:可以是傻的属性名称,但一般建议使用哪个成员属性出题了,就用那个。当前是因为name没有通过验证,所以使用name errorMessage:添加的信息

在客户端获取这些信息,如下:

User Add Error!


注:使用标题,需要使用<%@taglib>命令引用Struts2的标签库如下:

<%@taglib uri="/struts-tags"prefix="s"%>

1、标签:获取使用addFieldError()方法添加的信息。

FiledName:指定信息的名称。

Theme: 指定显示的主题。

注:使用此标签获取的错误信息,Struts强制添加了css的修饰。生成的HTML代码如下(不长用):

  • name is error
  • name is too long

Class=”errorMessage”是Struts2已经设置好的一个css了。这个方式不方便我们自定义样式。

2、:这是标签的写方式,会在页面上产生一个链接,点击后显示如下(Struts2生成的一些信息):

3、标签:获取值堆栈属性所对应的值。

注:value:指定值堆栈的属性名及数据下标等。

例如:value=”a”获取Action类的成员属性a的值

Value=”errors”获取errors属性的对象Map值

Value=”https://www.sodocs.net/doc/6410984350.html,”获取errors属性的对象Map的key为name的value

Value=”https://www.sodocs.net/doc/6410984350.html,[0] 获取errors属性的对象Map的key为name的value的第一个元素的值。

注:如果获取Action Context中的Key值,需要在前面加#(井号)

例如:

十二、访问Web元素

取得Map类型request,session,application,真实类型 HttpServletRequest, HttpSession, ServletContext的引用:

1.前三者:依赖于容器

2.前三者:IOC (只用这种)

3.后三者:依赖于容器

4.后三者:IOC

一、方法一:ActionContext方式

一般在Action类的构造方法、或execute()方法中获取。

public class LoginAction1 extends ActionSupport {

private Map request;

private Map session;

private Map application;

public LoginAction1() {

request = (Map)ActionContext.getContext().get("request");

session = ActionContext.getContext().getSession();

application = ActionContext.getContext().getApplication();

}

public String execute() {

request.put("r1", "r1");

session.put("s1", "s1");

application.put("a1", "a1");

return SUCCESS;

}

}

然后在Jsp页面中获取相关web元素。

User Login Success!


| <%=request.getAttribute("r1") %>

| <%=session.getAttribute("s1") %>

| <%=application.getAttribute("a1") %>




注:因为request、session、application对象Struts2将在放入到Action Context中,因此需要使用#key来访问对象们。

后面的是java脚本代码的访问方式。

二、方式二:Ioc(控制反转)—推荐使用

让Action类实现RequestAware、SessionAware、ApplicationAware接口,然后重写他们的set方法(setRequest、setSession、setApplication),通过依赖注入、控制反转(原来自己控制,现在由别人来控制值。)

import org.apache.struts2.interceptor.ApplicationAware;

import org.apache.struts2.interceptor.RequestAware;

import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction2 extends ActionSupport implements RequestAware,SessionAware, ApplicationAware {

private Map request;

private Map session;

private Map application;

//DI dependency injection依赖注入

//IoC inverse of control控制反转

public String execute() {

request.put("r1", "r1");

session.put("s1", "s1");

application.put("a1", "a1");

return SUCCESS;

}

@Override

public void setRequest(Map request) {

this.request = request;

}

@Override

public void setSession(Map session) {

this.session = session;

}

@Override

public void setApplication(Map application) {

this.application = application;

}

}

在视图(JSP)页面中获取相关对象,同方式一。

三、方式三:获取原类型

获取是的HttpServletRequest/HttpSession/ServletContext

public class LoginAction3 extends ActionSupport {

private HttpServletRequest request;

private HttpSession session;

private ServletContext application;

public LoginAction3() {

request = ServletActionContext.getRequest();

session = request.getSession();

application = session.getServletContext();

}

public String execute() {

request.setAttribute("r1", "r1");

session.setAttribute("s1", "s1");

application.setAttribute("a1", "a1");

return SUCCESS;

}

}

四、方式四:获取原类型-控制反转

首先需要Action实现org.apache.struts2.interceptor.ServletRequestAware接口,然后重写setServletRequest()方法,获取HttpServletRequest对象,再通过HttpServletRequest对象取昨HttpSession和ServletContext对象。

import javax.servlet.ServletContext;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSession;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction4 extends ActionSupport implements ServletRequestAware { private HttpServletRequest request;

private HttpSession session;

private ServletContext application;

public String execute() {

request.setAttribute("r1", "r1");

session.setAttribute("s1", "s1");

application.setAttribute("a1", "a1");

return SUCCESS;

}

@Override

public void setServletRequest(HttpServletRequest request) {

this.request = request;

this.session = request.getSession();

this.application = session.getServletContext();

}

}

十三、Struts2配置文件模块化包含(include)

标签

当Struts配置文件比较多,需要模块化划分或分开成为多个配置文件时,这个功能比较好。

则需要使用标签把其它的配置文件引入到Struts.xml配置文件中就可以了。

例如:有一个login.xml配置文件如下:

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"https://www.sodocs.net/doc/6410984350.html,/dtds/struts-2.0.dtd">

class="https://www.sodocs.net/doc/6410984350.html,er.action.LoginAction{1}">

/user_login_success.jsp

则需要在struts.xml文件中使用标签将其引入就可以了。Struts.xml如下

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"https://www.sodocs.net/doc/6410984350.html,/dtds/struts-2.0.dtd">

十四、默认的Action

当用户访问的namespace下一个不存在的Action,则会将使用默认的Action。

使用标签其中name属性指向下面已经定义的Action名称了。

/default.jsp

当前访问namespace=”/”下不存在的Action时,则返回自动转到访问/default.jsp页面。

十五、Action总结

1、实现一个Action的最常用的方式:从ActionSupport继承

2、DMI动态方式的调用:!

3、通配符配置:* {1} {2}

4、接收参数的方式(一般属性或DomainModel来接收)

5、简单参数验证addFieldError

a)一般不使用Struts的UI标签

6、访问Web元素

a)Map类型

i.IoC

ii.依赖Struts2

b)原始类型

i.IoC

ii.依赖Struts2

7、包含文件配置

02 Struts2-Result

一、Result类型 (type)

1、dispatcher

运用服务器跳转 jsp forward

不可以是Action,只可以跳转到视图

2、redirect

客户端跳转(重定向)-url发生变化

不可以是Action,只可以跳转到视图

3、chain

跳转到Action (forward action)

可以动用到Action

在访问Action时,Action前面不要加”/”

4、redirectAction

客户端跳转到Action――-url发生变化

5、freemarker

6、httpheader

发送一个http头

7、stream

下载

8、velocity

9、xslt

10、plaintext

返回页面的源码

11、titles

把页面分成几块,每个页面都可以动态的指定

/r1.jsp

/r2.jsp

r1

r2

注:当访问不同的namespace下的Action时,则使用如下方式:

dashboard//Action名称

/secure//namespace值

二、全局结果集(Globle Result)

当有多个Action使用同一个结果集时,则可以使用全局结果集(Globle Result),如下:

/main.jsp

/index.jsp

/user_success.jsp

/user_error.jsp

Action所对应的Action类如下:

UserAction

public class UserAction extends ActionSupport {

private int type;

public int getType() {

return type;

}

public void setType(int type) {

this.type = type;

}

@Override

public String execute() throws Exception {

if(type == 1) return"success";

else if (type == 2) return"error";

else return"mainpage";

}

}

UserAction返回的结果集中有”mainpage”,但是user的Action中并没有”mainpage”的Rsult,这时就会使用全局的结果庥(global-result),这人结果集中有”mainpage”

当其它不同的package需要使用这个全局的Result时,则需要使用标签中的extends属性来指定继承包含全局的package就可以了。如下:

/admin.jsp

这时package=”user”中的结果集就可以被package=”admin”中的Action使用了。

struts1学习笔记

struts1开发学习笔记 使用一个简单的例子记录struts1开发过程。 0、 描述 主要功能描述: index 界面上只有两个超链接,分别可以打开录入产品界面和显示产品列表界面。 newProduct.jsp 是录入的界面,searchProduct.jsp 是查询列表的界面。 ProductAction.java 是处理逻辑的action 简单描述流程图: 1、 构建环境 在Myeclipse 中,新建一个工程StrutsTest ,选择该工程,右键Myeclipse->add sruts capapibality ,弹出界面,选择struts1.2支持。如下图所示: 添加完struts 支持后,lib 目录下会增添struts 的jar 包、增添struts 的配置文件: /WEB-INF/struts-config.xml 、同时在web.xml 中增添了struts 的配置。 2、 代码编写

2)创建工具类Util.java,从数据库连接池中获得连接。需要两个步骤 第一步:在WebRoot/META-INF/下新建一个context文件,通过jndi方式配置数据源, 第二步:在util类中读取配置获得连接,util.java如下:

3)创建工具类EncodingFilter.java,自定义过滤器,并在web.xml中配置,参考web.xml 配置中内容。EncodingFilter.java的内容如下:

4)修改web.xml,指定首页为index.jsp。文件内容如下:最后定义了一个fileld 的过滤器,是用来过滤字符编码的,后面会提到。

马原第二章 实践与认识及其发展规律

第二章 实践与认识及其发展规律 实践的观点是辩证唯物论的认识论之第一的和基本的观点。 第一节 认识与实践 一、实践是认识的基础 (一)科学的实践观 中国古代哲学中,实践被称为“践行”“实行”“行”,这里的行都主要指道德伦理行为。 西方哲学史上,亚里士多德研究实践,康德也研究实践,前者是专指人的生命活动,后者专指道德实践。 马克思在《关于费尔巴哈的提纲》中阐明了实践是感性的、对象性的物质活动,认为:“全部社会生活在本质上是实践的”,强调哲学的重要使命在于指导实践改造世界。 1、实践的含义 实践是人们改造客观世界的一切物质性活动。 两层基本含义: 其一,凡是实践都是以人为主体、以客观事物为对象的物质性活动。(不是纯主观的思维活动) 其二,实践是一种直接现实性活动,它可以把观念的存在变为现实的存在。(主观见之于客观的活动) 2、实践的基本结构 实践活动是以改造客观世界为目的、主体与客体之间通过一定的中介发生相互作用的过程。 (1)实践主体

实践主题是指具有一定的主体能力、从事社会实践活动的人。是实践活动中自主性和能动性的因素,担负着设定实践目的、操作实践中介、改造实践客体的任务。 (2)实践客体 实践客体,是实践活动所指向的对象。 客观世界≠客体,只有客观世界中被纳入实践活动的对象才能被认为是实践的客体。 (3)实践中介:各种形式的工具、手段以及运用、操作这些工具的程序和方法。 它包括:作为人的肢体延长、感官和大脑延伸、体能放大的工具系统;语言 (4)主体和客体的关系 主体和客体通过中介产生三种关系: ①认识关系:反映与被反映的关系。 ②实践关系:改造与被改造的关系。 ③价值关系:客体或主体活动对于主体需要的满足程度。 3、实践的三个基本特征 (1)实践具有直接现实性:区别于人的纯主观活动; (2)实践具有自觉能动性:区别于动物的本能活动; (3)时间具有社会历史性:区别于旧唯物主义的实践观。 (二)实践在认识中的决定作用 1、实践是认识的来源 认识的来源只有一个,但获得认识的途径有两个:一是亲自实践获得的经验;二是通过知识的学习和传递获得间接经验。 但不论是直接经验还是间接经验都是实践的产物。

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。 (4)namespace属性:表示浏览器访问的路径,此属性可以省略不写,默认为空,当此属性 为空时,该package里的action可以匹配浏览的任何请求的action。 (5)abstract属性:此属性的值为false表示此package非抽象的,若为true表示此package

#马原笔记#第二章 第二节

第二章 认识的本质及发展规律 第二节 真理与价值 一、 真理的客观性、绝对性和相对性 (一) 真理的客观性(真理本身是主观的 客观:普遍有效的) 、 马克思主义:真理是对客观事物及其规律的正确反映。所谓正确反映,是指真理是在实践基础上主体认识对客体本质和规律的符合、一致和接近。 马克思主义真理观与旧唯物主义真理观的“符合论”的区别: 它认为真理与客观事物之间的符合关系,是建立在人类能动地改造世界的实践基础上,是通过人的能动的反映活动而实现的,并且必然随着人类实践的发展而拓展和深化。 真理的客观性表现在:(以下答案不够完整,应从“客观是普遍有效”来解释) 1. 指真理内容的客观性,即真理作为对客观事物及其规律的正确反映,本身也包含着 不以人的意志为转移的客观内容 2. 指真理检验标准的客观性,即真理之所以是真理,并不是因为某位天才人物决断, 而是实践检验的结果,而实践本身是一种客观的物质性活动 (二) 真理的绝对性和相对性 p77-78 真理的绝对性与相对性的辩证关系: 1. 相互依存。 2. 相互包含。 经典真理观(看天) :反映论、可知论、符合论(一元性) 非经典真理观:共识论(集体知觉) ) 相互依存,是说人们对于事物及其本质和规律的每一个正确认识,都是在一定范围内、一定程度上、一定条件下的认识,因而必然是相对的和有局限的;但是,在这一定范围内、一定程度上、一定条件下,它又是对客观对象的正确反映,因而它又是无条件的、绝对的。 相互包含,一是说,真理的绝对性寓于真理性的相对性之中。任何真理所包含的客观内容都只能使人们在特定历史条件下所把握到的,都只是对客观世界及其事物的一定范围、一定程度的正确反映。二是说,真理的相对性必然包含并表现着真理的绝对性。任何真理都与谬误有本质的区别,标志着人们在一定范围内和一定层次上达到了对于无限发展着的物质世界的正确认识,包含着确定的客观内容。

Struts2+Hibernate开发笔记

Struts2 + Hibernate开发笔记(一) 由于开发任务紧张,因为这里的开发笔记,仅用于记录遇到的几个struts2和hibernate结合开发的现象.不对其做分析. 1. 在使用struts2时,页面和action之间的传值 这是struts2和struts1最大的区别. Struts2中,action和jsp页面之间的信息交互,是通过action中定义的成员变量来实现的. 例如,我在一个名为EstateAction的类中有如下定义 public class CityAction extends BaseAction { private MthCity mthCity ; private String cityName; private Long cityId private int couter; public String loadCity() throws DataAccessException, BaseException{ counter ++; return "city"; } } 然后,这里上面的类中的成员类MthCity的定义如下 public class MthCity implements java.io.Serializable { private Long cityId private String cityName; public MthCity() { public Long getCityId() { return this.cityId; } public void setCityId(Long cityId) { this.cityId = cityId; public String getCityName() { return this.cityName; } public void setCityName(String cityName) { this.cityName = cityName; } } 这是一个Hibatenate使用的数据对象POJO类. 有了这两个类后,我们来看看Struts2的Action和JSP页面之间是如何交互的 一. JSP -> Action Jsp页面 以下是一个jsp页面submit.jsp.这个页面只有一个功能,就是向struts提交申请 <%@ page language="java" contentType="text/html; charset=gbk"%> <%@ include file="/common/taglibs.jsp"%>

自考本科《马原》第二章第二节重要考点:认识的辩证运动

自考本科《马原》第二章第二节重要考点:认识的辩证运动当你能飞的时候就不要放弃飞,当你能梦的时候就不要放弃梦,当你能爱的时候就不要放弃爱。生命太过短暂,今天放弃了明天就不一定能得到! 第二章认识的本质及其规律 第二节认识的辩证运动 认识是在实践中主体对客体的能动的反映,是一个辩证的发展过程。在实践中,人们先是产生感性认识,在感性认识积累的基础上,产生了理性认识,然后在理性认识的指导下去进行新的实践;在新的实践中又产生新的认识。人的认识就是从实践到认识、再从认识到实践这样一个不断反复、无限发展的过程。 一、从感性认识到理性认识 1、认识的感性形式和理性形式 了解即可,常以选择题出现。 认识是主体对客体的反映,这种反映有两种基本形式,即感性形式和理性形式。这两种形式是由认识主体和认识客体的特征所决定的。 先从客体方面来看。任何客体即认识对象都是现象与本质的统一体。反映事物现象的感性形式和反映事物本质的理性形式。 再从主体方面来看。作为认识主体的人,他的反映器官可以分为两个部分:一部分是感觉器官;一部分是思维器官(人脑)。一般地可以把感觉器官看作主要是反映客体的现象、外部联系,而思维器官则反映客体的本质、内部联系。 2、感性认识和理性认识 一般了解,常以选择题出现。 感性形式产生于感性认识,感性认识是认识的初级阶段。感性认识分为感觉、知觉和表象三种形式。感觉是人脑通过人的感觉器官眼、耳、鼻、舌、身直接反映事物个别特性的认识。知觉是比感觉高一级的反映形式,它是感觉的综合,是把各种感觉集中在一起并把它们组合起来,形成对对象各方面外部特性的整体的认识。表象是事物感性形象在大脑中的再现,是指曾经作用于人的感觉器官而引起感觉的事物在离开人的感官以后,它的感性形象在人的大脑中重新浮现。 理性形式产生于理性认识,理性认识是认识的高级阶段。理性认识包括概念、判断和推理三种形式。概念是对事物本质、全体的反映,它包含同类事物共同的、一般的特性。判断是概念的展开,是一种利用概念对事物做出某种判定的认识形式,这种判定反映了事物之间的内部联系和关系。推理是从事物的联系和关系中由已知合乎规律地推出未知的认识形式,它由判断所构成,是人们获得新知识的重要手段。

JavaEE课堂笔记f

1.Struts2在jsp页面中使用标签实现对集合的迭代,其中var属性表示要迭代的集合对象。标签实现下拉列表的功能,其中listKey属性表示其生成的HTML代码option 标签的value,listValue属性表示用作字面显示的值。标签会定义一个新的Bean,而scope属性指定将这个Bean放到相应的作用域。 2.MVC设计模式包括Model(模型)、View(视图)和Controller(控制器)三个层。Model 层一般是指Java Bean,View层一般是用jsp页面实现,Controller是控制跳转的,一般用Servlet 或相似功能的组件实现。而Struts2框架的核心控制器是StrutsPrepareAndExecuteFilter过滤器。 3.Hibernate配置文件中包括了数据库连接信息、数据库方言、其他属性等信息,不包括数据库表和实体类的ORM信息。在众多属性中,show_sql属性可以设置是否在控制台显示最终生成的SQL语句。 4.Struts2全局国际化,在创建资源文件后需要在struts.xml配置文件中添加对这些资源文件基本名的引用。 5.Spring的面向方面编程可以让我们将程序中涉及的分散的公用问题集中解决。 6.Http协议是一种无状态的协议,它不能记录用户的状态。我们可以通过get和post方法发送数据,其中get方法对请求参数有长度的限制,而post方法没有。 7.j sp中的EL可以访问JavaBean中存储的数据,EL表达式包括requestScope、sessionScope、applicationScope、param、pageContext等隐式对象。在Struts2中,EL表达式可以直接访问Action Bean中属性的值。 8.HQL和SQL语法相似,但HQL是面向对象的,而SQL是面向关系型数据库的。HQL的关键字不区别大小写,而语句中的实体类名、对象名、属性名等都是区别大小写的,这一点和Java语言类似。 9.Servlet在加载后的生命周期分为实例化、初始化、服务和销毁四个过程。 10.JSP的标准动作能实现页面转发的功能。 11.Servlet中的PrintWriter对象可以输出信息,该类型的对象可以通过response.getWriter()方法取得。 12.DWR一个能帮助我们简化Ajax开发的开源框架,在使用时,需要在dwr.xml配置文件中为JavaScript脚本暴露相应的Java类。 13.在struts.xml配置文件中标签用于配置要转向的下一个目标页面。 14.Hibernate将JDBC作了轻量级封装,使得Java程序员可以随心所欲的使用面向对象的编程思想来操纵数据库,但其本质上还是使用JDBC去和数据库进行交互。 15.SSH是JavaEE开发的经典搭配,Spring框架可以对其他框架进行整合,持久化层更可以有多种选择,除了Hibernate外,像MyBatis这样的开源框架也很受欢迎。 16在软件设计上Struts2没有跟Servlet API或struts有着紧密的耦合,因此在Struts2中可以不必使用Servlet API所提供的类和接口,但如果要使用,也可以通过多种方式实现(ServletActionContext类或实现相应接口)。同时Struts2的Action类也不用必须继承或实现struts框架提供的任何类或接口。 17Servlet API中,HttpServletResponse接口的sendRedirect()方法可以将浏览器重定向到另一个URL。而HttpServletRequest接口的getSession()方法可以取得本次会话的HttpSession类型的对象,HttpServletRequest接口的getParameter()方法可以获取客户端请求参数的数据。18依赖注入(DI)是一种开发模式,可以解除或减轻各组件之间相互依赖,相互制约的关系。

尚学堂马士兵Struts2教学视频之Struts2学习笔记

目录 01 Struts2-Action (5) 一、Struts作用: (5) 二、搭建Struts2的运行环境: (5) 三、Namespace (6) 四、标签 (6) 五、Action (6) 六、路径问题的说明 (8) 七、Action的动态调用方法 (8) 八、Action通配符(wildcard)的配置 (9) 九、Action的属性接收参数 (10) 1、在Action添加成员属性接受参数 (10) 2、域模型(Domain Model) (10) 3、ModelDriven接收参数 (11) 十、Action属性接收参数中文问题 (12) 十一、简单数据验证 (12) 十二、访问Web元素 (14) 一、方法一:ActionContext方式 (15) 二、方式二:Ioc(控制反转)—推荐使用 (15) 三、方式三:获取原类型 (16) 四、方式四:获取原类型-控制反转 (17) 十三、Struts2配置文件模块化包含(include) (17) 十四、默认的Action (18) 十五、Action总结 (18) 02 Struts2-Result (19) 一、Result类型 (type) (19) 二、全局结果集(Globle Result) (20) 三、动态的结果集(dynamic result) (21) 四、带参数的结果集 (21) 五、Result总结 (22) 六、项目经理: (22) 03 OGNL表达式语言 (23) 04 Struts2-Tags (28) Struts2标签目录 (28) 一、property标签 (28) 二、set标签 (29) 三、bean标签 (29) 四、标签-少使用 (29) 五、If elseif else (30) 六、Iterator标签 (31) 七、Theme (31) 05设计约定(编码规定) (32) 06 项目开发顺序 (32) 07 声明式异常处理 (33) 08 国际化 (35)

MyEclipse开发Struts2过程

MyEclipse开发Struts2过程 Struts2是Struts1.x的升级换代产品,但是并没有继承Struts1.x的思想和操作模式,而是一个完全不同的实现方式,所以即使学会了Struts1.x还是得从头学习Struts2,但是当你学会了Struts2后会发现这个产品对编程及配置有了很大的简化,使得程序员将更多的精力集中到业务逻辑编程方面,下面就在MyEclipse8.5M1平台下如何开发基于Struts2的Web应用系统的MVC模式中的VC部分作以简要的描述,M部分还是可以采用其他框架实现,例如Spring+Hibernate等。 (一)创建基于Struts2的Web项目 从MyEclipse的菜单中一次选择File\New\Web Project,在弹窗中填写该项目的名称信息,并且选择J2EE的版本,如图:

(二)添加Struts2支持 将鼠标定位到Package Explorer视窗的该项目名称上,单击右键,在弹出的菜单上依次选择MyEclipse\Add Struts Capabilities,在弹窗中选择Struts的版本为Struts2.x,单击“Next”按钮进入下一个窗口,选择要加入的支持类库,库的选择视项目需求而定,可以在后续开发过程中陆续加入,这里只选择Struts2 Core Libraries。完成这些操作后发现系统在src目录下添加了一个配置文件struts.xml,这个文件就是Struts2的核心配置文件,后续的操作都在此文件中进行。 (三)编写JSP页面代码 这里注意尽量使用Struts2的标签来编写JSP代码,所以要在页面代码开始部分引入标签库,即添加该行代码<%@ taglib prefix="html" uri="/struts-tags"%>,MyEclipse8.5M1目前还不支持基于Struts2的JSP模板,所以在新建JSP页面代码的时候,先选择基于Struts1.x模板,然后再手动修改,也就是把该页面代码中

Struts2_day03笔记

Struts2_day03 前一天内容 1 在action获取表单提交数据 (1)使用ActionContext类获取 (2)使用ServletActionContext类获取 (3)接口注入 2 结果配置 (1)全局结果页面和局部结果页面 (2)result标签type属性 - type属性值: -- 默认值是dispatcher做转发 -- redirect做重定向 -- chain转发到action -- redirectAction重定向到action 3 struts2提供获取表单数据方式 (1)属性封装 (2)模型驱动封装 (3)表达式封装 4 struts2获取数据封装到集合中 5 使用模型驱动和属性封装注意问题: (1)不能同时使用对同一个表单进行数据操作 6 表达式封装和模型驱动比较 (1)相同点:可以把数据封装到实体类对象里面 (2)不同的:表达式封装可以封装到多个实体类对象里面今天内容 1 ognl概述 2 ognl入门案例 3 什么是值栈 (1)servlet和action区别

(2)值栈存储位置 - 每个action对象里面有一个值栈对象 - 值栈对象里面有action引用 4 如何获取值栈对象 5 值栈内部结构 (1)root:list集合 (2)context:map集合 6 向值栈放数据 (1)s:debug标签 (2)向值栈放字符串 (3)向值栈放对象 (4)向值栈放list集合 - set方法 - push方法 - 定义变量,get方法 7 从值栈获取数据 (1)从值栈获取字符串 (2)从值栈获取对象 (3)从值栈获取list集合 - s:iterator标签使用 8 EL表达式获取值栈数据 (1)增强request里面getAttribute方法 9 ognl表达式#、%使用 OGNL概述 1 之前web阶段,学习过EL表达式,EL表达式在jsp中获取域对象里面的值 2 OGNL是一种表达式,这个表达式功能更加强大, (1)在struts2里面操作值栈数据 (2)一般把ognl在struts2操作:和struts2标签一起使用操作值栈 3 OGNL不是struts2的一部分,单独的项目,经常和struts2一起使用 (1)使用ognl时候首先导入jar包,struts2提供jar包

struts2_day03笔记

Struts2 框架第三天 今天重点内容安排: 第一天:struts2 开发流程、访问Action,Action方法调用,结果集类型 第二天:获取请求参数,请求数据校验机制,拦截器 1、V alueStack 值栈的存储原理和相关操作 2、Ognl 表达式语言语法 3、struts2 页面控制标签 4、struts2 form表单相关标签 重点难点:值栈和Ognl 1.值栈和Ognl表达式 1.1.什么是Ognl Ognl 对象导航图语言Object Graphic Navigation Language,类似EL,比EL ${}语法要强大很多,Struts2框架使用OGNL作为默认的表达式语言必须要引入struts标签库 EL Expression Language 表达式语言,用来获取JSP页面四个域范围数据 pageContext、request、session、application )

Ognl 主要用法: 1、访问OGNL上下文值栈对象获取数据(最重要) 2、操作集合对象(结合struts2 标签库使用)---- 生成checkbox 、生成select 1.2.什么是值栈ValueStack接口! 值栈ValueStack 实际上是一个接口,struts2 Ognl使用都是基于值栈完成的 Struts2 内部提供OgnlValueStack的接口实现类,实现了值栈接口! 前端控制器每一次请求都会创建一个值栈对象源码:

一次请求对应一个值栈对象值栈生命周期= request 生命周期的!! 值栈是struts2 一个数据结构,贯穿整个Action实例生命周期(request生命周期),一次请求对应一个Action实例,一个Action实例对应一个值栈实例 值栈保存了Action 和其它常用web对象的引用,通过值栈,间接操作这些对象!1.3.值栈的存储结构 1:采用标签查看值栈结构图:

自学笔记

2008年8月18日自学笔记 (1)虚拟对象系统(VOS)net跨语言集成的的特性来源于VOS的支持,即支持过程性语言也支持对象性语言,解决了不同语言系统间的相容性问题。 (2)元数据:对VOS中类型描述代码的称呼。元数据携带了原代码中类型信息的描述。(3)虚拟执行系统(Visual Executive System VES)是VOS的实现用来驱动运行环境,元数据的生成和使用、公共语言规范(Common Language Specification CLS)的满足性检查以及应用程序执行过程中的内存管理都由他完成。 (4)公共语言运行时CLR: 管理着代码的执行,是一种可操控的执行环境。 (5)公共语言规范(Common Language Spec ification CLS):是CLS定义的语言特性集合,主要用来解决互操作性问题。 (6)静态域(static): 无论建立多少个类的实例,内存中只存在一个静态数据的拷贝。非静态域在类的每次实例话时,每个实例都拥有一份单独的拷贝。 (7)只读域(readonly )与const区别:只能在域的定义中和它所属类的构造函数中进行修改,在其他情况下是“只读”的,只读域的值只有到程序运行时才形成;const型表达式的值在编译时形成。 (8)事件(Event):为类和类的实例提供了向外界发送通知的能力,形象地说,Event 就是类或对象用来“发送通知”的成员。索引指示器:可以想数组那样对对象进行索引访问。 (9)委托是引用方法的一种引用类型,类似于函数指针,二者的主要区别在于委托包括调用其方法的对象。委托是引用在另一个对象中定义的方法的一种类型安全而又可靠的方式。可以引用静态方法、虚拟方法或实例方法。委托广泛用于时间处理。 2008年8月21日C# Sytex (1)代码显示格式设置TextEditort->C# -> Formating->wrapping 解决方案显示设置tools->options->project and solutions->always show solutions (2)客户端状态管理:ViewState 存储要回传到自身的少量信息

Struts1学习笔记总结

Struts1 (1) Struts1和Servlet的关系 (1) 创建第一个Struts1项目 (1) 例子1: (3) 总结重点:struts1的工作流程(基于MVC模式的) (7) 一.普通的Servlet的工作流程 (7) 二.Structs1的工作流程(和上面的对比记忆) (8) Struts标签 (9) Bean标签 (9) html标签 (10) logic标签(逻辑标记) (12) i18n(国际化) (13) Struts1 Struts1和Servlet的关系 Jsp+Servlet+Javabean ActionForm和VO的区别: 一样的内容,不一样的作用 ActionForm只接收前台表单传来的数据 VO是conga后台提取的数据向前台传递 创建第一个Struts1项目 新建一个web项目,选择1.4即可 右键----MyEclipse----Add Struts Capacity

---------------Struts控制文件的路径 TLD(标签) 1) 2):显示信息 3):逻辑标签 struts-config.xml

韩顺平Spring笔记

①spring是什么? struts 是 web 框架 (jsp/action/actionfrom) hibernate 是 orm框架,处于持久层. spring 是容器框架,用于配置bean,并维护bean之间关系的框架 ?spring中有一个非常概念: bean (是java中的任何一种对象javabean/service/action/数据源./dao, ioc(控制反转inverse of control) di( dependency injection 依赖注入) ?画一个框架图 快速入门 开发一个spring项目. 1.引入spring的开发包(最小配置该包把常用的jar都包括, 还要写日志包 2.创建spring的一个核心文件 , [hibernate有核心 struts核心文件 ], 该文件一般 放在src目录下,该文件中引入 xsd文件: 可以从给出的案例中拷贝一份. 3.配置bean

韩顺平 4.在中,我们怎么使用 到spring 的applicationContext对象(容器对象) ApplicationContext ac=new ClassPathXmlApplicationContext(""); UserService us=(UserService) ("userService"); (); 5.细节讨论? 传统的方法和使用spring的方法 5.1使用spring ,没有new 对象,我们把创建对象的任务交给spring框架 5.2spring的运行原理图: 我们再看spring 对上面案例总结: spring实际上是一个容器框架,可以配置各种bean(action/service/domain/dao),并且可以维护bean与bean的关系,当我们需要使用某个bean的时候,我们可以getBean(id),使用即可. ioc是什么? 答:ioc(inverse of controll ) 控制反转: 所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器,而程序本身不再维护. DI是什么? 答: di(dependency injection) 依赖注入: 实际上di和ioc是同一个概念,spring设计者认为di更准确表示spring核心技术

JAVAWEB学习笔记

IDEA的使用 一、创建HTML页面 先创建一个项目 选择static web然后next确定文件名和文件地址 右击项目下的idea,new选择HTML file确定文件名和样式

出现HTML界面鼠标移到右边可选择浏览器查看效果 二tomcat的配置和安装 https://www.sodocs.net/doc/6410984350.html,/article/0a52e3f43d9f69bf62ed72f9.html 安装版和解压版的区别: tomcat exe是可执行的安装程序,只需要双击这个文件,就可以开始安装Tomcat 了。在安装过程中,安装程序会自动搜寻JDK和JRE的位置(或手动输入JRE路径,如C:\jdk1.4_0_11\jre)。安装完成后,在Windows系统的“开始”->“程序”菜单下会添加Apache Tomcat5.5菜单组。 tomcat zip是一个压缩包,只需要将它解压到硬盘上就可以了。还是建议下载tomcat 压缩包,通过解压缩的方式安装Tomcat,解压缩的方式也适用于其他的操作系统. 安装与配置: 1、安装版: 下载安装版,点击后,一路next,就直接安装成功。 配置环境变量为TOMCAT_HOME你的安装目录CATALINA_HOME你的安装目录。 这是最简单的安装方法,只要不出错就直接OK,然后你再去官网下载Administration Web Application,直接解压到你的安装目录,就可以直接使用了。 2、解压版: 下载解压版的,解压在你认为的适合的地方。 2.1、修改bin\startup.bat文件: 在第一行前面加入如下两行: SET JAVA_HOME=(JDK目录) SET CATALINA_HOME=(前面解压后Tomcat的目录) 如果需要使用shutdown.bat关闭服务器的话,也按照上面加入两行。

#马原笔记#第二章 第二节

第二章认识的本质及发展规律 第二节真理与价值 一、真理的客观性、绝对性和相对性 (一)真理的客观性(真理本身是主观的客观:普遍有效的) 经典真理观(看天):反映论、可知论、符合论(一元性) 非经典真理观:共识论(集体知觉) 马克思主义:真理是对客观事物及其规律的正确反映。所谓正确反映,是指真理是在实践基础上主体认识对客体本质和规律的符合、一致和接近。 马克思主义真理观与旧唯物主义真理观的“符合论”的区别: 它认为真理与客观事物之间的符合关系,是建立在人类能动地改造世界的实践基础上,是通过人的能动的反映活动而实现的,并且必然随着人类实践的发展而拓展和深化。 真理的客观性表现在:(以下答案不够完整,应从“客观是普遍有效”来解释) 1.指真理内容的客观性,即真理作为对客观事物及其规律的正确反映,本身也包含着 不以人的意志为转移的客观内容 2.指真理检验标准的客观性,即真理之所以是真理,并不是因为某位天才人物决断, 而是实践检验的结果,而实践本身是一种客观的物质性活动 (二)真理的绝对性和相对性p77-78 真理的绝对性与相对性的辩证关系: 1.相互依存。 相互依存,是说人们对于事物及其本质和规律的每一个正确认识,都 是在一定范围内、一定程度上、一定条件下的认识,因而必然是相对 的和有局限的;但是,在这一定范围内、一定程度上、一定条件下, 它又是对客观对象的正确反映,因而它又是无条件的、绝对的。 2.相互包含。 相互包含,一是说,真理的绝对性寓于真理性的相对性之中。任何真 理所包含的客观内容都只能使人们在特定历史条件下所把握到的,都 只是对客观世界及其事物的一定范围、一定程度的正确反映。二是说, 真理的相对性必然包含并表现着真理的绝对性。任何真理都与谬误有 本质的区别,标志着人们在一定范围内和一定层次上达到了对于无限 发展着的物质世界的正确认识,包含着确定的客观内容。

spring笔记

struts:web层,比较简单(ValueStack值栈,拦截器) hibernate:dao层,知识点杂 spring:service层,重要,讲多少用多少--> 【了解】 spring day01:基础(IoC控制反转、DI依赖注入)、整合Junit、整合web spring day02:AOP切面编程、JdbcTemplate spring day03:事务管理、SSH整合 1spring框架概述 1.1 什么是spring ●Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作 Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java 应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式)轻量级开源框架。 ●轻量级:与EJB对比,依赖资源少,销毁的资源少。 ●分层:一站式,每一个层都提供的解决方案 web层:struts,spring-MVC service层:spring dao层:hibernate,mybatis ,jdbcTemplate --> spring-data

尚学堂-马士兵Struts2教学视频之Struts2 学习笔记

Struts2 学习笔记 ---wjt276 [二○一○年一月五日完]

目录 01 Struts2-Action (5) 一、Struts作用: (5) 二、搭建Struts2的运行环境: (5) 三、Namespace (6) 四、标签 (6) 五、Action (6) 六、路径问题的说明 (8) 七、Action的动态调用方法 (8) 八、Action通配符(wildcard)的配置 (9) 九、Action的属性接收参数 (10) 1、在Action添加成员属性接受参数 (10) 2、域模型(Domain Model) (10) 3、ModelDriven接收参数 (11) 十、Action属性接收参数中文问题 (12) 十一、简单数据验证 (12) 十二、访问Web元素 (14) 一、方法一:ActionContext方式 (15) 二、方式二:Ioc(控制反转)—推荐使用 (15) 三、方式三:获取原类型 (16) 四、方式四:获取原类型-控制反转 (17) 十三、Struts2配置文件模块化包含(include) (17) 十四、默认的Action (18) 十五、Action总结 (18) 02 Struts2-Result (19) 一、Result类型 (type) (19) 二、全局结果集(Globle Result) (20) 三、动态的结果集(dynamic result) (21) 四、带参数的结果集 (21) 五、Result总结 (22) 六、项目经理: (22) 03 OGNL表达式语言 (23) 04 Struts2-Tags (28) Struts2标签目录 (28) 一、property标签 (28) 二、set标签 (29) 三、bean标签 (29) 四、标签-少使用 (29) 五、If elseif else (30) 六、Iterator标签 (31) 七、Theme (31) 05设计约定(编码规定) (32) 06 项目开发顺序 (32) 07 声明式异常处理 (33) 08 国际化 (35) 一、国际化资源文件 (35) 二、Java国际化 (35)

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

黑马程序员:三大框架Spring-day11笔记Spring事务管理机制 Spring事务管理的四个优点: 1.提供一致的对于不同的事务管理的API 2.支持声明式事务管理(重点) 3.编程事务管理(在开发中应用比较少) 4.优秀的整合与Spring的数据访问 我们重点讲解spring的事务管理的相关的API,还有声明式事务管理Spring事务管理主要提供了三个接口来完成 https://www.sodocs.net/doc/6410984350.html,.springframework.transaction.PlatformTransactionManager 这是一个事务管理器,可以来选择相关的平台(jdbc hibernate jpa…) 2.TransactionDefinition 它定义事务的一些相关信息例如隔离传播超时只读 3.TransactionStatus 它主要描述事务具体的运行状态 1.1.1PlatformTransactionManager 平台事务管理器 在不同的持久化层解决技术它的事务代码不一样。 JDBC开发 Connection con=……; con.setAutoCommit(false);//开启事务 con.rollback(); https://www.sodocs.net/doc/6410984350.html,mit(); Hibernate开发 Session session=….; Transaction t=session.beginTransaction(); https://www.sodocs.net/doc/6410984350.html,mit(); t.rollback();

PlatformTransactionManager接口API DataSourceTransactionManager 主要针对于JdbcTemplate开发MyBatis开发HibernateTransactionManasger主要针对于Hibernate开发JpaTransactionManager 主要针对于JPA开发。 1.1.2TransactionDefinition 它描述的是事务的定义信息。 在TransactionDefinition中定义了大量的常量

相关主题