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:\Spring\lib,就是项目根目录下的Lib目录,别人配置的是Web/WEB-INF/classes/lib,我的这个没有把根lib下的文件复制到这个目录,所以就只想了D:\Spring\lib目录吗,不知道会不会掉坑里。然后把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程序运行成功
![]()
Intellij IDEA 2019 + Java Spring MVC + Hibernate学习笔记(2)的更多相关文章
- Intellij IDEA 2019 + Java Spring MVC + Hibernate学习笔记(1)
之前的技术栈一直是围绕.net 做的,现在.net 技术栈的使用越来越少,越来越窄.好多原来的同事都转Java开发了. 最近公司变动,自己需要重新找个坑,压力山大.好多要求Java技术栈的根本没机会进 ...
- Intellij IDEA采用Maven+Spring MVC+Hibernate的架构搭建一个java web项目
原文:Java web 项目搭建 Java web 项目搭建 简介 在上一节java web环境搭建中,我们配置了开发java web项目最基本的环境,现在我们将采用Spring MVC+Spring ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:SSM(Spring+Spring MVC+MyBatis)框架整合搭建详细步骤
因为 Spring MVC 是 Spring 框架中的一个子模块,所以 Spring 与 SpringMVC 之间不存在整合的问题.实际上,SSM 框架的整合只涉及 Spring 与 MyBatis ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:SSH框架(Struts2+Spring+Hibernate)搭建整合详细步骤
在实际项目的开发中,为了充分利用各个框架的优点,通常都会把 Spring 与其他框架整合在一起使用. 整合就是将不同的框架放在一个项目中,共同使用它们的技术,发挥它们的优点,并形成互补.一般而言,在进 ...
- spring mvc 注解 学习笔记(一)
以前接触过spring,但是没有接触spring mvc 以及注解的应用,特习之,记之: 注解了解 @Component 是通用标注, @Controller 标注web控制器, @Service 标 ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring框架的基本思想
EJB的学习成本很高,开发效率却不高,需要编写很多重复的代码,这些问题阻止了EJB的继续发展.就在EJB技术止步不前的时候,Spring框架在合适的时机出现了,Spring框架和EJB不同,Sprin ...
- Spring MVC的学习笔记
基于注解形式配置Spring MVC 一.注册并初始化DispatcherServlet,由Servlet容器自动检测并启动 注解形式 public class MyWebApplicationIni ...
- Spring+Struts2/Hibernate 学习笔记
============Spring与Struts2整合============ (1)拷JAR包(Spring.Struts2) (2)配置org.springframework.web.conte ...
- spring MVC (学习笔记)
web.xml 相关配置 <?xml version="1.0" encoding="UTF-8"?><web-app xmlns=" ...
随机推荐
- .net打杂工程师的面试感想和总结
上个月26号辞职了,今天开始第一场面试,随便写写感想,后面还会继续分享一些感想 前言 这个时候找工作是不是找死? 开门见山吧,95年的,之前做过两份工作,第一家公司在做了2年2个月,在北京,也就是去年 ...
- Flutter学习笔记(24)--SingleChildScrollView滚动组件
如需转载,请注明出处:Flutter学习笔记(23)--多 在我们实际的项目开发中,经常会遇到页面UI内容过多,导致手机一屏展示不完的情况出现,以Android为例,在Android中遇到这类情况的做 ...
- Selenium3 + Python3自动化测试系列六——等待方式
等待 一.等待是什么,为什么要等待 在做自动化测试,设计测试用例的时候,有时下一步的操作会依赖上一步的结果或者内容,上一步操作成功之后才能进行下一步操作等, 这时候,我们就需要使用等待,来判断上一步操 ...
- 借助腾讯云的云函数实现一个极简的API网关
借助腾讯云的云函数实现一个极简的API网关 Intro 微信小程序的域名需要备案,但是没有大陆的服务器,而且觉得备案有些繁琐,起初做的小程序都有点想要放弃了,后来了解到腾讯云的云函数,于是利用腾讯云的 ...
- 实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署
最初在tomcat上部署web应用的方式,是通过maven的maven-compiler-plugin插件先打成war包,再将war包复制到tomcat的webapps目录下,后来用上了tomcat7 ...
- ajax调用免费的天气API
最近在做项目中要用到调用天气接口,在网上找了很多资料之后发现https://www.tianqiapi.com/的天气API挺好的,好用而且免费,调用也很简单.在此做个笔记,大家一起学习交流,如有问题 ...
- HDU 6052
题意略. 思路:我们单独考虑每种颜色的贡献,颜色c对答案的贡献 == 含有c的矩形个数,这就是在考查我们计数的能力,暴力可过. #include<bits/stdc++.h> #defin ...
- HTML连载34-背景关联和缩写以及插图图片和背景图片的区别
一.背景属性缩写的格式 1.backgound:背景颜色 背景图片 平铺方式 关联方式 定位方式 2.注意点: 这里的所有值都可以省略,但是至少需要一个 3.什么是背景关联方式 默认情况下,背 ...
- java后台图片上传预检失败解决方案
1.首先因为服务器端会先发送一个option请求到后台 在后台返回一个post给页面 页面在处理post请求给接口 2.先写一个过滤器, 我们自己定义一个过滤器 package com.adtime ...
- 洛谷P1217回文质数-Prime Palindrome回溯
P1217 [USACO1.5]回文质数 Prime Palindromes 题意:给定一个区间,输出其中的回文质数: 学习了洛谷大佬的回溯写法,感觉自己写回溯的能力不是很强: #include &l ...