Java Spring MVC项目搭建(二)——项目配置_explise如何搭建springmvc-程序员宅基地

技术标签: Spring-mvc  

文章转载自:https://www.cnblogs.com/eczhou/p/6287876.html

1、站点配置文件web.xml

每一个Spring MVC 项目都必须有一个站点配置文件web.xml,他的主要功能吗....有一位大哥已经整理的很好,我借来了,大家看看:

引用博客地址: http://www.cnblogs.com/yqskj/articles/2233061.html

1、指定欢迎页面,例如: 
<welcome-file-list> 
  <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>index1.jsp</welcome-file> 
  </welcome-file-list> 
PS:指定了2个欢迎页面,显示时按顺序从第一个找起,如果第一个存在,就显示第一个,后面的不起作用。如果第一个不存在,就找第二个,以此类推。 

关于欢迎页面: 

    访问一个网站时,默认看到的第一个页面就叫欢迎页,一般情况下是由首页来充当欢迎页的。一般情况下,我们会在web.xml中指定欢迎页。但 web.xml并不是一个Web的必要文件,没有web.xml,网站仍然是可以正常工作的。只不过网站的功能复杂起来后,web.xml的确有非常大用处,所以,默认创建的动态web工程在WEB-INF文件夹下面都有一个web.xml文件。


2、命名与定制URL。我们可以为Servlet和JSP文件命名并定制URL,其中定制URL是依赖命名的,命名必须在定制URL前。下面拿serlet来举例: 
(1)、为Servlet命名: 
<servlet> 
    <servlet-name>servlet1</servlet-name> 
    <servlet-class>org.whatisjava.TestServlet</servlet-class> 
</servlet> 

(2)、为Servlet定制URL、 
<servlet-mapping> 
    <servlet-name>servlet1</servlet-name> 
    <url-pattern>*.do</url-pattern> 
</servlet-mapping>



3、定制初始化参数:可以定制servlet、JSP、Context的初始化参数,然后可以再servlet、JSP、Context中获取这些参数值。 

下面用servlet来举例: 
<servlet> 
    <servlet-name>servlet1</servlet-name> 
    <servlet-class>org.whatisjava.TestServlet</servlet-class> 
    <init-param> 
          <param-name>userName</param-name> 
          <param-value>Daniel</param-value> 
    </init-param> 
    <init-param> 
          <param-name>E-mail</param-name> 
          <param-value>[email protected]</param-value> 
    </init-param> 
</servlet> 
经过上面的配置,在servlet中能够调用getServletConfig().getInitParameter("param1")获得参数名对应的值。 



4、指定错误处理页面,可以通过“异常类型”或“错误码”来指定错误处理页面。 
<error-page> 
    <error-code>404</error-code> 
    <location>/error404.jsp</location> 
</error-page> 
----------------------------- 
<error-page> 
    <exception-type>java.lang.Exception<exception-type> 
    <location>/exception.jsp<location> 
</error-page> 



5、设置过滤器:比如设置一个编码过滤器,过滤所有资源 
<filter> 
    <filter-name>XXXCharaSetFilter</filter-name> 
    <filter-class>net.test.CharSetFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>XXXCharaSetFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 



6、设置监听器: 
<listener> 
<listener-class>net.test.XXXLisenet</listener-class> 
</listener> 



7、设置会话(Session)过期时间,其中时间以分钟为单位,假如设置60分钟超时: 
<session-config> 
<session-timeout>60</session-timeout> 
</session-config>

下面我们在/WebContent/WEB-INF/下新建web.xml文件,具体内容如下,里面有一些最基本的配置,里面的配置都有注释:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <description>
      Spring MVC DEOM
    </description>
    <display-name>springMVC</display-name>
    
    <!-- 
        CharacterEncodingFilter类具有encoding和forceEncoding两个属性,其中encoding是表示设置request的编码,forceEncoding表示是否同时设置response的编码。 
        <filter>下的<filter-name>内的值和<filter-mapping>下的<filter-name>内的值要完全一致
    -->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <!-- /下的所有请求都为UTF-8编码 -->
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <!-- 
        Spring MVC相关设置
        <servlet>下的<servlet-name>内的值和<servlet-mapping>下的<servlet-name>内的值要完全一致
    -->
    <servlet>
        <servlet-name>SpringMVC-DEOM</servlet-name>
        <!-- DispatcherServlet主要负责流程的控制 -->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- Spring MVC配置文件路径 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/springMVC-servlet.xml</param-value>
        </init-param>
        <!-- 表示启动容器时初始化该Servlet -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>SpringMVC-DEOM</servlet-name>
        <!-- 表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。 -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
</web-app>

有的初学者可能会说,看了注释好像还是不能完全明白其中的意思,我要说的是,先不要急于完全了解每个配置的含义,等到做的项目多了了解Spring MVC整个运行机制自然会慢慢明白,不可因为看不明白而不去学了,放弃了,要允许暂时存在一些疑问。

2、Spring MVC配置文件 

大家肯定都注意到web.xml文件里有个配置为 “/WEB-INF/springMVC-servlet.xml”  这个文件是Spring MVC的配置文件,Spring官方文档上推荐的默认的文件名是[servlet-name]-servlet.xml文件,这里 servlet-name 叫 springMVC,因此,我新建了一个springMVC-servlet.xml

我们现在在/WEB-INF/下建立一个/springMVC-servlet.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"               
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
  http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
  http://www.springframework.org/schema/util
  http://www.springframework.org/schema/util/spring-util-4.2.xsd
  http://www.springframework.org/schema/context 
  http://www.springframework.org/schema/context/spring-context-4.2.xsd
  http://www.springframework.org/schema/mvc
  http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">
  
  <bean id = "helloworld" class="com.game.controller.Helloworld">
  </bean>
</beans>

这个文件内容不多,里面真正有意义的内容为

 <bean id = "helloworld" class="com.game.controller.Helloworld">
  </bean>

这是啥意思呢? 这个东西叫做bean, Spring 中的bean是什么鬼? 简单来说在Spring启动之前bean就是一个普通java类,但不是说所有的java类都是bean ,如果一个普通类想要成为bean必须要在配置文件里配置,就是说每一个bean都要对应一个java类文件,就是上面你看到的。每一个Bean对应通常需要指定两个属性。

        id:确定该Bean的唯一标识符,容器对Bean管理、访问、以及该Bean的依赖关系,都通过该属性完成。Bean的id属性在Spring 配置文件中是唯一的。    

        class:指定该Bean的具体实现类。注意这里不能使接口。通常情况下,Spring会直接使用new关键字创建该Bean的实例,因此,这里必须提供Bean实现类的类名。

当Spring 启动之后会把配置文件(<bean>)里的这些java类,new 一个对象,存在Spring 里(有的地方称为 Spring 容器),有可能会有很多对象在Spring 里面(多个bean),当我们写代码的时候就可以直接去用这些对象,而不用再去创建对象了。注意:只有在配置文件里声明过的类才会被创建对象,其他的类不会被创建为bean。

那么bean是什么呢? bean就是存在于Spring 容器中的对象。如果把Spring 比作一辆汽车,bean就是汽车里的各个模块零件,比如:发动机,变速箱,电路系统等,当汽车启动时候就已经将他们激活,就可以直接使用这些模块,而不用再去单独启动这些模块。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/w2363075992/article/details/83621650

智能推荐

MySQL数据库——案例:电子商务网站设计_电商购物网站数据库表-程序员宅基地

文章浏览阅读3.1w次,点赞85次,收藏578次。在了解数据库设计的基本流程、规范以后,为了学以致用,本节将以电子商务网站为例,演示如何进行数据库设计。通过实际操作,加深对数据库设计的理解。1、需求分析电子商务网站是一种在互联网上开展电子商务的平台,常见的电子商务网站有淘宝、天猫、京东、亚马逊等。一般来说,电子商务网站最基本的功能是在线购物,它分为前台和后台,后台面向网站的运营人员,用于录人数据,前台面向访问网站的用户,用于选购商品。下面通过表1列举电子商务网站中的一些常见需求。表1 电子商务网站需求说明表1中列举的需求非常多,但对于初学者来说,_电商购物网站数据库表

Spark DataFrame中的join类型_spark dataframe left join-程序员宅基地

文章浏览阅读4.5w次,点赞6次,收藏21次。欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:www hello 百度Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键sdfasdsd* sd*快捷键加粗 Ctrl +_spark dataframe left join

Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法-程序员宅基地

文章浏览阅读274次。转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/44171115大家好,欢迎继续回到Android属性动画完全解析。在上一篇文章当中我们学习了属性动画的一些进阶技巧,包括ValueAnimator和ObjectAnimator的高级用法,那么除了这些之外,当然还有一些其它的高级技巧在等着我们学习,因此本篇文章就对整个属性动画

铁路售票系统的设计分析(时序图、类图)_铁路售票系统类图-程序员宅基地

文章浏览阅读2k次。该文档就是对铁路售票系统的设计分析。内容包括时序图、类图、数据库表。下面是目录和部分内容个人水平有限,有错的地方可以指正。有需要的可以下载参考下载链接:点击下载文档1 . 注册账号时序图2 . 类图..._铁路售票系统类图

SAP ABAP VL02N批次拆分BAPI BAPI_OUTB_DELIVERY_CHANGE BAPI_OUTB_DELIVERY_CONFIRM_DEC_bapi_outb_delivery_change解析-程序员宅基地

文章浏览阅读3.8k次。批次拆分:FORMFRM_CHANGE_DELIVERY_NEWTABLESLT_ITEM_TABSTRUCTUREZTMM0140BUSINGLS_HEAD_TABTYPEZTMM0140A.FIELD-SYMBOLS:<FS_ITEM>TYPEZTMM0140B.DATA:LS_HEADER_DATALIKEBAPIOBDLVH..._bapi_outb_delivery_change解析

角谱衍射计算-程序员宅基地

文章浏览阅读9.8k次,点赞13次,收藏73次。角谱衍射clear allI1=imread('1.jpg');figure(1);imshow(I1);f0=double(I1);[N1,N2]=size(f0);N=min(N1,N2); h=0.000632; %波长(mm)pix=0.00465; %像素宽(mm)z0=inpu...

随便推点

HTML基础教程-程序员宅基地

文章浏览阅读98次。1简介1、什么是 HTML? 1.1标记语言 1.2标记标签2、HTML 标签 2.1由尖括号包围的关键词,比如 <html> 2.2成对出现,比如 <b> 和 </b> 2.3开始标签、结束标签3、HTML 文档 = 网页 3.1HTML 文档包..._览器会移除源代码中多余的空格和空

第2章-4 特殊a串数列求和 (20分)_7-7 特殊a串数列求和 (20 分)给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aa-程序员宅基地

文章浏览阅读178次。给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。输入格式:输入在一行中给出不超过9的正整数a和n。输出格式:在一行中按照“s = 对应的和”的格式输出。输入样例:2 3输出样例:s = 246AC代码a, n = input().split()n = int(n)num_list = [ int(a*i) for i in range(1,n+1) ]print( "s = {}".format(s._7-7 特殊a串数列求和 (20 分)给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++ +aa a(n个a)之和。

java数据结构(二叉树)-程序员宅基地

文章浏览阅读44次。Node节点: 1 public class Node { 2 public long data; 3 public String sData; 4 public Node leftChild; 5 public Node rightChild; 6 public Node(long data,String sData) { 7 this.data = d..._jdk中有现成的二叉树数据结构吗

记录过程: Android Studio4.2通过NDK调用TNN(预编译的tnn so库)_tnn编译后的接口‘-程序员宅基地

文章浏览阅读1.7k次,点赞2次,收藏7次。目录0. 准备1. 创建android ndk工程2. 分析默认生成的工程3. 写好java native接口4. 实现这些java native方法(jni)5. 修改cpp/CMakeLists.txt, 准备编译cpp工程6. 编译cpp工程7. 编写简单android界面, 测试ImageClassify结果8. 结果环境:win10jdk1.8android studio 4.2.2 SDK Platforms: Android..._tnn编译后的接口‘

小白必须懂的MongoDB的十大总结-程序员宅基地

文章浏览阅读328次。小白必须懂的MongoDB的总结一、MongoDB的认识1、什么是MongoDB?MongoDB 是一个介于关系数据库和非关系数据库之间的开源产品,是最接近于关系型数据库的 NoSQL 数据库。它在轻量级JSON 交换基础之上进行了扩展,即称为 BSON 的方式来描述其无结构化的数据类型。尽管如此它同样可以存储较为复杂的数据类型。它和上一篇文章讲到的Redis有异曲同工之妙。虽然两者均为 N..._mongo andexclude

java mac算法_银行业加密算法,MAC算法算法(java-国密)-程序员宅基地

文章浏览阅读865次,点赞3次,收藏2次。之前自己在网上找相关算法找不到,最后只能自己实现,现在把实现的内容分享给大家,大家可以参考,因为文档不全,所以不完全准确,但在已有环境验证过。/*** mac算法* @author Administrator** 银联用calculateANSIX9_9MAC*/public class MAC {/*** ANSI X9.9MAC算法 * (1) ANSI X9.9MAC算法只使用单倍长密钥。 ..._java mac算法