Spring 基于注解的MVC入门案例

Spring MVC(框架模型如下图所示)是基于Model2实现的技术框架,Model2是经典的MVC(Model,View、Control)模型在Web应用中的变体,这个改变主要源于HTTP的无状态性。

下面以注解的方式来具体阐述MVC框架:

创建一个web project,目录结构如下:

LoginController源码:

package com;

import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class LoginController {
	@RequestMapping("/login")
	public String login(HttpServletRequest request,User user){
		request.setAttribute("user", user);
		return "userInfo"; 
	}
}


User源码:

package com;

public class User {
 private String name;
 private String password;
 
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 
}

spring-mvc源码:

<?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"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-3.2.xsd">
	  
	<!-- 自动扫描com包下的所有类,使其成为spring mvc的控制器 -->
	<context:component-scan base-package="com"/>

	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

	<bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/jsp/" />
		<property name="suffix" value=".jsp" />
	</bean>
</beans>

web.xml源码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

  <!-- 1、向web容器注册DispatcherServlet;
  	   2、拦截以.html为后缀的请求,并处理分发;
       3、load-on-startup设置为1,实现与web容器一起启动。
  -->
  <servlet>
      <servlet-name>MVC</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring-mvc.xml</param-value>
		</init-param>
      <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
      <servlet-name>MVC</servlet-name>
      <url-pattern>*.html</url-pattern>
  </servlet-mapping>
  	
  <welcome-file-list>
    <welcome-file>jsp/login.jsp</welcome-file>
  </welcome-file-list>
</web-app>


 

login源码:

<%@ page language="java" pageEncoding="utf-8"%>
<!DOCTYPE HTML>
<html>
  <head> 
    <title>登陆页面</title>
  </head>
  <body>
  	<form action="login.html" method="post">
    	用户名:<input type="text" name="name"><hr/>
    	密    码:<input type="text" name="password"><hr/>
  		<input type="submit" value="提交"><hr/>
  	</form>
  </body>
</html>


userInfo.jsp源码:

<%@ page language="java" pageEncoding="utf-8"%>
<!DOCTYPE HTML>
<html>
  <head> 
    <title>用户信息显示</title>
  </head>
  <body>
		登陆用户信息<hr/>
    	用户名:${user.name}<hr/>
    	密  码:${user.password }<hr/>
  	</form>
  </body>
</html>


运行web程序,打开浏览器,输入如图:

提交,显示如图:

 

总结:

1、启动web容器,并加载DispatcherServlet(load-on-startup为1);

2、加载spring-mvc.xml,并初始化生成IOC容器(MVC上下文);

3、注册DispatcherServlet;

4、默认打开登陆页,输入用户名、密码并提交;

5、调用Controller处理器完成业务逻辑操作,并返回逻辑路径;

6、调用View解析类,并调用模型数据来渲染页面,响应返回给客户端。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值