java SpringMVC3 的例子

本文详细介绍了SpringMVC3的快速入门,包括环境搭建、配置详解、控制器实现、页面交互等核心步骤,并展示了登录功能的实现与页面跳转效果,深入浅出地阐述了SpringMVC的基本应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天学习了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/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context
        http://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方法


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值