今天学习了Spring MVC3的内容,写了一些示例,由于关于Spring MVC的资料网上特别多,这里就不在赘述。

开发环境:

jdk:1.7+MyEclipse10+Spring3.0+Apache Tomcat 7.0

1.入门级

1)新建index.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Spring MVC3 Demo</title>
</head>
<body><a href="test.html">Spring MVC 示例</a><a href="login.do">login</a><a href="test.xx">test xx</a>
</body>
</html>

2) 配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><display-name>spring</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><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

3) 配置springmvc-servlet.xml

这个文件类似于之前的ApplicationContext.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:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd" default-autowire="byName"><context:component-scan base-package="com.wicresoft.controller" /><bean id="viewResolver"class="org.springframework.web.servlet.view.UrlBasedViewResolver"><property name="viewClass"value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/" /><property name="suffix" value=".jsp" /></bean>
</beans>

4)添加HomeController

package com.wicresoft.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;@Controller
public class HomeController {@RequestMapping("/test.html")public ModelAndView GetMessage(){String str = "This Spring MVC Demo Return From Server";return new ModelAndView("message","str",str);}@RequestMapping("/test.xx")public ModelAndView GetMessage2(){String str = "test.xx return";return new ModelAndView("message","str",str);}
}

5) 添加Jar包

6)使用Tomcat 启动(非MyEclipse自带的)

7) 访问

点击两个链接分别返回

总结:

(1).Spring MVC 支持注解的方式完成Url和Action方法的映射,这个跟ASP.NET MVC 的属性一样的。

(2).Spring MVC  不负责根据后缀名选择如何处理,完全由程序控制。

(3).Spring MVC 通过配置的方式来约定映射规则。

2.页面传值

1)新增LoginController

package com.wicresoft.controller;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import com.wicresoft.model.*;@Controller
public class LoginController {/*@RequestMapping("/login.do")public ModelAndView GetMessage(){String str = "success";return new ModelAndView("message","str",str);}*/@RequestMapping(value = "/login.do", method = RequestMethod.POST)public ModelAndView onSubmit(HttpServletRequest request, ModelMap modelMap){String username = request.getParameter("username");   String password = request.getParameter("password"); LoginForm form = new LoginForm();form.setUsername(username);form.setPassword(password);if(username.equals("Admin")&&password.equals("12345")){return new ModelAndView("success","username",form);}else{return new ModelAndView("success","username","error");}}
}
 

登录页面

<%@ page contentType="text/html;charset=utf-8"%>
<html>
<head><title></title>
</head>
<body> <form method="post" action=login.do>
<table>  <tr><td>姓名</td><td><input id="user" name="username" type="text" /></td></tr>  <tr><td>密码</td><td><input id="psw" name="password"  type="text" /></td></tr>  <tr><td colSpan="2" align="center"><input type="submit" value="提交" width="180px"/></td></tr>
</table>
</form>
</body>
</html> 

登录成功的页面

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'success.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><h1>final</h1>${username.getUsername()}</body>
</html>

登录效果

登录之后

总结:

1)在Controller中可以使用request对象获取页面输入的参数

2)controller可以返回对象给页面,并且自动序列化,在页面接收的时候,自动进行反序列化!类似ASP.NET MVC 的模型传递!

3)注解可以注解post/get方法

java SpringMVC3 的例子相关推荐

  1. 20 个使用 Java CompletableFuture的例子

    转载自 20 个使用 Java CompletableFuture的例子 这篇文章介绍 Java 8 的 CompletionStage API和它的标准库的实现 CompletableFuture. ...

  2. java线程安全例子_Java总结篇系列:Java多线程(三)

    本文主要接着前面多线程的两篇文章总结Java多线程中的线程安全问题. 一.一个典型的Java线程安全例子 1 public classThreadTest {2 3 public static voi ...

  3. java抽象类例子_关于java抽象类的例子

    在网上找了很久,发现没有一个比较好的关于java抽象类的例子,刚好自己这些天在书上看到一个不错的猜数字游戏的例子,所以拿出来改进了下,希望能给你一些帮助,具体内容如下 建2个类依次为AbstractG ...

  4. Java swing 代码例子

    Java swing 代码例子 package com; import java.awt.Button; import java.awt.Container; import java.awt.even ...

  5. java hbase 例子,java操作hbase例子

    java操作hbase例子 java操作hbase,在eclipse中创建一个java项目,将hbase安装文件根目录的jar包和lib目录下jar包导入项目,然后就可以编写java代码操作hbase ...

  6. Java Lambda reduce 例子 全网reduce最清晰易懂的例子,不服来辩 xxx XXX

    Java Lambda reduce 例子 全网reduce最清晰易懂的例子,不服来辩 xxx XXX import java.util.Optional; import java.util.stre ...

  7. Java Lambda 分区 例子 水仙花

    Java Lambda 分区 例子 水仙花 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数. ...

  8. java 序列化 例子_一个简单的Java序列化的例子

    简单来说序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O),我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间(注:要想将对 ...

  9. java try catch 例子_Java异常处理综合例子(try、catch、finally、throws、throw)

    Java异常处理综合例子(try.catch.finally.throws.throw) 佟强 2009年11月4日 http://blog.csdn.net/microtong package cn ...

最新文章

  1. Autools学习总结(一)
  2. 王爽 16 位汇编语言学习记录
  3. tomcat源码分析_Tomcat源码分析(一)--Tomcat的初始化
  4. flask 第八篇 实例化flask时的参数配置
  5. 【Java】模拟分组交换网络的时延、丢包
  6. IDEA卡顿问题解决-加大内存
  7. Oracle的where子句
  8. SpringCloud实战2-Ribbon客户端负载均衡
  9. 蓝牙:深入浅出低功耗蓝牙(BLE)协议栈
  10. NASA 美国国家航空航天局开源项目列表
  11. 两个表的笛卡尔积sql语句,有相同列需区分
  12. C#实现Winform程序自动进行版本升级更新
  13. Acdream 1729 Crime
  14. Composer 简介和基本用法
  15. xposed模块开发步骤总结
  16. MCU多系统服务器与云平台,MCU多系统服务器与云平台
  17. Java 从键盘输入数据到一维double数组中
  18. 高中英语选修计算机,高中英语课堂
  19. pg批量插入_postgresql大批量数据导入方法
  20. 数学建模写作时相关的套路

热门文章

  1. 超级白熊啤酒虎年限定礼盒正式发售;迪桑特限量发售新款针织滑雪服 | 知消...
  2. HTC官解后刷机步骤
  3. 论文阅读:RICAP: Random Image Cropping and Patching Data Augmentation for Deep CNNs
  4. 【100%通过率】华为OD机试真题 C++ 实现【最接近最大输出功率的设备 /查找充电设备组合】
  5. 3D设计软件中怎么画锥齿轮?浩辰3D设计实例
  6. 蓝桥杯第七届省赛JavaB组题解
  7. UE4:Build Configuration和Config的解释
  8. BIgDecimal的用法,及与各类数据类型的转换
  9. vuejs-- webpack环境下父子组件的使用
  10. 氟胶耐腐蚀油罐泵出口应用性能