SpringMVC项目搭建

1. 建立项目

  • 建立java项目
  • 在项目根目录下新建webapp文件夹;在webapp下新建一个WEB-INF文件夹(浏览器不会访问到该目录下的资源。tomcat在启动时,会在此目录下读取配置文件)
  • 在WEB-INF下建立一个web.xml 文件。tomcat启动后本身会加载安装路径下的大配置文件web.xml, 当发现项目的WEB-INF下也存在web.xml时,会作为分配置文件一并加载。
  • WEB-INF建立lib文件,用来存放相关jar包

2. web.xml 配置

  • Load-on-startup: 在web应用启动时,指定servlet被加载的顺序;如果值是负整数,或者没有指定,那么容器会在该servlet被调用的时候,加载这个servlet。如果是正整数或0,容器在配置的时候就加载并初始化这个servlet。值越小就越先被加载。
  • 加载顺序
    ServletContext -> context-param -> listener -> filter -> servlet
    <context-param>用于向ServletContext提供键值对,这些参数,在listener,filter初始化的时候会用到。
  • 基本元素介绍
属性 功能 备注
discription 描述
display-name 定义名称
context-param 环境参数 它包含两个子元素param-name,param-value;参数的值,可以使用getServletContext().getInitParameter("para_name")获取到
filter 声明filter 它包含三个子元素:filter-name,filter-class,init-param
filter-mapping 定义filter所对应的URL 包含:filter-name,url-pattern子元素
listener 设定listener接口 包含listener-class子元素
servlet 声明一个servlet 子元素:servlet-name,servlet-class, jsp-file, init-param
servlet-mapping 定义servlet对应的URL servlet-name,url-pattern
  • 指定spring配置文件的位置
 <context-param>    
       <param-name>contextConfigLocation</param-name>    
       <param-value>    
         /WEB-INF/applicationContext.xml, /WEB-INF/action-servlet.xml    
       </param-value>    
</context-param>  
  • 指定listener
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

ContextLoaderListener 可以指定在web程序启动时载入IOC容器。请参考ContextLoaderListener的作用

  <servlet>
    <servlet-name>SpringDispatchedServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>SpringDispatchedServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

3. SpringDispatchedServlet-servlet.xml文件指定Servlet context

在这个文件里,可以指定HandlerMapping,HandlerAdapter, ViewResolver... servlet相关组件。

    <context:component-scan base-package="com.test.controller"/>

由于SpringMVC提供了默认的servlet组件,为了方便就不自定义相关组件。

4. 测试controller

@Controller
public class TestController {

    @Autowired
    private Demo demo;

    @RequestMapping(value = "/test", method = RequestMethod.GET)
    @ResponseBody
    public String test() {
        TDKRequestParam param = new TDKRequestParam();
        param.setDomain("domain");
        param.setPage("test");
        param.setUrl("/243433/854003/");
        SResult<Meta> s = demo.getResult(param);
        return s.getData().getDescription();
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容