`

Spring MVC实例

阅读更多

        Spring MVC作为SpringFrameWork的产品,自诞生之日,就受到广泛开发者的关注,如今Spring MVC在Java中的发展可谓是蒸蒸日上,下面详细描述下搭建运行一个Spring MVC的实例。

        项目结构如下:

一.在WEB-INF/web.xml,配置Spring MVC转发

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    
   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
   
	<display-name>SpringMVC</display-name>
	
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/springMVC-servlet.xml</param-value>
	</context-param>
	
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<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>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<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>

二.在WEB-INF/目录下,创建springMVC-servlet.xml,支持注解,页面路径解析等

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
	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-3.0.xsd
                    http://www.springframework.org/schema/context
                    http://www.springframework.org/schema/context/spring-context-3.0.xsd
                    http://www.springframework.org/schema/mvc
                    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
                    ">
	<context:component-scan base-package="com.bijian.study.controller"></context:component-scan>   
        
    <mvc:annotation-driven></mvc:annotation-driven>   
        
    <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">   
        <property name="viewClass"  
            value="org.springframework.web.servlet.view.JstlView" />   
        <property name="prefix" value="/WEB-INF/views" />
        <property name="suffix" value=".jsp" />   
    </bean>
</beans>

三.新建HelloController类,使用注解完成Spring MVC类的调用

package com.bijian.study.controller;

import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;

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

@Controller
public class HelloController {

	@RequestMapping("/greeting")
	public ModelAndView greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
		
		//由于浏览器会把中文直接换成ISO-8859-1编码格式,如果用户在地址打入中文,需要进行如下转换处理
		try {
			String tempName = new String(name.getBytes("ISO-8859-1"),"utf-8");
			System.out.println(tempName);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}

		System.out.println("Hello " + name);
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("userName", name);
		return new ModelAndView("/hello", map);
	}
}

四.创建/WEB-INF/views/hello.jsp,用来展现数据

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>  
<!DOCTYPE html>   
<html>   
<head>   
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   
	<title>Hello</title>   
</head>   
<body>   
	你好,${userName}
</body>   
</html>

五.部署运行

        部署运行后,在浏览器中输入访问的URL:http://localhost:8080/SpringMVC/greeting?name=zhangshan,运行效果如下:

 

PS:

        http://localhost:8080/SpringMVC/greeting?name=%E7%BE%8E%E5%A5%B3,URIEncoding是UTF-8,在浏览器中会将其转换为中文:http://localhost:8080/SpringMVC/greeting?name=美女,然后这个又会转成ISO-8859-1:http://www.baidu.com/s?wd=%XX%XX%XX%XX

        所以,浏览器神奇的将URIEncoding从UTF-8转成ISO-8859-1。
        解决的方式也很简单,看看百度:

http://www.baidu.com/s?wd=%B1%E0%BC%AD 
http://www.baidu.com/s?wd=编辑

        URIEncoding就用ISO-8859-1。大多浏览器会把中文直接换成:ISO-8859-1,如果在你的系统里确实需要用户在地址打入中文直接进行查询,建议把URIEncoding改成ISO-8859-1就可以了。但这样以后会造成其它用UTF-8编码的地方就要单独转码了,反而不方便(JSON数据的提交)。所以最好不要让用户在地址栏打入中文进行操作。

  • 大小: 34.3 KB
  • 大小: 29.4 KB
分享到:
评论

相关推荐

    spring mvc 实例

    在Spring MVC实例中,我们通常会遇到以下关键知识点: 1. **MVC架构**:MVC是一种设计模式,将应用分为三个主要部分:Model(模型)负责业务逻辑,View(视图)负责展示结果,Controller(控制器)处理用户请求并...

    Spring MVC 实例

    **Spring MVC 框架详解** Spring MVC 是 Spring 框架的重要组成部分,它是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)架构。Spring MVC 提供了灵活的处理机制,包括处理器映射、视图解析、数据绑定、本地...

    Spring Mvc实例

    总结来说,Spring MVC实例展示了如何通过注解驱动开发实现Web应用的路由控制、数据绑定、视图解析以及数据库操作。这个实例对于理解Spring MVC的工作原理和实际应用是非常有帮助的,也是Java Web开发者必备的技能之...

    Spring MVC实例 MVC注解配置

    Spring MVC 是一个强大的Java Web开发框架...综上所述,Spring MVC实例中的MVC注解配置大大简化了Web应用的开发流程,使得代码更加简洁、直观。通过熟练掌握这些知识点,开发者能够高效地构建出高质量的Java Web应用。

    学习Spring MVC,关于注解的Spring MVC,简单例子,关于控制器的Spring MVC,学习Spring,简单Spring MVC实例

    在Spring MVC实例中,通常会涉及到配置文件,如`spring-mvc.xml`,但现在更推荐使用Java配置。例如,你可以创建一个`WebConfig`类,然后使用`@Configuration`和`@EnableWebMvc`注解来启用Spring MVC: ```java @...

    Spring mvc 实例下载可运行

    在这个实例中,"Spring mvc 实例下载可运行" 提供了一个可以直接运行的Spring MVC项目,帮助开发者更好地理解和学习Spring MVC的实践操作。 1. **Spring MVC基本概念** - **模型(Model)**:存储业务数据的部分,...

    spring mvc实例

    总结来说,Spring MVC实例是一个绝佳的学习工具,它让你能够亲手实践MVC模式,理解Spring框架如何协调各个组件来处理Web请求。通过深入研究这个实例,你将掌握Spring MVC的核心概念,为今后的Web开发打下坚实的基础...

    Spring MVC实例的简单项目

    **Spring MVC 实例详解** Spring MVC 是 Spring 框架的一部分,它是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)框架。这个实例项目旨在帮助我们理解如何在实际开发中运用 Spring MVC。让我们深入探讨一下...

    spring mvc实例项目

    学习这个实例项目,你可以深入理解Spring MVC如何处理请求、如何与ExtJS2进行数据交互,以及如何利用Spring JDBC进行数据库操作。同时,它也展示了MVC模式在实际项目中的应用,有助于提升你对Web应用开发的整体理解...

    spring MVC 实例代码

    基于注解的spring mvc,dao 层注解:@Repository("userDao"), entity层注解:@Entity,service层注解:@Service("userService"), action层注解:@Controller("userController") @RequestMapping("/user.do")

    Spring MVC 实例(附带详细讲解)

    在本实例中,我们将深入理解Spring MVC的基本概念,以及如何在一个实际项目中运用它。 首先,Apache Tomcat 是一个广泛使用的开源Java Servlet容器,它实现了Servlet和JavaServer Pages (JSP) 规范,是搭建Spring ...

    Spring MVC 基于注解实例

    Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于...

Global site tag (gtag.js) - Google Analytics