手搭手入门SpringMVC

简介: 关于Tomcat服务器的目录bin: 该目录是Tomcat服务器的命令文件存放的目录,打开关闭Tomcatconf: 该目录是Tomcat服务器的配置文件存放目录。(Server.xml文件中可以配置端口号,默认Tomcat端口是8080)

8.pngTomcat安装

Linux安装Tomcat https://bbs.huaweicloud.com/blogs/307171

Windos配置Tomcat

9.png

10.png

关于Tomcat服务器的目录

bin: 该目录是Tomcat服务器的命令文件存放的目录,打开关闭Tomcat

conf: 该目录是Tomcat服务器的配置文件存放目录。(Server.xml文件中可以配置端口号,默认Tomcat端口是8080)

lib: 该目录是Tom服务器核心程序目录,因为Tomcat服务器是java语言编写的,这里的jar包里面都是class文件。

logs: Tomcat服务器的日志目录,Tomcat服务器启动等信息都会在这个目录下生成日志文件。

temp: Tomcat服务器的临时目录。存储在临时文件。

webapps: 该目录当中就是用来存放大量的webapp(web application web应用)

work: 该目录



windos启动tomcat


14.png15.png16.png





浏览器访问

http://localhost:8080/

http://127.0.0.1:8080/

在Tomcat实现一个基本webapp应用

第一步:CATALINA_HOME/webapps 所有webapp要放到webaps目录下

第二步:CATALINA_HOME/webapps 下新建子目录,

第三步:在新建的子目录下创建资源文件

<!doctype html>

<html>

<head>

<title>index page</title>

<body>

<h1>hello world webapp</h1>

</body>

</head>

</html>

第四步:浏览器访问http://127.0.0.1:8080/demo/

在浏览器中加入一个超链接

<!-- 绝对路径 -->

<a href="/demo/test.html">test</a>

<a href="https://www.bilibili.com/">test2</a>


 



Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等等。


浏览器软件

WEB Server

DB Server

webapp

webapp与WEB Server直接有一套规范:JavaEE规范之Servlet规范。

Servlet的作用:webapp与WEB Server解耦合

Browser和WebServer之间有一套传输协议:http协议

webapp和DB Server之间有一套规范:JDBC规范

Servlet接口是Oracle提供的

Servlet接口是JavaEE的规范的成员

Tomcat服务器实现了Servlet规范,所以Tomcat服务器也需要使用Servlet

解决IDEA控制台乱码问题







解决Tomcat在windos的DOS窗口乱码问题

将UTF-8修改为GBK

7.png


IDEA集成Tomcat

11.png12.png




IDEA项目关联Tomcat


4.png5.png6.png





SpringMVC开发步骤

IDEA新建空项目


3.png1.png2.png


或者  


33.png


Pom.xml配置

添加SpringMVC的依赖,添加Servlet的依赖


<!--      添加Springmvc的依赖-->

 <dependency>

     <groupId>org.springframework</groupId>

     <artifactId>spring-webmvc</artifactId>

     <version>5.2.5.RELEASE</version>

 </dependency>

<!--    添加servlet的依赖-->

 <dependency>

     <groupId>javax.servlet</groupId>

     <artifactId>javax.servlet-api</artifactId>

     <version>4.0.1</version>

 </dependency>

32.png

<!--  指定资源文件-->

 <build>

   <resources>

     <resource>

       <directory>src/main/java</directory>

       <includes>

         <include>**/*.xml</include>

         <include>**/*.properties</include>

       </includes>

     </resource>

     <resource>

       <directory>src/main/resources</directory>

       <includes>

         <include>**/*.xml</include>

         <include>**/*.properties</include>

       </includes>

     </resource>

   </resources>

 </build>


添加springmvc.xml配置文件+main.jsp页面


31.png

Springmvc.xml配置

SpringMVC.xml配置文件,指定包扫描,添加ViewResolver(视图解析器)

28.png



<!--    包扫描-->

<context:component-scan base-package="com.qgs.controller"/>

<!--    视图解析器-->

   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

       <!--配置前缀-->

       <property name="prefix" value="/admin/"></property>

       <!--配置后缀-->

       <property name="suffix" value=".jsp"></property>

   </bean>


26.png27.png



原理

在web.xml文件中注册SpringMVC框架(所有的web请求都是基于servlet)、在webapp目录下新建admin目录并新建main.jsp页面,新代替建index.jsp页面,发送请求给服务器


23.png


注册DispatcherServlet

DispatcherServlet要在web.xml文件中注册才可用


SpringMVC框架注册

删除模板中的旧版本web.xml,更换新版本

24.png25.png




<?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">

   <!--    注册SpringMVC框架-->

   <servlet>

       <servlet-name>springmvc01</servlet-name>

       <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>

   <servlet-mapping>

       <servlet-name>springmvc01</servlet-name>

       <url-pattern>*.action</url-pattern>

   </servlet-mapping>

</web-app>


使用springmvc跳转页面


21.png22.png



springmvc.xml配置

<!--    组件扫描-->

   <context:component-scan base-package="com.qgs.controller"/>

   <!--    视图解析器-->

   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

       <!--配置前缀-->

       <property name="prefix" value="/admin/"></property>

       <!--配置后缀-->

       <property name="suffix" value=".jsp"></property>

   </bean>

web.xml配置

<!--    注册SpringMVC框架-->

<servlet>

   <servlet-name>springmvc01</servlet-name>

   <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>

<servlet-mapping>

   <servlet-name>springmvc01</servlet-name>

   <url-pattern>*.action</url-pattern>

</servlet-mapping>

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

   <title>Title</title>

</head>

<body>

<a href="${pageContext.request.contextPath}/demo.action">跳转</a>

</body>

</html>

Servlet对象

//Spring创建Servlet对象

@Controller

public class testAction  {

/**

* action中的功能实现由方法来完成

*

* action方法规范

* 访问选择public

* 方法返回值任意、方法名称任意、方法可以没有参数也可以是任意类型

*需要@RequestMapping注解声明访问路径

*

*/

@RequestMapping("/demo")

public String demo(){

   return "main";//跳转至main.jsp页面

}

}

17.png18.png





main.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

   <title>Title</title>

</head>

<body>

<h2>hello main</h2>

</body>

</html>

Tomcat配置



16.png15.png



                     


@RequestMapping详解

@RequestMappin映射服务器访问的路径

@RequestMappin可区分get请求和post请求

@RequestMappin的定义请求规则

通过@RequestMappin注解额可以定义处理器对于请求的映射规则。该注解可以注解在方法上。也可以注解在类上,但意义是不同的。

@RequestMappin的value属性用于定义所匹配请求的URI。 Value属性值常以”/”开始。

@Controller所注解的类中,可以定义多个处理方法。不同的处理方法所匹配的URI是不同的。这些不同的URL被指定在注解与方法之上的@RequestMappin的value属性中。


如类上和方法上都有@RequestMappin注解,则(虚拟路径)路径为${pageContext.request.contextPath} /test/demo

如类上没有@RequestMappin注解而方法有,则(虚拟路径)路径为${pageContext.request.contextPath} /demo

14.png



@RequestMappin区分get请求和post请求

@RequestMapping(value = "/demo",method = RequestMethod.GET)

public String demo(){

   return "main";//跳转至main.jsp页面

}

@RequestMapping(value = "/demo",method = RequestMethod.POST)

public String demo2(){

   return "main";//跳转至main.jsp页面

}

action方法的返回值

五种返回类型值ModelAndView、String、void、Object、基本数据类型


Object:返回json格式的对象,自动将对象或集合转为json,使用Jackson工具进行转换,必须要添加jackson依赖,一般用于ajax请求。

Void:无返回值:一般用于ajax请求。

基本数据类型:用于ajax请求。

ModelAndView:返回数据和视图对象。(很少用)

String:资源地址,自动拼接前缀和后缀,还可以屏蔽自动拼接字符串,指定返回的路径


13.png


如有错误请指正,谢谢


致敬每一位自学者,加油


目录
相关文章
|
2月前
|
XML 前端开发 Java
SpringMVC入门到实战------2、SpringMVC创建实例Hello SpringMVC(maven+tomcat)
这篇文章是SpringMVC框架的入门教程,详细指导了如何在IDEA中使用Maven和Tomcat创建SpringMVC工程,包括添加依赖、配置web.xml、编写控制器、创建配置文件、配置Tomcat服务器以及进行基本的测试,展示了一个简单的Hello SpringMVC示例。
SpringMVC入门到实战------2、SpringMVC创建实例Hello SpringMVC(maven+tomcat)
|
11月前
|
JSON 前端开发 Java
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(下)
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(下)
99 0
SpringMVC入门到实战------5、域对象共享数据 Request、Session、Application、Model、ModelAndView、Map、ModelMap的详细使用及代码实例
这篇文章详细解释了在IntelliJ IDEA中如何使用Mute Breakpoints功能来快速跳过程序中的后续断点,并展示了如何一键清空所有设置的断点。
SpringMVC入门到实战------5、域对象共享数据 Request、Session、Application、Model、ModelAndView、Map、ModelMap的详细使用及代码实例
|
2月前
|
存储 前端开发 Java
SpringMVC入门到实战------1、SpringMVC简介
这篇文章是SpringMVC框架的入门介绍,阐述了MVC架构的概念和分层,解释了SpringMVC作为Spring家族的一部分在Web应用开发中的作用和重要性,并概述了SpringMVC的关键特点,包括与Spring IOC容器的无缝集成、基于Servlet的DispatcherServlet、全面的解决方案、代码简洁性、高内聚低耦合的组件化设计以及卓越的性能表现。
SpringMVC入门到实战------ 十一 拦截器的使用
这篇文章介绍了SpringMVC中拦截器的使用,包括拦截器的配置、拦截器的三个抽象方法`preHandle`、`postHandle`和`afterCompletion`的作用,以及多个拦截器的执行顺序和规则。
SpringMVC入门到实战------ 十一 拦截器的使用
|
2月前
|
JSON 前端开发 JavaScript
SpringMVC入门到实战------九 HttpMessageConverter @RequestBody 、@ResponseBody 、RequestEntity、ResponseEntity
这篇文章详细介绍了SpringMVC中的`HttpMessageConverter`接口及其相关的`@RequestBody`、`@ResponseBody`、`RequestEntity`和`ResponseEntity`注解和类型的使用,包括如何将请求体转换为Java对象、如何将Java对象转换为响应体、以及如何处理JSON和AJAX请求。
SpringMVC入门到实战------九 HttpMessageConverter @RequestBody 、@ResponseBody 、RequestEntity、ResponseEntity
|
2月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
2月前
|
缓存 Java 应用服务中间件
SpringMVC入门到实战------七、SpringMVC创建JSP页面的详细过程+配置模板+实现页面跳转+配置Tomcat。JSP和HTML配置模板的差异对比(二)
这篇文章详细介绍了在SpringMVC中创建JSP页面的全过程,包括项目的创建、配置、Tomcat的设置,以及如何实现页面跳转和配置模板解析器,最后还对比了JSP和HTML模板解析的差异。
SpringMVC入门到实战------七、SpringMVC创建JSP页面的详细过程+配置模板+实现页面跳转+配置Tomcat。JSP和HTML配置模板的差异对比(二)
|
2月前
|
XML JSON 数据库
SpringMVC入门到实战------七、RESTful的详细介绍和使用 具体代码案例分析(一)
这篇文章详细介绍了RESTful的概念、实现方式,以及如何在SpringMVC中使用HiddenHttpMethodFilter来处理PUT和DELETE请求,并通过具体代码案例分析了RESTful的使用。
SpringMVC入门到实战------七、RESTful的详细介绍和使用 具体代码案例分析(一)
|
2月前
|
前端开发
SpringMVC入门到实战------六、SpringMVC的视图。ThymeleafView、转发视图、重定向视图、视图控制器的使用详解
这篇文章详细介绍了SpringMVC中的视图类型,包括ThymeleafView、转发视图、重定向视图和视图控制器的使用,以及如何通过源码查看确定使用的视图渲染器类型。
SpringMVC入门到实战------六、SpringMVC的视图。ThymeleafView、转发视图、重定向视图、视图控制器的使用详解
下一篇
无影云桌面