• 创建第一个spirngmvc小项目


    题外:

    设置目录为源代码目录

    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的请求都可以被中央调度器接收了,不加就不用接收了
    
    
    
    
    
    
    
    
    
     
    与其战胜敌人一万次,不如战胜自己一次。
  • 相关阅读:
    Siri
    ArcSDE和Geodatabase10.1抢先版谍照介绍(3)——ArcToolbox工具和其他功能
    ‘马太’效应
    Linux琐屑下Resin JSP MySQL的布置和设置配备陈设2
    平安防御:分级防御对Linux服务器的攻击
    Linux无法解析域名的处理活动
    Ubuntu Linux Server的用户僻静后果分析
    大概要领确保确保Linux体系中SSH的安适性
    无错版Vsftpd Mysql Pam设置虚拟用户要领
    Redhat Linux AS4下的LAMP与Discuz装置1
  • 原文地址:https://www.cnblogs.com/hyjh/p/11836749.html
Copyright © 2020-2023  润新知