搜档网
当前位置:搜档网 › SpringMVC入门学习资料

SpringMVC入门学习资料

SpringMVC入门学习资料
SpringMVC入门学习资料

SpringMVC

1.S pring-mvc介绍

1.1 Spring Web MVC是什么

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

另外还有一种基于组件的、事件驱动的Web框架在此就不介绍了,如Tapestry、JSF等。

Spring Web MVC也是服务到工作者模式的实现,但进行可优化。前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response)方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。

1.2Spring Web MVC能帮我们做什么

让我们能非常简单的设计出干净的Web层和薄薄的Web层;

进行更简洁的Web层的开发;

天生与Spring框架集成(如IoC容器、AOP等);

提供强大的约定大于配置的契约式编程支持;

能简单的进行Web层的单元测试;

支持灵活的URL到页面控制器的映射;

非常容易与其他视图技术集成,如Velocity、FreeMarker等等,因为模型数据不放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用);

非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API;

提供一套强大的JSP标签库,简化JSP开发;

支持灵活的本地化、主题等解析;

更加简单的异常处理;

对静态资源的支持;

支持Restful风格。

1.3Spring Web MVC架构

Spring Web MVC框架也是一个基于请求驱动的Web框架,并且也使用了前端控制器模式来进行设计,再根据请求映射规则分发给相应的页面控制器(动作/处理器)进行处理。首先让我们整体看一下Spring Web MVC处理请求的流程:

1.3.1、Spring Web MVC处理请求的流程

Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据)和服务层(行为)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。

View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。

Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作。

1.3.2、Spring Web MVC核心架构图

整个处理过程从一个HTTP请求开始:

1)DispatcherServlet接收到请求后,根据对应配置文件中配置的处理器映射,找到对应的处理器映射项(HandlerMapping),根据配置的映射规则,找到对应的处理器(Handler)。

2)调用相应处理器中的处理方法,处理该请求,处理器处理结束后会将一个ModelAndView类型的数据传给DispatcherServlet,这其中包含了处理结果的视图和视图中要使用的数据。

3)DispatcherServlet根据得到的ModelAndView中的视图对象,找到一个合适的ViewResolver(视图解析器),根据视图解析器的配置,DispatcherServlet将视图要显示的数据传给对应的视图,最后给浏览器构造一个HTTP响应。

DispatcherServlet是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项:

1)截获符合特定格式的URL请求。

2)初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久化层的WebApplicationContext建立关联。

3)初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。

核心组件:

1.DispatcherServlet:中央控制器,把请求给转发到具体的控制类

2.handlerMapping:映射处理器,负责映射中央处理器转发给controller时的映射策略

3.Controller:具体处理请求的控制器

4.ModelAndView:服务层返回的数据和视图层的封装类

5.ViewResolver & View:视图解析器,解析具体的视图

6.Interceptors:拦截器,负责拦截我们定义的请求然后做处理工作

1.4 Spring Web MVC优势

1、清晰的角色划分:前端控制器(DispatcherServlet)、请求到处理器映射(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)、处理器或页面控制器(Controller)、验证器(Validator)、命令对象(Command 请求参数绑定到的对象就叫命令对象)、表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。

2、分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要;

3、由于命令对象就是一个POJO,无需继承框架特定API,可以使用命令对象直接作为业务对象;

4、和Spring 其他框架无缝集成,是其它Web框架所不具备的;

5、可适配,通过HandlerAdapter可以支持任意的类作为处理器;

6、可定制性,HandlerMapping、ViewResolver等能够非常简单的定制;

7、功能强大的数据验证、格式化、绑定机制;

8、利用Spring提供的Mock对象能够非常简单的进行Web层单元测试;

9、本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。

10、强大的JSP标签库,使JSP编写更容易。

………………还有比如RESTful风格的支持、简单的文件上传、约定大于配置的契约式编程支持、基于注解的零配置支持等等。

2.SpringMVC的第一个例子

1. 创建一个web工程

2. 导入依赖包

3.创建springmvc的配置文件

xmlns:xsi="https://www.sodocs.net/doc/df9177459.html,/2001/XMLSchema-instance"

xmlns:p="https://www.sodocs.net/doc/df9177459.html,/schema/p"

xmlns:context="https://www.sodocs.net/doc/df9177459.html,/schema/context"

xmlns:mvc="https://www.sodocs.net/doc/df9177459.html,/schema/mvc"

xsi:schemaLocation="https://www.sodocs.net/doc/df9177459.html,/schema/mvc

https://www.sodocs.net/doc/df9177459.html,/schema/mvc/spring-mvc-3.0.xsd

https://www.sodocs.net/doc/df9177459.html,/schema/beans

https://www.sodocs.net/doc/df9177459.html,/schema/beans/spring-beans-3.0.xsd

https://www.sodocs.net/doc/df9177459.html,/schema/context

https://www.sodocs.net/doc/df9177459.html,/schema/context/spring-context-3.0.xsd" default-autowire="byName">

文件的命名规则:中央控制器(servlet的名称)的名称+“-servlet.xml”

默认位置:WEB-INF下

4.配置中央控制器(在web.xml中添加如下配置:)

springmvc

org.springframework.web.servlet.DispatcherServlet

1

springmvc

*.do

5.配置:controller和视图解析器

6.创建controller

@Controller

public class ErrorsFileUpload {

private Logger logger = Logger.getLogger(ErrorsFileUpload.class);

/**成功*/

private static final String SUCCESS = "0";

/**失败*/

private static final String FAIL = "1";

/**终端文件域name*/

private static final String FILE_INPUT_NAME = PropertiesUtils.getValue("common.properties", "FILE_INPUT_NAME");

@Autowired

private ExceptionInfoService exceptionInfoService;

@ResponseBody

@RequestMapping(value="/errorsFileUpload",method=RequestMethod.POST)

@Auth(verifyLogin=false,verifyURL=false)

public String fileUpload(HttpServletRequest request,HttpServletResponse response){

String result = "";

String phone = request.getParameter("phone");

String version = request.getParameter("version");

String filePath = "";

if(StringUtils.isBlank(phone)){

return "{'result':'"+FAIL+"','desc':'手机号不能为空!'}";

}

if(StringUtils.isBlank(version)){

return "{'result':'"+FAIL+"','desc':'版本号不能为空!'}";

}

try {

// 转型为MultipartHttpRequest

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

// 获得上传的文件(根据前台的name名称得到上传的文件)

MultipartFile multipartFile = multipartRequest.getFile(FILE_INPUT_NAME);

if(!multipartFile.isEmpty()){

filePath = FileUpload.uploadErrorInfoFiles(multipartFile,request);

}

ExceptionInfo info = new ExceptionInfo();

info.setPhone(phone);

info.setVersion(version);

info.setFilePath(filePath);

exceptionInfoService.insertExceptionInfo(info);

result = "{result:"+SUCCESS+",desc:上传成功!}";

} catch (Exception ex) {

logger.error("客户端上传文件出错!"+ex.getMessage());

result = "{'result':'"+FAIL+"','desc':'发生异常,上传失败!'}";

}

return result;

}

}

7.创建/WEB-INF/jsp/hello.jsp视图页面

8.启动服务器运行测试

3 .四种HandlerMapping

1.BeanNameUrlHandlerMapping (默认)

当选用了BeanNameUrlHandlerMapping 映射响应器时各个处理控制器应保证 的name 属性即为请求的url 模板。

2.SimpleUrlHandlerMapping

当选用了SimpleUrlHandlerMapping 映射响应器时各个处理控制器应保证 的id 属性与SimpleUrlHandlerMapping 中的mappings 对应。

myController

3. ControllerClassNameHandlerMapping [不推荐]

ControllerClassNameHandlerMapping支持用户定义如下属性:

(1)caseSensitive:大小写是否敏感,默认是false,该属性主要是用来生成映射路径的时候匹配大小写是否敏感,如果为true,则只把Controller类名称的首字母小写,其他的保持原样进行请求路径映射,如果为false,则全部小写。basePackage也使用同样的规则,只是basePackage在caseSensitive为true的时候不需要首字母小写。(2)basePackage:表示要用于生成路径映射的基包,默认是null,这个时候就采用Controller不包含包名称的类名称来映射,映射规则跟之前介绍的映射规则相同。如果定义了basePackage,假设为com.host.app,这个时候如果Controller类的全名称是com.host.app.abc.edf.MyController,那么映射的路径就是/abc/edf/my/*。

(3)pathPrefix:表示映射路径的前缀,默认是空串。假设pathPrefix为prefix,basePackage为com.host.app,那么com.host.app.abc.MyController的映射路径就是/prefix/abc/my/*。

(4)excludedPackages:是数组形式,表示需要把哪些包排除在ControllerClassNameHandlerMapping的映射范围之内。

(5)excludedClasses:是数组形式,表示需要把哪些类排除在ControllerClassNameHandlerMapping的映射范围之内。

使用ControllerClassNameHandlerMapping需要注意的地方:

(1)需要使用ControllerClassNameHandlerMapping来映射的Controller类上如果加了@RequestMapping注解ControllerClassNameHandlerMapping也是可以进行URL路径映射的。

(2)使用ControllerClassNameHandlerMapping映射的是类似于/controllerName/*这样的形式,这也就是说只有在处理器方法映射不存在斜杠的时候才可以使用这种形式访问到。看下面一个例子,在下面代码中MyController 类能够映射的请求路径是/my/*,这也意味着只有满足/my/*的请求路径才能映射到MyController,才能访问到它里面的处理器方法,所以当请求/my/test1.do的时候毫无疑问可以访问到处理器方法test1,但是当想访问MyController 的test2方法,请求/my/test/test2.do的时候由于它不能映射到MyController,所以不能如愿的访问到MyController 的test2方法。这也是ControllerClassNameHandlerMapping 一个缺陷。

@Controller

public class MyController {

@RequestMapping("test1")

public String test1() {

return "test";

}

@RequestMapping("test/test2")

public String test2() {

return "test";

}

}

(3)由于在SpringMVC应用中可以同时定义多个HandlerMapping,这就涉及到一个映射的优先级问题。HandlerMapping都实现了Ordered接口,所以我们可以通过HandlerMapping的order属性来指定匹配映射的先后顺序。我们知道在ViewResolver链中,如果一个逻辑视图被一个ViewResolver解析了之后,该次视图解析就结束了,其他的视图解析器就不能再解析这个视图了,它的order属性是用来定义ViewResolver进行视图解析的先后顺序的。但是HandlerMapping不一样,它是在SpringMVC的配置文件中定义的所有的HandlerMapping都可以进行URL映射,它的order属性是用于指定映射匹配的先后顺序的。看一个例子:

我们在SpringMVC的配置文件里面定义了两个HandlerMapping,代码如上所示,由它们的order属性我们知道ControllerClassNameHandlerMapping会先于DefaultAnnotationHandlerMapping进行映射匹配。定义了一个MyTestController,代码如下所示:

@Controller

public class MyTestController {

@RequestMapping("mytest/test")

public void test() {

System.out.println("--------hello test---------");

}

@RequestMapping("test")

public void test2() {

System.out.println("--------hello test2---------");

}

}

我们知道ControllerClassNameHandlerMapping会把MyTestController映射为“/mytest/*”,按照这种方式我们只能利用/mytest/test.do请求到MyTestController的test2方法,而没法利用/mytest/mytest/test.do请求到test方法。而DefaultAnnotationHandlerMapping会把MyT estController的test2方法映射为“/test.do”,把test方法映射为“/mytest/test.do”。而根据Spring定义了多个HandlerMapping就会有多个映射机制存在的这么一个机制我们知道上述几种映射关系都是会存在的。那么这个时候如果我请求/mytest/test.do会请求哪个方法呢?我们知道,如果是按照ControllerClassNameHandlerMapping的映射机制会访问MyTestController的test2方法,而按照DefaultAnnotationHandlerMapping的映射机制就会访问MyTestController的test方法。这个时候HandlerMapping 的order属性就起作用了,order属性越小的就会先匹配,由上面的配置我们知道ControllerClassNameHandlerMapping的order属性相对较小,所以将使用它的映射URL来匹配这次请求,所以处理的是MyTestController的test2方法。

https://www.sodocs.net/doc/df9177459.html,monsPathMapHandlerMapping [不推荐]

使用控制器代码中的元数据将控制器映射到URL。应用了jdk1.5 后的新特性,通过Controller 中的注释进行映射

在类的注释中加入@@https://www.sodocs.net/doc/df9177459.html,monsattributes.PathMap("/path.do")(这个写在java doc注释中)

/**

* @@https://www.sodocs.net/doc/df9177459.html,monsattributes.PathMap("/hello.do")

*/

public class HelloController

extends AbstractCommandController {

...

}

4 springmvc基于注解的开发

4.1注解第一个例子

1.创建web项目

2.在springmvc的配置文件中指定注解驱动,配置扫描器

3.@controller:标识当前类是控制层的一个具体的实现

4.@requestMapping:放在方法上面用来指定某个方法的路径,当它放在类上的时候相当于命名空间需要组合方法

上的requestmapping来访问。

4.2注解方式参数

接收参数:

1.HttpServletRequest定义在参数的列表,可以直接使用

2.在参数列表上直接定义要接收的参数名称,只要参数名称能匹配的上就能接收所传过来的数据, 可以自动转换

成参数列表里面的类型,注意的是值与类型之间是可以转换的

3.数据写到页面,方法的返回值采用ModelAndView, new ModelAndView("index", map);,相当于把结果数据放

到request里面

4.在参数列表中直接定义Model,model.addAttribute("p", person);把参数值放到request类里面去,建议使用

5.Ajax调用springMVC的方法:直接在参数的列表上定义PrintWriter,out.write(result);把结果写到页面,建

议使用的

6.请求方式的指定:@RequestMapping( method=RequestMethod.POST )可以指定请求方式,前台页面就必须要以

它制定好的方式来访问,否则出现405错误

7.重定向:controller内部重定向,redirect:加上同一个controller中的requestMapping的值,controller之间

的重定向:必须要指定好controller的命名空间再指定requestMapping的值,redirect:后必须要加/,是从根目录开始

4.3 springmvc常用注解

1. @Controller :将class定义为一个controller类。

2. @RequestMapping :在类前面定义,则将url和类绑定。在方法前面定义,则将url和类的方法绑定。RequestMapping注解有六个属性,下面分成三类进行说明。

a、value,method;

value:指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);

value的uri值为以下三类:

A)可以指定为普通的具体值;

B) 可以指定为含有某变量的一类值(URI Template Patterns with Path Variables);

@RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET)

public String findOwner(@PathVariable String ownerId, Model model) {

Owner owner = ownerService.findOwner(ownerId);

model.addAttribute("owner", owner);

return "displayOwner";

}

C) 可以指定为含正则表达式的一类值( URI Template Patterns with Regular Expressions);

@RequestMapping("/spring-web/{symbolicName:[a-z-]+}-{version:\d\.\d\.\d}.{extension:\.[a-z]}")

public void handle(@PathVariable String version, @PathVariable String extension) {

// ...

}

method:指定请求的method类型,GET、POST、PUT、DELETE等;

b、consumes,produces;

consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

Produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

c、params,headers;

params:指定request中必须包含某些参数值是,才让该方法处理。

headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。

3. @RequestParam :一般用于将指定的请求参数付给方法中形参,如果请求参数名称和形参名称保持一致,则不需要这种写法。

@RequestMapping(params="method=reg5")

public String reg5(@RequestParam("name") String uname,ModelMap map) {

System.out.println("HelloController.handleRequest()");

System.out.println(uname);

return"index";

}

4. @SessionAttributes :将ModelMap中指定的属性放到session中。

@Controller

@RequestMapping("/user.do")

@SessionAttributes({"u","a"}) //将ModelMap中属性名字为u、a的再放入session中。这样,request和session 中都有了。

publicclass UserController {

@RequestMapping(params="method=reg4")

public String reg4(ModelMap map) {

System.out.println("HelloController.handleRequest()");

map.addAttribute("u","uuuu"); //将u放入request作用域中,这样转发页面也可以取到这个数据。

return"index";

}

}

5. @ModelAttribute:这个注解可以跟@SessionAttributes配合在一起用。可以将ModelMap中属性的值通过该注解自动赋给指定变量。

@RequestMapping(params="method=reg5")

public String reg5(@ModelAttribute("u") String uname,ModelMap map) {

System.out.println("HelloController.handleRequest()");

System.out.println(uname);

return"index";

}

6. @RequestBody

作用:

i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;

ii) 再把HttpMessageConverter返回的对象数据绑定到Controller中方法的参数上。

使用时机:

A) GET、POST方式提时,根据request header Content-Type的值来判断:

application/x-www-form-urlencoded,可选(即非必须,因为这种情况的数据@RequestParam,

@ModelAttribute也可以处理,当然@RequestBody也能处理);

multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);

其他格式,必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody 来处理);

POST模式下,使用@RequestBody绑定请求对象,Spring会帮你进行协议转换,将Json、Xml协议转换成你需要的对象。

GET模式下,这里使用了@PathVariable绑定输入参数,非常适合Restful风格。因为隐藏了参数与路径的关系,可以提升网站的安全性,静态化页面,降低恶意攻击风险。

@RequestMapping(value = "/person/profile/{id}/{name}/{status}", method = RequestMethod.GET)

public @ResponseBody

Person porfile(@PathVariable int id, @PathVariable String name, @PathVariable boolean status) { return new Person(id, name, status);

}

B) PUT方式提交时,根据request header Content-Type的值来判断:

application/x-www-form-urlencoded,必须;

multipart/form-data, 不能处理;

其他格式,必须;

说明:request的body部分的数据编码格式由header部分的Content-Type指定;

@ResponseBody

作用:

该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

@ResponseBody可以标注任何对象,由Srping完成对象——协议的转换。

使用时机:

返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

text/plain;charset=UTF-8

7. 其他:

@Service用于标注业务层组件

@Controller用于标注控制层组件(如struts中的action)

@Repository用于标注数据访问组件,即DAO组件

@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

@InitBinder 在SpringMVC中,bean中定义了Date,double等类型,如果没有做任何处理的话,日期以及double 都无法绑定。

自定义SpringMVC的属性编辑器主要有两种方式,一种是使用@InitBinder标签在运行期注册一个属性编辑器,这种编辑器只在当前Controller里面有效;还有一种是实现自己的WebBindingInitializer,然后定义一个AnnotationMethodHandlerAdapter的bean,在此bean里面进行注册,这种属性编辑器是全局的。

第一种方式:可以单独的写在你的每一个controller中。剩下的控制器都继承该类。spring自己提供了大量的实现类,诸如CustomDateEditor ,CustomBooleanEditor,CustomNumberEditor等许多,基本上够用。

@Controller

public class BaseController {

@InitBinder//必须有一个参数WebDataBinder

public void initBinder(WebDataBinder binder) {

binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), false));

binder.registerCustomEditor(int.class, new PropertyEditorSupport() {

@Override

public String getAsText() {

// TODO Auto-generated method stub

return getValue().toString();

}

@Override

public void setAsText(String text) throws IllegalArgumentException {

// TODO Auto-generated method stub

setValue(Integer.parseInt(text));

}

});

}

}

第二种:

1.定义自己的WebBindingInitializer

public class MyWebBindingInitializer implements WebBindingInitializer {

@Override

public void initBinder(WebDataBinder binder, WebRequest request) {

binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), false));

}

}

2.在springMVC的配置文件里面定义一个AnnotationMethodHandlerAdapter,并设置其WebBindingInitializer属性为我们自己定义的WebBindingInitializer对象

第二种方式经过上面两步就可以定义一个全局的属性编辑器了。

注意:当使用了的时候,它会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean。这时候第二种方式指定的全局属性编辑器就不会起作用了,解决办法就是手动的添加上述bean,并把它们加在的前面。如果不生效,则将手动注册AnnotationMethodHandlerAdapter改为手动注册RequestMappingHandlerAdapter。

5文件上传

1.引入jar包

2.配置文件上传表单视图解析器

3.写上传逻辑

@RequestMapping(value="/personForUpload.do",method=RequestMethod.POST)

public String personForUpload(HttpServletRequest request, Person person, Map map) throws

Exception{

//第一步转化request

MultipartHttpServletRequest mr = (MultipartHttpServletRequest) request;

//获得上传的文件mr.getFile(String fileName),fileName是中pic

CommonsMultipartFile cf = (CommonsMultipartFile) mr.getFile("pic");

byte[] fb = cf.getBytes();

String fileName = "";

//设置时间戳格式

SimpleDateFormat af = new SimpleDateFormat("yyyyMMddhhmmssSSS");

//获得时间戳的字符串

fileName = af.format(new Date());

//加三位随机数

Random random = new Random();

for(int i = 0; i < 3; i++){

fileName = fileName + random.nextInt(10);

}

String path = request.getSession().getServletContext().getRealPath("/");

OutputStream out = new FileOutputStream(path+"/img/"+fileName+".jpg");

out.write(fb);

out.flush();

out.close();

map.put("person", person);

return "success";

}

6拦截器

配置示例:

代码示例:

public class AuthInterceptor extends HandlerInterceptorAdapter {

private final static Logger logger= Logger.getLogger(AuthInterceptor.class);

@Override

public boolean preHandle(HttpServletRequest request,

HttpServletResponse response, Object handler) throws Exception {

try {

HandlerMethod method = (HandlerMethod)handler;

Auth auth = method.getMethod().getAnnotation(Auth.class);

String p = request.getServletPath();

//忘记密码,不拦截

if(p.equals("/forgetPwd.do")){

return super.preHandle(request, response, handler);

}

//发送验证码,不拦截

if(p.equals("/getCode.do")){

return super.preHandle(request, response, handler);

}

//停车场搜索,不拦截

if(p.equals("/parkingAction/getPark.do")){

return super.preHandle(request, response, handler);

}

//验证登陆超时问题auth = null,默认验证

if( auth == null || auth.verifyLogin()){

String baseUri = request.getContextPath();

SysUser user =SessionUtils.getUser(request);

if(user == null){

//判断是否是异步请求

if(request.getHeader("x-requested-with")!=null&&

request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){

response.setStatus(HttpServletResponse.SC_GATEW AY_TIMEOUT);

}else {

response.sendRedirect(baseUri+"/toTimeout.shtml");

}

return false;

}

}

return super.preHandle(request, response, handler);

} catch (Exception e) {

// TODO: handle exception

String menuUrl = StringUtils.remove(request.getRequestURI(),request.getContextPath());

String msg ="[url="+menuUrl+"]";

logger.error(msg,e);

response.setStatus(404);

request.getRequestDispatcher("/error/404.jsp").forward(request, response);

return false;

}

}

}

投资银行基本知识

投行的定义(目前最被认同的):投资银行学包括所有从事资本市场业务活动的金融机构。在中国如果证券公司单纯从事证券经纪业务不能算是投行。 投行的类型:超大型、大型、次大型、地区型、专业型。 投行与商业银行的区别: 1.从融资方式来看,投行进行的是直接融资,侧重于长期融资。商业银行进行间接融资, 侧重短期融资。 2.从基础业务来看,投行的基础业务是证券承销,商业银行则是存贷款。 3.从业务活动领域看来,投行主要是在资本市场开展业务。商业银行则是在货币市场。 4.从利润的来源上看,投行主要靠收取客户支付的佣金。商业银行则是存贷款之间的利率 差。 5.从经营理念上讲,投行是在控制风险的前提下,稳健与开拓并重。商业银行则是追求安 全性、盈利性与流动性的结合,必须坚持稳健性的原则。 6.从监管机构来看,投行的主要是证券监督委员会之类的机构。商业银行则受中央银行的 监督和管理。 7.从风险特征来看,对于投行,一般而言,投资人面临的风险较大,投行风险较小。商业 银行则是存款人面临的风险较小,商业银行的风险较大。 投行的起源:现代意义的投资银行起源于欧洲,在美国得到迅速发展。 投行的发展模式:分离型模式(典型的是美国投行)、综合型模式(典型的是德国投行)。合伙制:有两人或两人以上共同拥有公司并分享公司利润,合伙人即为公司所有人或股东,所有制合伙公司至少有一个合伙人主管企业的日常业务经营并承担责任。 合伙制的缺点:第一,资本实力受到限制。第二,重大决策容易出现迟缓低效的状况。第三,合伙人对企业债务承担连带无限责任,带来了经营企业的高风险性。第四,组织关系的不稳定性。第五,缺少人才。 有限合伙制:有限合伙制对外在整体上也具有无限责任的性质,但在内部有两类决然不同的权益主体,一类合伙人出大部分资金但不参与管理只承担投资额的有限责任,另一类则经营管理为普通合伙人承担无限责任。 证券发行就是指商业组织或政府组织为筹集资金,依据法律规定的条件和程序,通过证券承销商向投资者出售资本证券的行为。 证券承销包含承接和销售两个过程,投资银行首先从发行者手中以一定的价格买进证券,再通过自己的销售网络将其销售给广大投资者。 证券发行基本类型 按发行对象:公募发行和私募发行; 按有无中介:直接发行和间接发行; 按发行条件和投资者的决定方式:招标发行和议价发行; 证券发行的管理制度:注册制、核准制 我国股票发行目前采用的是核准制下的保荐人制度。 证券承销方式:包销、代销 我国核准制下的保荐人制度:由保荐人(券商)负责发行人的上市推广荐和辅导,核实公司发行文件中所载资料的真实、准确和完整,协助发行人建立严格的信息披露制度,直到获得监管部门的发行核准。不仅要负责发行过程的信息披露,还要承担上市后持续督导的责任并责任将落实到个人。 股票发行估值方式:相对估值法(市盈率法)、绝对估值法(贴现率法) 初步询价是指发行人及其保荐机构向询价对象进行询价,并根据询价对象的报价结果确定发行价格区间及相应的市盈率区间。

asp教程

https://www.sodocs.net/doc/df9177459.html, 是一个使用HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。 https://www.sodocs.net/doc/df9177459.html, 支持三种不同的开发模式: Web Pages(Web 页面)、MVC(Model View Controller 模型-视图-控制器)、Web Forms(Web 窗体): Web Pages 教程 如果您刚接触https://www.sodocs.net/doc/df9177459.html, ,建议从Web Pages 开始学习。Web Pages 是开发https://www.sodocs.net/doc/df9177459.html, 网站最简单的开发模式。

在我们的Web Pages 教程中,您将学习如何使用VB (Visual Ba sic) 或者C# (C sharp) 最新的Razor 服务器标记语法将HTM L、CSS、JavaScript 和服务器代码结合起来。 您也可以学习如何使用具有可编程的Web Helpers(包括数据库、视频、图形、社交媒体等等)来扩展您的网页。 现在开始学习https://www.sodocs.net/doc/df9177459.html, Web Pages! MVC 教程 MVC 是一种使用MVC(Model View Controller 模型-视图-控制器)设计创建Web 应用程序的模式。 如果您想要一个替代传统的https://www.sodocs.net/doc/df9177459.html, 的轻量级的开发模式,可以从MVC 开始学习。 在我们的MVC 教程中,您将学到如何使用集成了现有的所有ASP. NET 特性(比如Master Pages、Security、Authentication 母版页、安全、验证)的轻量级的开发模式创建Web 应用程序。 现在开始学习https://www.sodocs.net/doc/df9177459.html, MVC! Web Forms 教程 Web Forms 是传统的基于事件驱动的https://www.sodocs.net/doc/df9177459.html, 模式。 多年来,开发者已经使用https://www.sodocs.net/doc/df9177459.html, Web Forms 创建了许多众所周知的大型网站。 如果您想学习在过去的10 年中许多Web 开发人员使用的设计模式,那么您可以从Web Forms 开始学习。

投资银行基本知识

一.名次解释 1.投资银行学:有四个层次,分别是机构层次指作为金融市场中介机构的金融企业——投 资银行、行业层次指投资银行的整个行业——投资银行业、业务层次指投资银行所经营的业务——投资银行业务、学科层次指关于投资银行的理论和实务的学科——投资银行学。 2.资产证券化:是指经过投资银行把某公司的一定资产作为担保而进行的证券行,是一种 与传统债券筹资十分不同的新型融资方式。 3.绿鞋期权:由美国绿鞋公司首次公开发行股票(IPO)时率先使用而得名,在证监会颁布的 《证券发行与承销管理办法》中规定,首次公开发行股票数量在4亿股以上的,发行人及其主承销商可以在发行方案中采用超额配售选择权,该机制可以稳定大盘股上市后的股价走势,防止股价大起大落。 4.股票:股份有限公司公开发行的证明,每股股票都代表股东对股份有限公司拥有一个基 本单位的所有权,是确定股东与公司之间权利、义务关系的一种凭证。 5.红筹股:在中国境外注册、在香港上市主要业务来自中国大陆的股票就是红筹股。 6.路演:是股票承销商帮助发行人安排的发行前的调研活动并对可能对投资者进行的巡回 推介活动。 7.毒丸条款:起源于股东认股权证计划,是目标公司为防止敌意收购而作的部署,一旦目 标公司被并购,并购方立即陷入大规模清偿债务的困境,犹如吞食了毒丸。 8.杠杆收购:是企业兼并的一种特殊形式,实质在于举债收购,收购方以目标公司资产作 抵押,运用财务杠杆加大负债比列,用低投入收购承购后,盈利完成,出售的一种方式。 9.风险投资:是指投资人将风险资本投向刚刚成立或快速成长的未上市的高新技术企业, 在承担很大风险的基础上,为融资人提供投资,使其快速成长,数年后通过上市等方法撤出投资,取得高额回报的一种投资方式。 10.IPO:是指股份公开上市。是风险投资者通过风险企业股份的公开上市,将拥有的私人 权益转换成为公共股权,在获得市场认可后,转手以实现资本增值。 二.单选 1.伦敦证券交易所是什么时候成立的?答:1773年。 2.纽约证券交易所是什么时候成立的?答:1792年。 3.在什么时候的什么公司成立标志着我国有了按国际惯例和规范组建的投资银行? 答:1995年8月,中外合资组建的中国国际金融有限公司,建成中金公司。 4.美国在什么时候废除了什么法案,并颁布了《金融服务现代化法案》? 答:1999年12月,美国废除了《格拉斯——斯蒂格尔法案》。 5.哪一年我国为了防范金融风险,正式确立了商业银行与投资银行的什么管理制度。 答:1995年,正式确立了“分业经营、分业管理”的管理制度。 6.证券按发行方式可分为哪两种?答:公开发行和私募发行。 7.我国证券市场上的非公开发行也叫私募发行,所面对的必须是多少人以下的特定对象? 答:200人。 8.我国的重点企业债券是哪一年发行?答:1987年。 9.中国证监会收到申请文件后几个工作日内做出是否受理的决定?答:5个。 10.在发行申请文件核准后几个月内,安排该股票上市交易?答:6个。 11.西方经典MBO的理论基础是什么?答:委托——代理理论。 12.风险投资基金的存续期一般为几年?答:7~10年。 13.中国的风险投资从什么时候起步的?答:从20世纪80年代起步。 14.证券投资基金起源于英国。

VC++6.0入门第九章连接数据库

第九章 连接数据库 微机在商业上的应用主要在数据处理,要求能够快速方便地访问一个大型数据库中的记录, MFC 提供了两种独立地面向用户的数据库访问系统,一种是ODBC (Open DataBase Connectivity ,开放数据库连接),另一种是DAO (Data Access Objects ,数据访问对象)。本章你将学会使用ODBC 和DAO 连接数据库,并能够简单地操作数据库数据。 9.1 MFC ODBC 连接数据库 ODBC 是微软公司支持开放数据库服务体系的重要组成部分,它定义了一组规范,提供了一组对数据库访问的标准API ,这些API 是建立在标准化版本SQL (Structed Query Language ,结构化查询语言)基础上的。ODBC 位于应用程序和具体的DBMS 之间,目的是能够使应用程序端不依赖于任何DBMS ,与不同数据库的操作由对应的DBMS 的ODBC 驱动程序完成。 9.1.1 ODBC 的构成 ODBC 的结构如图9-1所示。 图9-1 使用ODBC 的层次图 ODBC 层由三个部件构成: 1. ODBC 管理器 ODBC 管理器的主要任务是管理安装ODBC 驱动程序,管理数据源。应用程序要访问数据库,首先必须在ODBC 管理器中创建一个数据源。ODBC 管理器根据数据源提供的数据库存储位置,类型及ODBC 驱动程序信息,建立起ODBC 与一个特定数据库之间的联系,接下来,程序中只需提供数据源名,ODBC 就能连接相关的数据库。ODBC 管理器位于系统控件面板中。 2. 驱动程序管理器 驱动器管理器位于ODBC32.DLL ,是ODBC 中最重要的部件,应用程序通过ODBC API 执行数据库操作。其实ODBC API 不能直接操作数据库,需要通过驱动管理器调用特定的数据库的驱动程序,驱动程序在执行完相应操作后,再将结果通过驱动程序管理器返回。驱动器管理器支持一个应用程序同时 应用程序 数据源DSN ODBC API (SQL) ODBC 管理器 驱动程序 管理器 ODBC 驱动程序 数 据 源 ODBC 层

最新部编版1-6年级经典必读书单(收藏版)

最新部编版1-6年级经典必读书单(收藏版) 一年级 1.《稻草人》○叶圣陶新中国第一本为儿童而写的童话集,鲁迅曾评价道:“叶圣陶先生的《稻草人》给中国的童话开了一条自己作的路。 2.《中国神话故事聂作平精选中国神话故事数十篇,并根据情节配以精美插图,把中国经典神话故事演绎得形象生动。文辞优美动人,藴含深刻道理,令人回味无穷。 3.《蝴蝶·豌豆花金波/编,蔡皋/图精选中国30位著名诗的经典童诗,并由20位知名儿童文学插画家为诗作画。让孩子在诗人和画家聚会的星空下,快乐阅读! 4.《小猪唏哩呼噜》孙幼军/著,裘兆明/图秉承作者一贯幽默风趣的语言风格,对孩子们甚少训教,充满了理解和爱怜。如今,唏哩呼噜已是中国儿童文学史上著名的一只小猪。 5.《神奇校车·桥梁书版》美]乔安娜·柯尔/著[美]布鲁斯·迪根/图本套书共20册,将带领小朋友们进入太空、气象、海洋、生物、身体等各种神奇的领域,踏上全新的科旅程。

二年级 6.《没头脑和不高兴》任溶溶“影响几代人的经典故 7.《月光下的肚肚狼》冰波部能让你一口气读完的中篇童话,清新明快,语言风趣,情节精彩,引人入胜。 8.《声律启蒙》[清]车万育/编本书是一部关于诗韵的启蒙读物。语言流畅,对仗工整,内容涉及天文、地理、历史、文化等多方面知识,让孩子在学习同时,受到传统文化熏陶。 9.《三字经·千字文弟子规》郝光明、罗容海、王军丽中国经典启蒙读物。不光是在读书识字上,更包括自然万物的常识、为人处世的道理和良好品行的培养10.《安徒生童话》[丹麦]安徒生/著,陈筱/改全彩注音版《安徒生童话》。五彩斑斓的童话王国里,有透明的快乐和幻想带给孩子真、善、美的启示 三年级 11.《三毛流浪记》张乐平小小三毛,打动了一代又代人的心灵,伴随着一代又代人的成长。 12.《宝葫芦的秘密》张天翼全书想象力十分丰富,内容贴近生活。整个故事对错褒贬的态度明确,具有很好的教育和启迪意义 13.《舒克贝塔传》郑渊洁且看两只小老鼠如何把生活过得风生水起,让鼠生

量化投资基础学习知识入门基础

量化投资基础入门(一) 讲起量化投资,就不得不提华尔街的传奇人物——詹姆斯·西蒙斯(James Simons)。 这位慧眼独具的投资巨擘,有着一份足以支撑其赫赫名声的光鲜履历:20岁时获得学士学位;23岁时在加州大学伯克利分校博士毕业;24岁时成为哈佛大学数学系最年轻的教授;37岁时与 中国数学家陈省身联合发表了著名论文《典型群和几何不变式》,并开创了著名的陈—西蒙斯理论;40岁时运用基本面分析法设立了自己的私人投资基金;43岁时与普林斯顿大学数学家勒费尔(Henry Laufer)重新开发了交易策略并由此从基本面分析转向数量分析;45岁时正式成立了文艺复兴科技公司,最终笑傲江湖,成为勇执牛耳的投资霸主。 这段看似青云直上的成名之路,再次为世人印证了一个道理——当代的技术创新,其实大多源自跨越学科的资源整合,而非从无到有的发明创造。具体说来,即使睿智如西蒙斯,在最初之时,他也没有直接想到运用量化方法投资,而是和众多投资者一样着眼于外汇市场,但野心勃勃的西蒙斯并不甘于只是简单因循传统的投资策略。随着经验的不断累积,他开始思考,为何不运用他最为熟悉的数学方法来搭建投资模型,从而能够科学精准地预测货币市场的走势变动?这一大胆的跨学科尝试,最终彻底改变了他的人生走向。

通过将数学理论巧妙融合到投资的实战之中,西蒙斯从一个天资卓越的数学家摇身一变,成为了投资界中首屈一指的“模型先生”。由其运作的大奖章基金(Medallion)在1989-2009的二十年间,平均年收益率为35%,若算上44%的收益提成,则该基金实际的年化收益率可高达60%,比同期标普500指数年均回报率高出20多个百分点,即使相较金融大鳄索罗斯和股神巴菲特的操盘表现,也要遥遥领先十几个百分点。最为难能可贵的是,纵然是在次贷危机全面爆发的2008年,该基金的投资回报率仍可稳稳保持在80%左右的惊人水准。西蒙斯通过将数学模型和投资策略相结合,逐步走上神坛,开创了由他扛旗的量化时代,他的骤富神话更让世人对于量化投资有了最为直观而浅显的认识:这能赚钱,而且能赚很多钱。 “文艺复兴”的能否真的“复兴”? 但金融行业瞬息万变,老天也没有一味垂青这位叱咤风云的“模型先生”。自2012年以来,由西蒙斯掌印的文艺复兴科技公司可谓祸事不断,厄运缠身。其麾下的“文艺复兴机构期货基金”(RIFF)在2011年仅实现盈利率增长1.84%,到2012年,更是破天荒的亏损了3.17%,这一亏损幅度甚至超过了同年巴克莱CTA指数的平均降幅(1.59%)。RIFF主要通过全球范围的期货和远期交易来实现绝对收益,虽属于文艺复兴公司旗下规模较小的基金产品,但作为公司的明星”印钞机“,其回报率竟会一下暴跌至行业平均水平,难免让众人始料不及。到2012年底,RIFF 的

ASP完整教程(完全ASP编程)

Active Server Pages教程 二零零零年二月二日

目录 第一章引言 (3) 第二章简介 (8) 第三章ASP基础 (13) 第四章脚本基础 (19) 第五章脚本变量、函数、过程和条件语句 (22) 第六章脚本循环语句 (27) 第七章内建Request对象 (30) 第八章内建Reponse对象 (36) 第九章内建对象Application 和Session (42) 第十章Global.asa文件的使用及Chat程序 (48) 第十一章内建对象Server (53) 第十二章数据库查询语言(1) (57) 第十三章数据库查询语言(2) (62) 第十四章ActiveX组件 (66) 第十五章常用的ASP ActiveX组件 (70) 第十六章其它的ASP常用组件 (75) 第十七章ADO存取数据库时如何分页显示 (81) 第十八章堵住ASP漏洞 (87) 第十九章最新的ASP、IIS安全漏洞 (91)

第一章引言 您的网站是否仍一如既往地保持“静态”?目前呈几何增长的互联网网站中,有相当一部分仍固守“静态”,无形中已大大落后于时代的步伐。所谓“静态”指的就是网站的网页内容“固定不变”,当用户浏览器通过互联网的HTTP(Hypertext Transport Pr otocol)协议向WEB服务器请求提供网页内容时,服务器仅仅是将原已设计好的静态HTML文档传送给用户浏览器。其页面的内容使用的仅仅是标准的HTML代码,最多再加上流行的GIF89A格式的动态图片,比如产生几只小狗小猫跑来跑去的动画效果。若网站维护者要更新网页的内容,就必须手动地来更新其所有的HTML文档。 “静态”网站的致命弱点就是不易维护,为了不断更新网页内容,你必须不断地重复制作HTML文档,随着网站内容和信息量的日益扩增,你就会感到工作量大得出乎想象。 你不禁要问:那么什么是动态网站呢?这就是本文将重点讲述的核心,所谓“动态”,并不是指那几个放在网页上的GIF动态图片,在这里笔者为动态页面的概念制定了以下几条规则: 1、“交互性”即网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大事所趋。 2、“自动更新”即无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量。 3、“因时因人而变”,即当不同的时间、不同的人访问同一网址时会产生不同的页面,是不是很酷? 现在你已经对“动态”网站有了一个基本的概念,接下来应挑选称手的“兵刃”了。将网站“动态”化的方法很多,这要看你是出于何种需求。如果你是个人网站的维护者,使用的是免费主页空间,那么绝大多数情况下你只能使用Java、Java Script和最新的DHTML技术,如果你的主页空间提供者能给予你CGI权限或ASP支持,那么你将能非常幸运地发挥真正的动态技术。关于CGI和ASP技术将在后面的着重讨论,这里针对个人网站仅就最新的DHTML技术进行重点介绍。 究竟什么是DHTML?它与传统的HTML有什么不同?DHTML就是当网页从WEB服务器下载后无须再经过服务器的处理,而在浏览器中直接动态地更新网页的内容、排版样式、动画。 比如,当鼠标移至文章段落中,段落能够变成蓝色,或者当你点击一个超链后会自动生成一个下拉式的子超链目录。这就是Dynamic HTML(动态HTML),它是近年来网络飞速发展进程中最振奋人心也是最具实用性的创

员工管理-投行专业人员必读书目 精品

投行专业人员必读书目 投行阅读书目 说明:1、本书目单旨在构筑一个投行家的基础知识结构,而不讲究所选书目在学术上的原创性和代表性。我们的目标是成为职业投行家,而不是要成为下列某一领域的思想家和学问家,所以弟子们不必专注于追猎下列各领域的思想原创性和新动态。2、下列各领域或可有更契合我们目的的书籍,弟子们倘有发现,推荐到书目单中来,以优替次。 A、速读书目:证券和投行基础知识 证券从业人员从业资格考试系列教材 B、精读书目: 一、并购专业知识 1、王明夫《投资银行并购业务》 2、J.威斯通《兼并、重组与公司控制》,经济科学出版社,1998 3、Simon Partner: Mergers and Acquisitions Manual, 华夏出版社,1999 二、公司战略和管理学知识 4、汤姆森,斯迪克兰德《战略管理》,北京大学出版社: 5、科利斯《公司战略——企业的资源与范围》,东北财经大学出版社,2000。 6、斯蒂芬.P.罗宾斯《管理学》,中国人民大学出版社,1997 三、经济学知识 7、萨缪尔森《经济学》,华夏出版社,1999 8、James R. McGuigan等著《管理经济学》,机械工业出版社2001年 9、丹尼斯.卡尔顿,杰弗里.佩罗夫《现代产业组织》(上、下册),上海三联书店,上海人民出版社 10、张维迎《企业的企业家-契约理论》,三联书店上海分店,上海人民出版社,1995 四、金融工程与资本市场知识 11、威廉.夏普《投资组合理论与资本市场》,机械工业出版社,2001 12、约翰.马歇尔等《金融工程》,清华大学出版社,1998 13、格雷罕姆《证券分析》,海南出版社,1999。 五、财务管理知识 14、斯蒂芬A.罗斯等《公司理财》,机械工业出版社,2000。 15、布瑞德福特.康纳尔《公司价值评估——有效评估与决策的工具》,华夏出版社,2001。 16、Mark Grinblatt, Sheridan Titman,《金融市场与公司战略》(第二版),清华大学出版社,20XX 六、法律知识 17、《公司法》本科或研究生教科书 18、《民法原理》本科或研究生教科书 19、证券法 20、并购法 七、人文素养 21、《中国哲学史》本科或研究生教科书 22、《西方哲学史》本科或研究生教科书 23、《中国文学史》 C、泛读书目(仅作提示,各取所需): 1、George P. Baker, George David Smith《新金融资本家——Kohlberg Kravis Roberts与公司价值创造》,上海财经大学出版社,2000 2、罗恩·彻诺《摩根财团——美国一代银行王朝和现代金融业的崛起》,中国财政经济出版社,1996

经管类书单推荐

经管类书单推荐 经济与管理学院2016.10.17 管理类推荐读物 孙耀君,《西方管理学名著提要》,江西人民出版社 1)管理学 斯蒂芬·P·罗宾斯,《管理学》,中国人民大学出版社 邢以群,《管理学》,浙江大学出版社 周三多,《管理学》,复旦大学出版社 2)管理信息系统 Kenneth https://www.sodocs.net/doc/df9177459.html,udon/ Jane https://www.sodocs.net/doc/df9177459.html,udon ,《管理信息系统—网络化企业的组织与技术》(第六版,影印版),高等教育出版社 斯蒂芬·哈格等,《信息时代的管理信息系统》,机械工业出版社 薛华成,《管理信息系统》(第三版),清华大学出版社 3)市场营销菲利浦·科特勒,《市场营销》,清华大学出版社 小威廉D.佩勒尔特E.杰罗姆.麦卡锡,《市场营销学基础》:全球管理(英文版.第12版)--国际通用MBA教材》,机械工业出版社 郭毅等,《市场营销学原理》,电子工业出版社Malhotra,N.K.著,《市场营销研究应用导向(第3版)》,电子工业出版社 4)战略管理 项保华,《战略管理——艺术与实务》,华夏出版社 迈克尔·波特,《竞争战略》,华夏出版社 迈克尔·波特,《竞争优势》,华夏出版社 享利·明茨伯格(美),《战略历程》,机械工业出版社 斯蒂文斯(英),《战略性思维》,机械工业出版社 Arthur A. Thompson, Jr. And A. J. Strickland Ⅲ.Crafting & Implementing Strategy. 6th Ed. Richard D. Irwin, Inc., 1995中文版《战略管理学:概念与案例(英文版.第十版)-- 国际通用MBA教材》,机械工业出版社 David Besanko, David Dranove, & Mark Shanley. The Economics of Strategy. John Wiley & Sons, Inc., 1996Alan J. Rowe; et al.. Strategic Management: A Methodological Approach. 4th Ed. Addison-Wesley Publishing Company, Inc., 1994 5)组织行为学 斯蒂芬·P·罗宾斯,《组织行为学精要(原书第7版)--MBA教材精品译丛》,机械工业出版社Steven L.McShane;Mary Ann Von Glinow,《组织行为学(英文版)--21世纪经典原版经济管理教材文库》,电子工业出版社 卢盛忠等,《组织行为学:理论与实践》,浙江教育出版社 6)人力资源管理雷蒙德.A.诺伊,约翰.霍伦拜克,拜雷.格哈特,帕特雷克.莱特,《人力资源管理——赢得竞争优势》(第三版)中国人民大学出版社 英文版《Human Resource Management: Gaining a Competitive Advantage》,清华大学出版社约翰.M.伊万切维奇,《人力资源管理(英文版.原书第8版)-- 国际通用MBA教材》,机械工业出版社

VBNET数据库编程基础教程

VBNET数据库编程基础教程 众所周知,https://www.sodocs.net/doc/df9177459.html,自身并不具备对数据库进行操作的功能,它对数据库的处理是通过.NET FrameWork SDK中面向数据库编程的类库和微软的MDAC来实现的。其中,https://www.sodocs.net/doc/df9177459.html,又是.NET FrameWork SDK中重要的组成部分。要了解https://www.sodocs.net/doc/df9177459.html,的数据库编程,首先要明白https://www.sodocs.net/doc/df9177459.html,的工作原理以及相关的对象、方法、属性。本文将结合具体实例为你简单介绍https://www.sodocs.net/doc/df9177459.html,数据库访问对象以及https://www.sodocs.net/doc/df9177459.html,数据库编程基本方法。 一、https://www.sodocs.net/doc/df9177459.html,数据库访问对象 (一)https://www.sodocs.net/doc/df9177459.html,简介 https://www.sodocs.net/doc/df9177459.html,是由微软Microsoft ActiveX Data Object(ADO)升级发展而来的。是在.NET中创建分布式数据共享程序的开发接口。https://www.sodocs.net/doc/df9177459.html,的数据存取API提供两种数据访问方式,分别用来识别并处理两种类型的数据源,即SQL Server 7.0(及更高的版本)和可以通过OLE DB进行访问的其他数据源。为此ADO.NE T中包含了两个类库,System.Data.SQL库可以直接连接到SQL Server的数据,System.Data.ADO库可以用于其他通过OLE DB进行访问的数据源。如Acces s数据。 (二)https://www.sodocs.net/doc/df9177459.html,的名称空间 https://www.sodocs.net/doc/df9177459.html,是围绕System.Data基本名称空间设计,其他名称空间都是从Syste m.Data派生而来。它们使得https://www.sodocs.net/doc/df9177459.html,不仅访问DataBase中的数据,而且可以访问支持OLE DB的数据源。 当我们讨论https://www.sodocs.net/doc/df9177459.html,时,实际讨论的是System.Data和System.Data.OleDb 名称空间。这两个空间的所有类几乎都可以支持所有类型的数据源中的数据。这里我们讨论与后文实例有关的类。即OleDbconnection、OleDbDataAdapter、D ataSet和DataView。 上面列举的类中没有OleDb前缀的,派生自System.Data空间,有此前缀的派生自System.Data.OleDb空间。在使用中,如果要引用OleDb前缀的类,必须导入System.Data.OleDb名称空间。语法如下: Imports System.Data.OleDb 使用没有此前缀的类必须导入System.Data名称空间。语法如下: Imports System.Data

PLSQL学习简易快速入门

PLSQL学习简易快速入门 课程一 PL/SQL 基本查询与排序 本课重点: 1、写SELECT语句进行数据库查询 2、进行数学运算 3、处理空值 4、使用别名ALIASES 5、连接列 6、在SQL PLUS中编辑缓冲,修改SQL SCRIPTS 7、ORDER BY进行排序输出。 8、使用WHERE 字段。 一、写SQL 命令: 不区分大小写。 SQL 语句用数字分行,在SQL PLUS中被称为缓冲区。 最后以;或 / 结束语句。 也可以用RUN来执行语句 二、例1:SQL> SELECT dept_id, last_name, manager_id FROM s_emp; 2:SQL> SELECT last_name, salary * 12, commission_pct FROM s_emp; 对于数值或日期型的字段,可以进行相应的四则运算,优先级与标准的高级语言相同。 SQL> SELECT last_name, salary, 12 * (salary + 100) FROM s_emp; 三、列的别名ALIASES: 计算的时候特别有用; 紧跟着列名,或在列名与别名之间加“AS”; 如果别名中含有SPACE,特殊字符,或大小写,要用双引号引起。 例(因字体原因,读者请记住:引号为英文双引号Double Quotation): SQL> SELECT last_name, salary, 12 * (salary + 100) ”Annual Salary” FROM s_emp;

四、连接符号:|| 连接不同的列或连接字符串 使结果成为一个有意义的短语: SQL> SELECT first_name || ’’ || last_name || ’, ’|| title ”Employees” FROM s_emp SQL> select divid ||' '|| divname from pub_t_division_test where superid='001' 效果如下图: 五、管理NULL值: SQL> SELECT last_name, title, salary * NVL(commission_pct,0)/100 COMM FROM s_emp; 此函数使NULL转化为有意义的一个值,相当于替换NULL。 select divid,divname,NVL(addr,0) from pub_t_division_test where superid='001' 效果如下图: 六、SQL PLUS的基本内容,请参考 七、ORDER BY 操作: 与其他SQL92标准数据库相似,排序如: SELECT expr FROM table[ORDER BY {column,expr} [ASC|DESC]]; 从Oracle7 release 7.0.16开始,ORDER BY 可以用别名。 另:通过位置判断排序: SQL> SELECT last_name, salary*12 FROM s_emp ORDER BY 2; select * from pub_t_division_test where superid='001'order by3 这样就避免了再写一次很长的表达式。 另:多列排序: SQL> SELECT last name, dept_id, salary FROM s_emp ORDER BY dept_id, salary DESC; SQL>select * from pub_t_division_test where superid='001' order by 1,3 desc

投行推荐书籍

本书单分境内投行业务入门类、经济学管理学思维与投资银行进阶类、投行人生与情趣类等三类,共60本。 第一类直接为从事境内投行业务服务,非理论,更非经典,讲究的是贴近实际业务、易于上手,优先选择来自投行、中介机构和监管部门的作者。涉及资本市场概论、融资业务(股债权、结构融资)、并购重组业务、财务会计与法律问题、股权投资基金等。 第二类为夯实从事投行业务的职业厚度服务,书目选择讲究的是经典与系统,可分为两个部分,前一部分涉及经济学、管理学、战略、市场营销、产业组织等;后一部分涉及投资银行概论、投资银行史、公司金融、估值、并购重组、私募股权投资等。 第三类戏谑为投行人生与情趣类。与前两类的精挑细选不同,此类推荐无系统性、无明显逻辑,有行业记趣、有当前热点,有什么都不是,追求的仅是阅读中的灵光一现、不经意间可能触动的情怀。 第一类:境内投行业务入门类 1. 《中国资本市场二十年》,中国证监会,中信出版社2012年3月。 2. 《未来十年中国经济的转型与突破》,祁斌,中信出版社2013年1月。

3. 《企业上市审核标准实证解析》(第2版),张兰田,北京大学出版社2013年2月。 4. 《非上市公众公司监管工作手册(2014)》,中国证监会非上市公众公司监管部,中国财政经济出版社2014年4月。

5. 《中国企业债券融资:创新方案与实用手册》,杨农,经济科学出版社2012年9月。 6. 《非金融企业债券融资工具实用手册》(中国银行间市场交易商协会系列培训教材),时文朝,中国金融出版社2012年1月。

7. 《企业资产证券化操作实务》,葛培健,复旦大学出版社2011年3月。(注:企业资产证券化业务监管正处于过渡期,以证券公司专项资产管理计划为载体的方式已不再适用,但本书提供的案例与思路仍然值得参考。) 8. 《中国资本市场论坛》(2013年刊)程前,中国经济出版社2013年10月。(附:2012年刊,程前,中国经济出版社2012年10月)

投资银行学重点复习知识点

1. ()是投资银行最本源、最基础的业务活动,是投资银行的一项传统核心业务。 2. 以下国家中,采用综合型投行运行模式的是()。 3. 目前我国《证券法》规定,如当发行的证券票面总值超过人民币()时,应当由承销团承销。 4. 我国证券交易中目前采取的合法委托式是()。 5.考虑不同投资者的风险承受能力,基金投资者可分为以下几种:()。 6.下列属于创新型基金的是:()。 7.现代意义上的投资银行起源于()。 8.根据规模大小和业务特色,美国的美林公司属于()。 9.以下不属于影响股票发行价格的本体因素的是()。 10.客户理财报告制度的前提是()。 11.投资银行的核心业务是()。 12.上海证券交易所建立于()。 13.以20世纪50年代的现代资结构MM理论角度看,负债对企业价值和融资成本有影响,企业负债结构()越好。 14.根据融资顺序偏好理论,公司为新项目进行融资一般会按照()的顺序进行。

15.根据标准-普尔公司的信用评级标准,以下哪个信用级别开始是投机级及以下的债券信用评级()。 16.已知中石油股票(代码:601857),2011年12月初价格9.0元,该股市盈率为13,该股预计2012年每股收益0.75,2011年每股收益0.57,该股价值为()状态 17.从企业的资本结构和财务结构上看,LBO杠杆收购的融资体系不包括()。 18.风险投资VC的退出机制不包括以下方式(): 19.资产证券化主要参与主体不包括一下哪一项内容(): 20.住房抵押贷款资产证券化的通用缩写为(): 1、投资银行业从业人员的能力要求包括以下那些方面(): 2.投资银行从业人员的职业道德包括()。 3、风险投资所涉及的风险包括(): 4、在基金分类中以下属于特殊类型的基金是(): 5、现代投资银行业监管的具体共同目标是(): 6、国际投资银行业的监管模式主要有(): 7、常见的风险投资的退出机制包括以下哪些内容():

数据库基础教程课后习题答案顾韵华

习题1 1、简述数据库系统的特点。 答:数据库系统的特点有: 1)数据结构化 在数据库系统中,采用统一的数据模型,将整个组织的数据组织为一个整体;数据不再仅面向特定应用,而是面向全组织的;不仅数据内部是结构化的,而且整体是结构化的,能较好地反映现实世界中各实体间的联系。这种整体结构化有利于实现数据共享,保证数据和应用程序之间的独立性。 2)数据共享性高、冗余度低、易于扩充 数据库中的数据能够被多个用户、多个应用程序共享。数据库中相同的数据不会多次重复出现,数据冗余度降低,并可避免由于数据冗余度大而带来的数据冲突问题。同时,当应用需求发生改变或增加时,只需重新选择不同的子集,或增加数据即可满足。 3)数据独立性高 数据独立性是由DBMS 的二级映像功能来保证的。数据独立于应用程序,降低了应用程序的维护成本。 4)数据统一管理与控制 数据库中的数据由数据库管理系统(DBMS )统一管理与控制,应用程序对数据的访问均经由DBMS 。DBMS 提供四个方面的数据控制功能:并发访问控制、数据完整性、数据安全性保护、数据库恢复。 2、什么是数据库系统? 答:在计算机系统上引入数据库技术就构成一个数据库系统(DataBase System ,DBS )。数据库系统是指带有数据库并利用数据库技术进行数据管理的计算机系统。DBS 有两个基本要素:一是DBS 首先是一个计算机系统;二是该系统的目标是存储数据并支持用户查询和更新所需要的数据。 3、简述数据库系统的组成。 答:数据库系统一般由数据库、数据库管理系统(及其开发工具)、数据库管理员(DataBase Administrator ,DBA )和用户组成。 4、试述数据库系统的三级模式结构。这种结构的优点是什么? 答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成,同时包含了二级映像,即外模式/模式映像、模式/内模式映像,如下图所示。 数据库应用1…… 外模式A 外模式B 模式 应用2应用3应用4应用5…… 模式 外模式/模式映像 模式/内模式映像 数据库系统的这种结构具有以下优点: (1)保证数据独立性。将外模式与模式分开,保证了数据的逻辑独立性;将内模式与模式分开,保证了数据的物理独立性。 (2)有利于数据共享,减少了数据冗余。 (3)有利于数据的安全性。不同的用户在各自的外模式下根据要求操作数据,只能对

数据库基础知识试题(含答案)

数据库基础知识试题 部门____________ 姓名__________ 日期_________ 得分__________ 一、不定项选择题(每题分,共30分) 1.DELETE语句用来删除表中的数据,一次可以删除( )。D A .一行 B.多行 C.一行和多行 D.多行 2.数据库文件中主数据文件扩展名和次数据库文件扩展名分别为( )。C A. .mdf .ldf B. .ldf .mdf C. .mdf .ndf D. .ndf .mdf 3.视图是从一个或多个表中或视图中导出的()。A A 表 B 查询 C 报表 D 数据 4.下列运算符中表示任意字符的是( )。B A. * B. % C. LIKE 5.()是SQL Server中最重要的管理工具。A A.企业管理器 B.查询分析器 C.服务管理器 D.事件探察器 6.()不是用来查询、添加、修改和删除数据库中数据的语句。D A、SELECT B、INSERT C、UPDATE D、DROP 7.在oracle中下列哪个表名是不允许的()。D A、abc$ B、abc C、abc_ D、_abc 8.使用SQL命令将教师表teacher中工资salary字段的值增加500,应该使用的命令 是()。D A、Replace salary with salary+500 B、Update teacher salary with salary+500 C、Update set salary with salary+500 D、Update teacher set salary=salary+500 9.表的两种相关约束是()。C

HTML 基 础_asp网页设计基础教程

HTML 语言 HTML 语言 在上一章的学习中知道,ASP 动态网页实际上是包含 HTML 标记、文本和脚本命令的 此文来源于云南新华电脑学院官方网站云南新华电脑学校官方博客 动态网页。为了更好地学习 ASP 动态网页的设计方法,就必须对 HTML 语言有所了解。本 章将介绍 HTML 语言的基本内容,包括 HTML 基础、设置文本格式、使用列表格式、使用 图像、使用字幕和背景音乐、使用超链接、使用表格、使用表单等。 2.1 HTML 基础 HTML 是用来表示 Web 文档的规范,它使用标记来确定网页显示的格式。静态网页是 标准的 HTML 文件,动态网页经过应用程序服务器处理后也将生成标准的 HTML 文件。 2.1.1 HTML 的工作原理 HTML 文件是标准的 ASCII 文件。从结构上讲,HTML 文件由元素(Element)组成,组 此文来源于云南新华电脑学院官方网站云南新华电脑学校官方博客 成 HTML 文件的元素有许多种,用于组织文件的内容和指导文件的输出格式。绝大多数元 素是“容器”,即有起始标记和结尾标记。元素的起始标记叫做起始链接签(Start Tag),元素 的结束标记叫做结尾链接签(End Tag)。HTML 用标记来标注要显示的网页的各个部分,以 通知 Web 浏览器应该如何显示网页。 2.1.2 标记基础 HTML 语言是控制网页内容显示格式的标记集合,标记给浏览器提供了格式化Web 文 档的指令。HTML 标记的基本语法如下: (1) HTML 标记不区分大小写,但通常使用大写字母。 (2) 所有的标记都必须用尖括号(< >)括起来。例如,、、 等。 (3) 大多数标记都是成对出现的,包括开始标记和结束标记,开始标记和结束标记定义 了标记所影响的范围;结束标记与开始标记名称相同,但结束标记总是以一个斜线符号开此文来源于云南新华电脑学院官方网站云南新华电脑学校官方博客 头的。例如和 、

销售必读书单(强烈推荐)

销售必读书单(强烈推荐) 2011-03-09 20:55:27 销售人员日常工作繁忙,拿出大块时间参加集中培训的成本过高,所以能力的提升还要靠大家平日的积累。而阅读就是一个方便高效的手段。一本好书成本不超过 50 元,但随时随地都能翻看,而且能给大家带来知识的丰富、技能的提高和心态的转变,确实是一本万利的买卖。 但是现在市面上的各类书籍铺天盖地,质量良莠不齐。很多一线的销售朋友想学习却找不到针对性的好书,或者买到一些七拼八凑的垃圾图书,看了之后收获甚微,这些都会打击大家的学习积极性。 因为工作性质的原因,先做销售后做培训,我多年来购买并阅读了大量的销售及管理类的书籍,前几天整理书柜,竟然发现自己竟然看过有如此之多的图书,不禁暗自感慨时光荏苒。我平时就会在公司内部的培训过程当中也会针对性的给我的同事推荐一些我看过好的销售著作。 最近有不少朋友知道我读书挺多,就让我给推荐几本好书。所以,我专门花时间把我这么多年来发现的好书分门别类的进行整理,分享给大家。 我会按照销售人员及销售管理者需要掌握的核心知识与核心技能的模块,对这些书籍进行分类。 每个类别,我都会挑选最有价值的 2、3 本图书推荐给大家。我推荐的图书基本上都是国内外大师的经典著作,并且都是经过我的亲自阅读和筛选,保证大家读到的都是精品中的精品。 我的口号是:缺啥补啥,立竿见影;实用实战,不虚不空!一,思维能力销售工作绝对是个脑力活,大家每天都会遇到各种各样棘手的问题。而面对问题的时候该如何进行有效思考和分析,并最终得到最优的解决方案,是一个销售人员常常要做的事情。 智商高并不代表思维能力高,智商是天生的,而高效的思维方法却是可以通过后天的锻炼养成的。一个好的思维方式和高效的思维习惯能够帮助销售人员在分析复杂问题和处理困难时思路更开阔,创造力更强。 一、销售入门级必读

投行基本逻辑和知识(财税篇)

投行基本逻辑和知识(财税篇) 一、财务报表分析思路 (一)看一家上市公司的财务报表,首先就是去看什么?按照什么步骤什么方式来看? 1、读完整年报。 2、无论什么公司都是看盈利的质量、资产质量和现金流。阅读年报一定要有一个系统的观点,熟悉的投资者还必须知道中国上市公司财务报表的某些特点,然后去辨析。 3、中国上市公司的估值模式问题。彼得·林奇成功投资福特的经验是,计算市盈率时并不是直接以股价除以每股收益,而是考虑了暗扣(Hidden rebate),亦即在对福特估值时,要把闲置的现金加上。 (二)结构:三张财务报表应该看哪张? 1、众所周知财务报表有:损益表、资产负债表和现金流量表,但是三个报表看哪个都是一门学问,三张报表之间是什么逻辑关系?如何去看呢? (1)初级分析者;暂时不要去看现金流量表,最重要的是资产负债表。记住一句话:资产是损益的基础。 (2)有一定基础的分析者;分析现金流量表,虽然阅读和分析的难度比较大,但它是一个企业赖以生存的血液。损益表和资产负债表都很重要。 2、分析者阅读三张报表,最重要的是看哪一部分,其中尤其是哪些科目?其中最核心的指标又该是哪些?有需要特别留意的指标又有哪些?

(1)资产状况怎么去看问题?不用过分看重什么速动比率什么的,首先就看资产负债率是不是过高,一般来说制造业50%—60%就是个警戒线了,当然现在流动性过剩这不是一个大问题。其次重要的就是应收账款。应收账款和主营业务之间的关系,总体看是否合拍,如果应收账款大幅异动,甚至是大大超过主营业务增长,那不是好事情。虽然资产负债表重要,但是成长性公司可以稍微放宽一些。 然后去看主营业务,看看有没有持续稳定的增长,如何波动,要注意的是同比、环比都要分析,时间上要逐年、逐季度比较,要细心。举个例子,你仔细看看中石化,就会发现有一年他一二季度持续增长,但是三四季度环比就不断的滑坡,四季度滑坡相当大。如果油价飞涨,你就知道它下一季度有可能亏损。 第一个表讲盈利质量,一般要从三个方面来说:收入成长性、利润成长性和毛利率高低。主营收入成长性是根本保证,能够源源不断地给你企业输送氧气。在这里有一个隐形指标,对判断一个企业是否具备核心竞争力,有立竿见影的效果,那就是市场占有率。怎么去计算它的市场占有率呢?很简单,你用它的主营收入去除以整个行业的收入总数据,就能看到其市场份额。利润成长性分析的方法主要是看利润波动幅度,这个指标能检验创造利润收入的潜力,增幅波动性越大,风险越大。毛利率其实关涉到企业发展的命门:可用于研究开发和提升产品质量品牌形象的空间系于此。举个例子,微软为什么屹立不倒?因为他每年能够取出20%— 25%的销售收入去做广告,15%—20%去搞研究开发,而前提是他的毛利率达到了80%。

相关主题