基于Maven+SpringMVC的javaWeb项目配置详解

最近开始开发一个点餐系统Web应用,后端开发选用的是javaWeb的SSM开发框架,即Spring+SpringMVC+MyBatis,同时使用Maven作为包管理工具。框架并不熟悉,所以走的是一边学习一边开发的路线,故阶段性总结一下学习成果。

开发软件以及工具

(1)JDK:JDK8
(2)IDE:Intellij IDEA Professional
(3)Web服务器:Tomcat 8.5
(4)Spring框架:SpringFramework-4.3.1.RELEASE

建立项目

Idea新建项目,选择Maven作为基本项目类型,导入JDK,然后勾选原型模板,选择webapp,点击next;

填写项目名以及包名,一直next直到创建项目;

修改项目结构为标准MVC结构:

使用Maven管理添加依赖包:在自动生成的pom.xml中配置一系列jar包

<dependencies>
      
    <dependency>
      <groupId>junitgroupId>
      <artifactId>junitartifactId>
      <version>4.11version>
      <scope>testscope>
    dependency>

      
      <dependency>
          <groupId>log4jgroupId>
          <artifactId>log4jartifactId>
          <version>1.2.12version>
      dependency>

      
      <dependency>
          <groupId>javax.servletgroupId>
          <artifactId>javax.servlet-apiartifactId>
          <version>3.1.0version>
      dependency>
      <dependency>
          <groupId>javax.servlet.jspgroupId>
          <artifactId>jsp-apiartifactId>
          <version>2.2version>
      dependency>
      <dependency>
          <groupId>javax.servletgroupId>
          <artifactId>jstlartifactId>
          <version>1.2version>
      dependency>

      
      <dependency>
          <groupId>mysqlgroupId>
          <artifactId>mysql-connector-javaartifactId>
          <version>5.1.33version>
      dependency>

      
      <dependency>
          <groupId>org.springframeworkgroupId>
          <artifactId>spring-webartifactId>
          <version>4.3.1.RELEASEversion>
      dependency>
      <dependency>
          <groupId>org.springframeworkgroupId>
          <artifactId>spring-webmvcartifactId>
          <version>4.3.1.RELEASEversion>
      dependency>

      
      <dependency>
          <groupId>org.apache.commonsgroupId>
          <artifactId>commons-lang3artifactId>
          <version>3.4version>
      dependency>
      <dependency>
          <groupId>commons-fileuploadgroupId>
          <artifactId>commons-fileuploadartifactId>
          <version>1.3.1version>
      dependency>

  dependencies>

配置web.xml文件

WEB-INF目录下的web.xml文件是javaWeb框架的核心文件。启动一个web项目时,web容器会读取这个配置文件,用于初始化项目的一系列配置信息。现在来详细分析一下web.xml的具体内容:


<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    
    <welcome-file-list>
        <welcome-file>index.htmlwelcome-file>
    welcome-file-list>

    
    <servlet>
        <servlet-name>springMVCservlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        <init-param>
            <param-name>contextConfigLocationparam-name>
            <param-value>classpath:spring/applicationContext*.xmlparam-value>
        init-param>
        <load-on-startup>1load-on-startup>
        <async-supported>trueasync-supported>
    servlet>
    <servlet-mapping>
        <servlet-name>springMVCservlet-name>
        <url-pattern>/url-pattern>
    servlet-mapping>


    <display-name>Archetype Created Web Applicationdisplay-name>
web-app>

welcome-file-list

访问一个网站时,默认看到的第一个页面就叫欢迎页,一般情况下是由首页来充当欢迎页的。一般情况下,我们会在web.xml中指定欢迎页。

servlet

servlet是服务端程序,负责处理对应的请求。

servlet-name表示servlet的名称,可以随意指定,但要有一定的意义,一般取为类的名称。下面的servlet-class是类的全路径,package+calssname,这里使用的是spring框架的默认Servlet。注意一定要写全路径。

init-param指定了一个属性contextConfigLocation,这里的属性值是当前Servlet的初始化配置文件路径。Servlet第一次启动时,就会解析此文件来配置属性。

load-on-startup指定Servlet的启动时间:不配置此属性则默认为直到Servlet第一次被请求时才启动;指定了属性,则Servlet会在框架开始运行时同时启动。

async-support:异步处理支持,这是Servlet3.0才开始有的新特性。设置此属性后,Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出响应,最后才结束该 Servlet 线程。在接收到请求之后,Servlet 线程可以将耗时的操作委派给另一个线程来完成,自己在不生成响应的情况下返回至容器。针对业务处理较耗时的情况,这将大大减少服务器资源的占用,并且提高并发处理速度。

servlet-Mapping

它是servlet的映射信息,它也有一个servlet-name,填写对应的Servlet名,也就是我们上面配置的Servlet名字。url-pattern是指定当前servlet的拦截范围,“/”表示从根路径就拦截所有请求,交给对应servlet处理。

web.xml当然还有许多其它配置属性,这里我们暂时不需要添加,当有需要用上的时候再补充即可。

配置applicationContext.xml文件

applicationContext.xml是SpringMVC的核心配置文件。


<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
                         http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context-3.2.xsd
                        http://www.springframework.org/schema/mvc
                        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
    <context:annotation-config/>

    
    <context:component-scan base-package="com.example.controller">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    context:component-scan>

    

    
    <mvc:resources mapping="/css/**" location="/statics/css/"/>
    <mvc:resources mapping="/js/**" location="/statics/js/"/>
    <mvc:resources mapping="/image/**" location="/statics/image/"/>
    <mvc:resources mapping="/html/**" location="/statics/html/"/>

    
    <mvc:annotation-driven/>


    
    

    <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        
        <property name="prefix" value="/"/>    
        <property name="suffix" value=".html"/>
        <property name="contentType" value="text/html">property>
    bean>


    
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="20971500"/>
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="resolveLazily" value="true"/>
    bean>


beans>

配置文件由许多bean属性组成;其中比较重要的是注解扫描、静态资源路径、视图解析器配置等。

到此为止,基本的javaWeb项目配置就完成了,可以开始动手实现具体业务逻辑了。

你可能感兴趣的:(java)