spring MVC学习路程

springmvc从零开始

无聊大学生疫情在家属实无聊,提前开始学校的教学任务,springMVC是在eclipse中开始的。

1:第一个SpringMVC程序

首先需要做的就创建工程,导入需要的jar包
在这里插入图片描述
然后首先开始写前端控制器:

<?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_3_1.xsd" 
		id="WebApp_ID" version="3.1">
  <display-name>Chacpter11</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- 配置前端控制器 -->
  <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping> 
    
</web-app>

然后就是控制器和前端页面

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class FirstController implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
		ModelAndView mav = new ModelAndView();
		mav.addObject("msg", "第一个springmvc");
		mav.setViewName("first.jsp");
		
		return mav;
	}

}

这里的控制器需要继承Controller方法,并创建一个ModelAndView对象,向对象中添加数据和设置逻辑视图名。这样,页面请求就会发送到逻辑视图中了。

然后就是写配置文档

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <bean name="/controller" class="com.itheima.controller.FirstController"/>

</beans>

定义一个bean,将控制器映射到bean中,通过页面实现控制器的方法。
最后创建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>
<font size="6" color="red">
${msg}
</font>
</body>
</html>

通过${msg}取值
最后的运行结果是:
在这里插入图片描述

2:通过注解的方式进行配置

前面的接口方法过于复杂,可以直接把controller接口换成@Controller注解。
同时可以通过@RequestMapping注解来对控制器内部的请求进行处理。
@RequestMapping标注在方法上时对方法进行注解,标注在类上时对类进行 注解。

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class FirstController{
	
	@RequestMapping(value="/hello")
	public String handleRequest(HttpServletRequest request,
			HttpServletResponse response,Model model) throws Exception{

		model.addAttribute("msg", "第二个");
		return "first";
	}
}

同时需要在配置文档中对直接进行扫描,和配置视图解析器。

<?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"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans
	   http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
	   http://www.springframework.org/schema/context 
  http://www.springframework.org/schema/context/spring-context-4.3.xsd">
  
	<context:component-scan base-package="com.itheima.controller"/>
	
	<bean id="ViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/jsp/" />
		<property name="suffix" value=".jsp" />
	</bean>

</beans>

3:SpringMVC的简单数据绑定

在2的基础上,对基本的简单数据进行绑定
首先对定义一个控制器类,并定义方法的访问路径。

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class FirstController {
	
	@RequestMapping(value="/selectUser")
	public String selectUser(HttpServletRequest request) {
		String id = request.getParameter("id");
		System.out.println("id=" + id);
		return "success";
	}
	
	@RequestMapping(value="/aaa")
	public String user(Integer id) {
		System.out.println("id=" + id);
		return "success";
	}
	
	@RequestMapping(value="/bbb")
	public String user2(@RequestParam("user_id")Integer id) {
		System.out.println("id="+id);
		return "success";
	}

}

第一个方法中中使用了 HttpServletRequest类型,并通过该对象的GetParameter() 方法获取了指定的参数 ,为了方便查看结果,将获取的参数进行输出打印。
在这里插入图片描述
页面地址中的id值被打印到了控制台,这说明HttpServletRequest类型完成了数据绑定。
通过第二个方法可以看出,将方法的参数类型换成简单数据类型也可以完成数据绑定。
在这里插入图片描述
第三个方法是当前端请求的参数名和控制器类的参数名不一样时,解决数据绑定问题的
在这里插入图片描述

4:自定义的数据绑定

来自大神的文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值