使用SpringMVC创建第一个项目HelloWorld

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44296929/article/details/102456000
SpringMVC-HelloWorld
  • Eclipse
  • SpringMVC
  • Maven
  • Tomcat

1.创建项目:

一、创建Maven Project,勾选Create a simple project,然后,GroupId值为cn.tedu.spring,Artifact Id值为SPRINGMVC-HELLOWORLDPackage选择war(名称可以自己随便定义)
在这里插入图片描述
二、接下来需要执行4个步骤(每次创建项目时都需要做的事情):
1.生成web.xml文件
注:这里创建好项目以后要给项目生成web.xml文件,否则会报错 (鼠标右键点击项目->JavaEE tools->Generate Deployment Descriptor Stub)
在这里插入图片描述
2.添加依赖:目前这里只添加了springMVC的依赖,后续需要什么在此处添加即可
在这里插入图片描述
3.配置springmvc.xml文件到当前项目src/main/resources中(下面是spring.xml添加的目录位置)
目录结构:
下面是spring.xml暂时添加的配置信息。(配置前缀后缀和组件扫描的位置,前后缀可以自己根据需求自定义,当前组件扫描的是整个项目。)
spring.xml暂时添加的配置
4.为项目中添加Tomcat运行环境;(项目右键->properties->Targeted Runtimes 进行添加,我这里是直接配置好的。)
在这里插入图片描述

2.配置DispatcherServlet
由于需要DispatcherServlet接收所有的请求,所以首先必须在web.xml中配置它。

<!-- 配置DispatcherServlet -->
	<servlet>
		<servlet-name>SpringMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>SpringMVC</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

经过以上配置,则任何以 .do 作为后缀的请求,都将由DispatcherServlet来处理!
注:由于项目是基于Spring的,希望项目启动时就加载Spring的配置文件,并使得DispatcherServlet已经完成初始化可以随时接收请求,所以,还需要进一步的配置。

<!-- 配置DispatcherServlet -->
	<servlet>
		<servlet-name>SpringMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 配置spring的配置文件 -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring.xml</param-value>
		</init-param>
		<!-- 启动Tomcat时即初始化该Servlet 该配置是优先级:1的优先级最高最先加载-->
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>SpringMVC</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

至此,当项目启动时,就会初始化DispatcherServlet,并且,在初始化过程中,会加载Spring配置文件。
3.测试:
在src\main\java中创建一个测试类cn.tedu.spring.test.Test,并且,显式的添加构造方法,并输出内容:注:记得添加component注解

package cn.tedu.spring.test;
import org.springframework.stereotype.Component;
@Component
public class Test {
	public Test() {
		System.out.println("已经加载Spring配置文件!");
	}
}

最终,把项目部署到Tomcat,并启动Tomcat,在启动日志中如果能够看到以上输出语句,则配置成功!
在这里插入图片描述
4.设计目标:
发送请求http://localhost:8080/项目名称/hello.do,要求在界面中显示HelloWorld字样。

分析:以上完成了流程中的第一步,接下来,如果发出hello.do请求,就会被DispatcherServlet接收得到,然后,DispatcherServlet应该根据hello.do的请求路径去询问HandlerMapping得知由哪个控制器去处理请求,原始的实现方式是使用SimpleUrlHandlerMapping类去进行配置,不过,这种配置方式非常麻烦,而且,对应关系不明确(所有的路径与控制器的配置都在同一个配置文件中,导致不便于管理),所以,后续都是使用注解完成相关配置,则在开发过程中,跳过第2步和第3步(只是开发时不用关注,框架的执行流程不变)。

1.处理请求:
为确保有控制器处理请求,所以,创建HelloController:在这里插入图片描述
所有的控制器都应该由spring管理,所以,需要为控制器类添加@Controller注解:

@Controller
public class HelloController {
}

然后,在类中自定义处理请求的方法,方法的访问权限是public的,返回值暂时使用String,方法的名称可以自由自已,方法的参数暂时留空。

public String showHello() {
}

在SpringMVC中,请求对应的可以是某个方法,而不一定每个请求对应一个控制器类,如果请求对应的是以上方法,则需要在方法的声明之前添加@RequestMapping("/hello.do"):

@RequestMapping("/hello.do")
public String showHello() {
}

完成以上配置后,即表示:路径为:/hello.do的请求将触发showHello()方法被执行!
测试:
以上方法中输出任意语句,然后启动项目,请求对应的路径,观察控制台输出:

@RequestMapping("/hello.do")
public String showHello() {
	System.out.println(
		"HelloController.showHello()");
	return null;
}

此时请求 http://localhost:8080/SPRINGMVC-HELLOWORLD/hello.do 则控制台会输出以下内容。在这里插入图片描述
2.显示页面
至此,执行流程已经完成前4步,接下来控制器应该向DispatcherServlet返回结果:

@RequestMapping("/hello.do")
public String showHello() {
	// 测试
	System.out.println(
		"HelloController.showHello()");
	// 返回视图组件的名称
	return "helloworld";
}

以上返回的字符串表示最终负责显示的视图组件名称,但是,并不表示哪个文件!由于我们之前在spring.xml中配置了前缀和后缀,所以返回的helloworld就相当于告诉 DispatcherServlet返回具体页面的位置和页面名称,即webapp/WEB-INF/helloworld.jsp文件。
此时我们添加一个helloworld.jsp文件。
在这里插入图片描述
在这里插入图片描述
这时,我们重新启动Tomcat,访问路径后,会成功访问helloworld.jsp并显示HelloWorld!!!
在这里插入图片描述

总结:
1.本案例中关于web.xml中的DispatcherServlet的配置,和springxml中的InternalResourceViewResolver的配置,是相对固定的配置,在后续的项目开发时可以直接复制使用,但是,注意理解配置的值的意义;
2.处理请求的方法的声明语句应该是public String xx()
3.处理请求的方法的返回值可以理解为JSP的文件名;

练习:使用SpringMVC实现简单的注册登录功能(带拦截器):

1、创建新项目 SPRINGMVC-USER,
2、要求对 /reg.do和 /login.do 能作出响应,响应方式是显示 reg.jsp 和 login.jsp 页面。
3、注册页(reg.jsp)要求有用户名、密码、年龄、手机、邮箱这5个输入项和1个提交按钮。
4、登录页(login.jsp)要求有用户名、密码这2个输入项和1个提交按钮。
5、登录成功以后可以跳转到user_info.jsp和user_password.jsp页面。

如果文章能对你有一点点帮助,请点个赞吧!

猜你喜欢

转载自blog.csdn.net/weixin_44296929/article/details/102456000