题外:

设置目录为源代码目录

1.进入:file->project structure->modules->soures

进入这个里面,选择相应的文件夹。例如src/java里的java.选择之后再点击蓝色的soures,java目录就设置为了source Folders(源文件)。返回,会看到原本灰色的java目录变为蓝色。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
 
    <servlet>
        <!--自定义,一般为类名-->
        <servlet-name>servletDemo1</servlet-name>
        <!--一定是package + .类名-->
        <servlet-class>day08_servlet.ServletDemo1</servlet-class>
    </servlet>
    <!--给Servlet提供(映射)一个可供客户端访问的URI-->
    <servlet-mapping>
        <!--和servlet中的name必须相同-->
        <servlet-name>servletDemo1</servlet-name>
        <!-- servlet的映射路径 -->
        <url-pattern>/servlet</url-pattern>
    </servlet-mapping>
   
</web-app>


创建第一个spirngmvc小项目:

1.创建maven项目,选择maven type web骨架,groudId,项目名,点击完成。等待。。。

出现相应的目录。

2.点击run,设置server : 服务器tomcat基本配置,设置deployment : 部署项目war包。下一节再记录application context设置与不设置的区别。最后测试:页面有hello world!

3.再main目录下创建java目录,设置其为源代码目录。

4.创建环境:引入依赖:spring的核心jar包(4个),还有一个jcl。再引入spring里web相关的jar包:spring-web,spring-webmvc

5.再java目录下创建一个com.abc.handler包,再该包下创建SomeHandler类。让该类实现controller(org.spingframework.web.servlet.mvc下的接口)     =====  public class SomeHandler implements Controller{...

6.实现该接口的方法后,发现javax.servlet.http类没有,所以要导入依赖。这个类是tomcat里的类,所以导入tomcat依赖即可。在maven里搜索Tomcat Catalina,选择9.0+的版本。导入该依赖。

7.再WEB-INF目录下创建一个jsp目录,再jsp目录下创建一个welcome.jsp.

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
欢迎你使用springmvc
</body>
</html> 再写index.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %
<html>
<body>
<h2>Hello World!</h2>
<%--href="some"时是到发布的项目目录下找:访问网址是http://localhost/springmvc/some
href="/some"是直接到服务器下找:访问网址是http://localhost/some--%>
<a href="some">请求</a> </body>
</html>

8.再web.xml配置中servlet,

(首先把web.xml约束版本改为tomcat对应的版本:

本地tomcat文件夹->webapps->examples->。。这个好像不用改了)

<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>springmvc</servlet-name>
<!--写的那个servlet-->
<servlet-class></servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--servlet的映射路径 :是jsp通过这个路径请求后,再通过springmvc找servlet-class是谁-->
<url-pattern>/some</url-pattern>
</servlet-mapping>
</web-app>
发现<servlet-class></servlet-class>标签内没有合适的servlet可以填。
实际上再springMVC中提供了中央调度器,提供了servlet
9.在<servlet-class></servlet-class>标签内鼠标右键点击,再按ctrl+shift+t,可以边写类名,边显示继承关系。打出DispatcherServlet,它是springMVC提供的一个servlet,所有的请求都先经过它。
10.<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>把所有想到处理器的请求都先交给中央调度器:DispatcherServlet。然后中央调度器再分给请求相应的处理器。
11.怎么分配:
a:配置springmvc.xml文件(和spring配置文件一样)
b:在配置文件里注册处理器:<bean id="/some" class="com.abc.handler.SomeHandler"/>
意思是如果有/some的请求的时候,就去找com.abc.handler.SomeHandler,SomeHandler实体类。
(1).但是在这个之前DispatcherServlet首先要能够找到springmvc.xml.如果没有在web.xml配置 <init-param>标签如下,DispatcherServlet会默认在webapp目录下找名叫springmvc-servlet.xml,
当然你也可以把springmvc.xml改名为springmvc-servlet.xml,然后放到WEB-INF目录下,也是能够成功的。如下图:

(2).如果在web.xml配置 <init-param>标签,即我不想把springmvc.xml改名为springmvc-servlet.xml,想把springmvc.xml放在java代码那边。

首先我把这个文件放在java目录下,然后 <param-value>classpath:springmvc.xml</param-value>里找不到springmvc.xml.

因为springmvc.xml此时必须放在类路经下才能找到,

<!--中央调度器-->
<servlet>
<servlet-name>springmvc</servlet-name>
<!--写的那个servlet-->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>

但是java目录不是类路径,classes才是类路经。

classes文件经过编译才能出现,怎么让springmvc.xml 成为类路径有两种方法:

1.在pom.xml配置,

2.在main目录下创建一个resources目录,把springmvc.xml放在resouces目录下,然后将resoures目录设置为资源文件

这是以后常见的目录结构:

c:实现需求:用一个<url-pattern></url-pattern>传递多个页面请求到DispatcherServlet里,再到handler。
如果写”/“会把所有的静态请求都交给中央调度器,所以如果ggg.html也会给handler,会发生找不到404的错误,不建议使用
如果写”/*“的话,会把所有的请求都交给中央调度器,包括动态index.jsp,所以不能使用
用*.do或者*.go可以解决这个需求:
1.让提交请求的路径后面加上.do 例如:<a href="some.do">
2.在注册的时候也写上"/请求路径.do"
3.<url-pattern>*.do</url-pattern>
即所有后缀为.do的请求都可以被中央调度器接收了,不加就不用接收了


 

创建第一个spirngmvc小项目的更多相关文章

  1. spring boot学习01【搭建环境、创建第一个spring boot项目】

    1.给eclipse安装spring boot插件 Eclipse中安装Spring工具套件(STS): Help -> Eclipse Marketplace... 在Search标签或者Po ...

  2. Extjs6(一)——用sencha cmd建立一个ExtJs小项目

    本文基于ext-6.0.0 一.用sencha cmd建立一个ExtJs小项目 首先,需要一个命令行工具.进入extjs所在目录. 然后,输入:sencha -sdk [ExtJs6.0文件夹地址] ...

  3. 又见angular----步一步做一个angular4小项目

    这两天看了看angular4的文档,发现他和angular1.X的差别真的是太大了,官方给出的那个管理英雄的Demo是一个非常好的入门项目,这里给出一个管理个人计划的小项目,从头至尾一步一步讲解如何去 ...

  4. NodeJS笔记(三)-创建第一个NodeJS web项目 Express

    参考:Express的安装 先创建一个文件夹专门存放NodeJS项目,这里以“E:\NodeJSProject”为例 CMD指向该目录 执行以下命名 mkdir expressdemo cd expr ...

  5. Eclipse创建第一个Spring Boot项目

    一.安装SpringBoot插件 安装过程需要联网下载插件,属于在线安装,请耐心等待安装完成,下载安装完成以后,需要重启Eclipse 二.创建Spring Boot项目 如下图所示new-other ...

  6. idea创建第一个maven web项目

    一.打开idea,File->New->Project.选择Mavne,勾选Create from archtype,选择org.apache.maven.archtypes:maven- ...

  7. 使用模板创建第一个Web API项目

    软件环境 vs 2015 update3 本节将通过例子讲述创建Web API 项目的方法 第一步,打开vs ,依次通过[文件]菜单,[新建][项目]命令,大致步骤如下图 :   第2步,在弹出对话框 ...

  8. Windows10安装node.js,vue.js以及创建第一个vue.js项目

    [工具官网] Node.js : http://nodejs.cn/ 淘宝NPM: https://npm.taobao.org/ 一.安装环境 1.本机系统:Windows 10 Pro(64位)2 ...

  9. ASP.NET Core系列(二):创建第一个.Net Core 项目

    前面讲过 .NET Core简介及开发环境安装,本章会讲一讲ASP.NET Core 2.0的项目结构,查看完整的ASP.NET Core系列文章:https://www.cnblogs.com/zh ...

随机推荐

  1. (转)Linux环境进程间通信----系统 V 消息队列列

    转:http://www.ibm.com/developerworks/cn/linux/l-ipc/part3/ 消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点.作为早期unix通 ...

  2. P1493 分梨子

    P1493 分梨子 题目描述 Finley家的院子里有棵梨树,最近收获了许多梨子.于是,Finley决定挑出一些梨子,分给幼稚园的宝宝们.可是梨子大小味道都不太一样,一定要尽量挑选那些差不多的梨子分给 ...

  3. Linux上VNC 启动和关闭

    查询vnc的线程: [admin@cn2-uat-esb-01-0001 ~]$ ps -ef|grep vncadmin 19080 21305 0 10:04 pts/2 00:00:00 gre ...

  4. HTML中margin和padding的区别

    我们以DIV为一个盒子例子,既然和显示生活中的盒子一样,那我们想一下,生活中的盒子 内部是不是空的好用来存放东西,而里面存放东西的区域我们给他起个名字叫“content(内 容)”,而盒子的纸壁给他起 ...

  5. Unity5.2.1上Android真机调试环境配置

    下载SDK,JDK安装,配置JAVA环境 1.下载SDK,下载adt-bundle-windows-x86_64-20131030.zip,下载地址:http://pan.baidu.com/shar ...

  6. Django框架(三)—— orm增删改查、Django生命周期

    目录 orm增删改查.Django生命周期 一.orm介绍 二.orm增删改字段 三.Django生命周期 orm增删改查.Django生命周期 一.orm介绍 1.什么是orm ORM即Object ...

  7. 《代码大全2》读书笔记 Week4

    <代码大全2>第8章:防御式编程 防御式编程的主要思想是子程序应该不因为非法的输入值被破坏,就好比开车时的防御式驾驶:你无法预估其他司机将会做什么,但你要采取措施保证当他人做出危险动作时自 ...

  8. 微信小程序开发之https服务器搭建三步曲

    本篇文章主要讲述3个方面的内容,如下: 1.SSL证书的获取 2.服务器 Nginx SSL 证书的配置. 3.如何兼容80端口和443端口以及为什么要同时兼容这两个端口. 1.SSL证书的获取 ht ...

  9. 函数中的toString

    function Person(){ this.name = name; this.age = age; this . gender = gender;  } //  创建一个Person实例 var ...

  10. jeecg问题汇总

    (1)使用代码生成器后记得修改spring扫描配置路径entity,dao,control control在jeecg\src\main\resources\spring-mvc.xml中配置 ent ...