Spring MVC学习指南1

来源:互联网 发布:淘宝店铺没有按时复核 编辑:程序博客网 时间:2024/05/16 17:54
前言 
2011年 IETF发布 WebSocket协议,RFC6455,允许HTTP链接升级为WebSocket连接,支持双向通信,使得服务器端可以主动发起通信。

HTTP请求的3个部分:
1. 方法 URI 协议/版本:
2. 请求头信息: 
3. 请求正文
    POST /aaa/index.html HTTP/1.1
    Accept: text/plain;text/html
    Accept:-Language: en-gb
    Connection: Keep-alive
    Host: localhost
    User-Agent: 
    Content-Length:30
    Content-Type: application/x-www-form-urlencoded
    Accept-Encoding: gzip, deflate

    lastName=Blanks&firstName=mike
请求头和正文间一个空行
http七种方法: GET POST DELETE PUT HEADER OPTIONS TRACE

HTTP相应的3个部分:
1. 协议/版本 状态代码 状态描述
2. 响应头信息
3. 响应正文
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Data: Thu, 29 Sep...
Content-Type: text/html
Last-Modified: Web, 28 Sep...
Content-Length: 112

<html>...</html>
200 成功
401 未授权
405 请求方法被禁用
CGI: 为每个请求创建相应进程。浪费CPU
Servlet:第一次请求后创建,驻留内存。当前版本为3.1,基于Java 6以上。
JSP:99年发布,简化Servlet开发
Java企业版容器,GlassFish、JBoss、Oracle Weblogic、IBM WebSphere
Tomcat和Jetty不是企业级容器,无法运行EJB和JMS。

第一章 Spring框架
2.5版本开始,支持Autowired注解。缺点是必须引入org.springframework.beans.factory.annotation.Autowired,对spring产生依赖。
ApplicationContext有多个实现,包括ClassPathXmlApplicationContext和 FileSystemXmlApplicationContext。
一般在测试环境中创建ApplicationContext,对于SpringMVC,可以通过Spring Servlet来处理ApplicationContext
Application context = new ClassPathXmlApplicationContext(
   new String[] = {"config1.xml", "config2.xml"});  // 参数是string数组,支持多个配置文件
Product product = context.getBean("product", Product.class);
1. xml配置文件
    ApplicationContext可读取多个配置文件。
    也可以通过一份主配置文件导入其他配置文件。
<beans ...>
   <import resource="config1.xml"/>
   <import resource="module2/config2.xml"/>
</beans>


2. 获取bean
  • 可以通过构造器来获取bean。通过bean的id或者name属性都可以。
  • 可以通过工厂类来获取bean。<bean id=".." class="..(factory的class)" factory-method=".."/>
通过factory和构造器获取bean的方式相同,都是 Product product = context.getBean("product", Product.class);

Destory方法
<bean id="..." class="..." factory-method="..." destory-method="..." />

构造器传参数,可以通过name,也可以通过index匹配
    <bean name="featuredProduct" class="app01a.bean.Product">
        <constructor-arg name="name" value="Ultimate Olive Oil"/>
        <constructor-arg name="description" value="The purest olive oil on the market"/>
        <constructor-arg name="price" value="9.95"/>
    </bean>

    <bean name="featuredProduct2" class="app01a.bean.Product">
        <constructor-arg index="0" value="Ultimate Olive Oil"/>
        <constructor-arg index="1" value="The purest olive oil on the market"/>
        <constructor-arg index="2" value="9.95"/>
    </bean>

0 0
原创粉丝点击