springmvc简单入门案例1

最近在学习java的框架,简单学完ssh以后,为了工作,为了更高效率的开发,有必要学习一下springmvc,菜鸟一枚
只能简单的入门。
springmvc框架的简介:是一种在web层的框架,Spring MVC 框架主要由 DispatcherServlet、处理器映射器、处理器适
配器、处理器(控制器)、视图解析器、视图组成。初学者可能对这些不明白,我自己的学习方式是不管先弄一个demo出
来,然后根据案例在根据自己的理解去学习这些组件,学了一段时间以后,再回来,根据自己的理解理清整个程序的运
行流程
第一个springmvc案例
一个简单的表单的提交案例:
1、创建一个web工程
2、导入必须的jar包
3、引入springmvc的配置文件(刚开始什么都不需要做,只要将扫描包里面写成我们自己写的包)
4、在web.xml配置文件中配置一个转发器(代码都是固定的 ,可以先直接复制)
5、写处理的方法的类,相当于之前学习的servlet用来处理用户的请求以及转发页面等
6、编写jsp页面,创建一个表单的提交事件,通过表单提交发送数据给服务器
7、服务器接收到数据,然后做出处理,最后返回给客户端
下面贴上代码:
配置文件
web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>SpringMVCProject</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <!-- 配置SpringMVC前端控制器 -->
	<servlet>
		<servlet-name>mySpringMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 指定SpringMVC配置文件 -->
		<!-- SpringMVC的配置文件的默认路径是/WEB-INF/${servlet-name}-servlet.xml -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springmvc.xml</param-value>
		</init-param>
		<!--启动服务器,加载SpringMVC控制器 -->
		<!-- 设置这个以后,就可以让用户在发送请求是不需要等待很久 -->
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>mySpringMVC</servlet-name>
		<!-- 设置所有以action结尾的请求进入SpringMVC -->
		<url-pattern>*.action</url-pattern>
	</servlet-mapping>
	<!-- 配置springmvc中post提交中文乱码问题 -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

springmvc.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"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       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/aop
	   http://www.springframework.org/schema/aop/spring-aop.xsd
	  http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
	  http://www.springframework.org/schema/tx
	  http://www.springframework.org/schema/tx/spring-tx.xsd">
     <!--注解扫描  后面的包名是需要根据不同项目修改的-->
     <context:component-scan base-package="com.yxc.web"/>
</beans>

MyController.java

package com.yxc.web;
/**
 * springmvc中接收参数的集中方式
 */
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

//通过这个注解就可以把这个类定义为转发器 用来处理各种请求
//相当于servlet类
@Controller
public class MyController {
	//请求参数为login.action的请求会找到这个方法 然后执行这个方法
	@RequestMapping("login.action")
	public ModelAndView login(HttpServletRequest request) {
		//创建一个模型页面对象,这个类可以设置模型和试图
		ModelAndView modelAndView = new ModelAndView();
		//在springmvc接收参数有很多的方式,这里先使用最原始的方法
		//通过request对象请求中发送来的参数
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		//将接收的参数保存在域对象中,转发到其它页面可以取出数据
		modelAndView.addObject("username",username);
		modelAndView.addObject("password",password);
		//访问成功以后可以跳转的页面
		modelAndView.setViewName("/success.jsp");
		return modelAndView;
	}
}

两个jsp页面:
index.jsp中只是写了一个表单,然后点击提交就会发送请求
success.jsp就是请求成功以后跳转的页面,并且简单的通过EL表达式取出数据
index.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="${pageContext.request.contextPath}/login.action" method="post">
		用户名:<input type="text" name="username"><br><br>
		密码:<input type="password" name="password"><br><br>
		<input type="submit" value="提交">
	</form>
</body>
</html>

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>接收参数</h1>
用户名:${username}
密码:${password}
</body>
</html>

在这里插入图片描述
所需的jar包如下:
在这里插入图片描述
最后总结一下执行的流程:当然前期只是简单的,真正的内部实现原理还要等学习完后面的一些组件才能讲解
1、首先我们在jsp页面中通过表单发送请求
2、系统会查看web.xml中发送的请求是不是符合要求的,符合要求的,交给配置好的转发器处理,不符合要求的,直接报错
3、转发器收到请求,根据请求信息的参数(login.action)到我们自己写的转发器类(就是我们在类上面注解了@Controller的类)中找到对应请求参数的方法,如果没有找到机会报404找不到,如果找到就会开始执行方法
然后根据执行方法将数据和页面返回给客户端
上面的执行流程只是我们看的见得,我们自己手写的代码中的流程,其实springmvc内部还有很多的控件是自行完成的,我们不需要编码,但是又有必要了解内部的流程,这些后续学习以后总结。
这只是一个简单的入门程序,在我个人看来,学习框架首先得自己先跑出来才有学习下去的想法,不然看书听视频,根本不知道怎么回事,动手实现了,然后再去学习,看书,才能更好的理解它(纯属个人观点)

发布了33 篇原创文章 · 获赞 37 · 访问量 4427

猜你喜欢

转载自blog.csdn.net/weixin_42142899/article/details/101110659