题外:

设置目录为源代码目录

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. (转)oracle group by 和order by的关系(在一起使用注意事项)

    转:http://lzfhope.blog.163.com/blog/static/636399220092554045196/ 环境:oracle 10g单单group by 或者order by本 ...

  2. super_blocks没有导出

    在模块中,通过查询super_blocks列表,来遍历系统中的所有super_block,但是出现与下面类似的错误: http://stackoverflow.com/q/5051111/941650 ...

  3. 并发编程之CAS(二)

    更多Android架构进阶视频学习请点击:https://space.bilibili.com/474380680本篇文章将从以下几个内容来阐述CAS: [CAS原理] [CAS带来的ABA问题] 一 ...

  4. 【小知识】神经网络中的SGD优化器和MSE损失函数

    今天来讲下之前发的一篇极其简单的搭建网络的博客里的一些细节 (前文传送门) 之前的那个文章中,用Pytorch搭建优化器的代码如下: # 设置优化器 optimzer = torch.optim.SG ...

  5. 天道神诀--linux双网卡绑定

    # linux6 双网卡绑定操作步骤 1.彻底关闭NetworkManager service NetworkManager stopchkconfig NetworkManager off 2.编辑 ...

  6. B-彻底删除卸载Ubuntu中的MySQL并重新安装(已验证)

    Ubuntu-16.04,MySQL-5.7,寻找多篇有关如何彻底卸载删除MySQL的博文, 最终验证下面转发博文真实有效,推荐! https://www.jianshu.com/p/c76b31df ...

  7. 待办消息查询sql

    select tsm.TMsgID,tsm.TMID,tsm.FNRID,tm.MainComID, tsm.TMsgName,fb.FBDataTbale, tsm.REMARK,fb.FlowTy ...

  8. spring mvc 配置后,web中的html页面报404,该怎么处理

    问题描述: 在根目录webapp下的jsp页面可以通过url直接访问,而html页面就会报404错误. 解决方案1: 在spring-mvc.xml中添加如下配置: <!--将静态文件指定到某个 ...

  9. BBS论坛 home主页与个人站点主页

    五.Home主页与个人站点主页 home首页代码: # views.py视图函数部分代码def home(request): # 将数据库中的所有文章展示到主页 article_list = mode ...

  10. 2018-2-13-win10-uwp-入门

    title author date CreateTime categories win10 uwp 入门 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:23 ...