zoukankan      html  css  js  c++  java
  • Intellij IDEA 2019 + Java Spring MVC + Hibernate学习笔记(2)

    书接上文

    首先根据各种Spring MVC教程,建立了基础的结构,是否合理不知道,姑且先这样,有问题再解决问题。学习新东西,不能怕掉坑里。。。

     

    查询网上别人的经历说需要把根目录下的lib目录下的所有包,复制到web/WEB-INF/lib下,不然tomcat运行不了,我觉得应该是只有有正确的地址引用,应该不至于会出问题。先不复制,掉坑里再说

    下边进行项目配置,打开File->Project Structure,然后选择Modules,再根据下图操作,设置输出目录。我所理解的输出目录类似于.Net里边的bin目录,为什么这东西还得自己配置,不是应该约定好了就是这个目录的吗?

    把输出目录配置好之后点击Apply,然后选择Dependencies选项卡。点击+按钮,配置JARs or directories为D:Springlib,就是项目根目录下的Lib目录,别人配置的是Web/WEB-INF/classes/lib,我的这个没有把根lib下的文件复制到这个目录,所以就只想了D:Springlib目录吗,不知道会不会掉坑里。然后把Libraries也加进来,选择Tomcat 8.5.43

     添加完成后配置web/WEB-INF目录下的web.xml,主要修改拦截器,让Spring可以拦截所有请求,如下图。web.xml功能与.net 中的web.config功能类似。 

    <?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">
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/applicationContext.xml</param-value>
        </context-param>
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <servlet>
            <servlet-name>dispatcher</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>dispatcher</servlet-name>
            <!--<url-pattern>*.form</url-pattern>-->
            <!-- 将拦截器设置为/,拦截所有请求 -->
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    </web-app>

    下边修改WEB-INF/dispatcher-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: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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
    <context:component-scan base-package="cn.webdev.javastudy.controller"/>
    <mvc:default-servlet-handler/>
    <mvc:annotation-driven/>
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          id="internalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    
    </beans>

    <context:component-scan/>下的base-package是配置spring自动扫描base-package对应的路径或者该路径的子包下面的java文件,如果扫描到文件中有@Service,@Component,@Repository,@Controller等这些注解的类,就这些类注册为bean。这里主要是为了处理Controller注解类。

    <mvc:default-servlet-handler/>的作用:由于在web.xml修改了拦截器设置,拦截了所有请求,也包括了静态文件,该配置项就是Spring为了处理静态文件而给出的方案,所有请求首先经过该Servlet检查,静态文件就转给Web服务器处理,不是静态文件就转给DispatcherServlet继续处理。

    <mvc:annotation-driven>会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个必须的Bean。其他的更多功能暂不详细了解。


    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
    id="internalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
    </bean>

    该配置是视图解析器的路径映射设置,作用就是通过前后缀来让Controller能够找到正确的视图

    下面就新建一个Controller,在controller下新建一个HelloSpringMVC.java的文件,返回值为视图的名称。

    package cn.webdev.javastudy.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    @Controller
    @RequestMapping("/hello")
    public class HelloSpringMVC {
    
        @RequestMapping("/SpringMVC")
        public String SpringMVC(Model model)
        {
            model.addAttribute("welcome","Hello Spring MVC!, This is My First Spring MVC Page!");
            return "hello";//视图文件名,如:hello.jsp
        }
    }

    然后在/WEB-INF/jsp/下新建一个hello.jsp文件

    <%--
      Created by IntelliJ IDEA.
      User: Rick
      Date: 2019/7/25
      Time: 17:45
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Hello Spring MVC!</title>
    </head>
    <body>
    ${welcome}
    </body>
    </html>

    运行,自动打开浏览器,输入http://localhost:8080/hello/SpringMVC

    我的第一个SpringMVC程序运行成功


  • 相关阅读:
    C#中将结构类型数据存储到二进制文件中方法
    常用的20个在线工具类网站清单
    PyQt:开发小工具
    PyQt:使用QtDesigner设计界面
    经营策略
    Xmind 8 update 9 破解
    AI: 百度AI实战教学
    DRF:djangorestframework从入门到精通
    python:requests库发送参数+文件
    python:关于postman中生成的基于requests库的接口代码
  • 原文地址:https://www.cnblogs.com/Ricklee/p/11237838.html
Copyright © 2011-2022 走看看