看eyes里面这么热烈的讨论这个框架,忍不住犯了老毛病。花了几天看了看开发手册,尝试写了写demo。
spring框架设计的比较精巧,使用起来上手会让人耳目一新(当然指被ssh折磨的人,比rails、django还差很多)。
拿他只当做mvc的c,很好。这个框架可以好好在项目里面用用了。
自己感觉不太适合新手去学习。
1、中文文档或者教程太少,基本能找到的都是些类似我这种尝试性的一些小例子
2、uri映射、注释设置会让新手迷迷糊糊。
3、很多插件都不是特别完备,但因为是开源的,自己集成点也不困难,但对新手感觉功能太少。
因为spring的文档就那一个,我看了好久,感觉从这章入手比较好
15.3.2.3 Supported handler method arguments and return types
自己感觉web框架比较常用的功能就是获得参数-渲染页面,所以这节讲的很全。
自己学习的demo
c
package com.web;
import java.io.FileInputStream;
import java.io.OutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class Index {
@RequestMapping(value = "/index",method=RequestMethod.GET)
public ModelAndView getContent_GET(
@RequestParam(value = "message", required = false) String message)
throws Exception {
ModelAndView mav = new ModelAndView();
mav.setViewName("index");
if (message != null) {
message = new String(message.getBytes("8859_1"), "UTF-8");
}
mav.addObject("message", message);
return mav;
}
@RequestMapping(value = "/index",method=RequestMethod.POST)
public ModelAndView getContent_POST(
@RequestParam(value = "message", required = false) String param)
throws Exception {
ModelAndView mav = new ModelAndView();
mav.setViewName("index");
mav.addObject("message1", param);
return mav;
}
//15.3.2.3 Supported handler method arguments and return types
@RequestMapping(value="/m1")
public ModelAndView m1(@RequestHeader(value="Accept")String header, HttpServletRequest request,HttpServletResponse response) throws Exception{
ModelAndView m = new ModelAndView();
m.setViewName("m1");
m.addObject("message","method 1"+header);
return m;
}
//输出二进制图片s
@RequestMapping(value="/m2")
public ModelAndView m2(HttpServletResponse response,OutputStream out) throws Exception{
response.setContentType("image/png;charset=UTF-8");
//ModelAndView m = new ModelAndView();
//m.setViewName("m1");
FileInputStream in=new FileInputStream("F://图片//34aL_002.png");
byte[] b =new byte[in.available()] ;
//b.length=in.available();
in.read(b);
out.write(b);
in.close();
return null;
}
}
v
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/jstlhead.jsp" %>
<!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><c:out value="${message}"></c:out> </title>
</head>
<body>
返回:
get:${message}
post:${message1}
<form action="index.cs" method="get">
<input name="message">
<input type="submit" value="get提交">
</form>
<form action="index.cs" method="post">
<input name="message">
<input type="submit" value="post提交">
</form>
</body>
</html>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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>go</display-name>
<welcome-file-list>
<welcome-file>navigate.jsp</welcome-file>
</welcome-file-list>
<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>*.cs</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>example</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>example</servlet-name>
<url-pattern>*.cs</url-pattern>
</servlet-mapping>
</web-app>
example-servlet.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">
<context:component-scan base-package="com.web"></context:component-scan>
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
</beans>
输出数据结构和文件上传
package com.web;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class Ctrl {
// 返回数据结构
@RequestMapping(value = "/c1")
public ModelAndView r1(HttpServletRequest request,
HttpServletResponse response) {
List list = new ArrayList();
for (int i = 0; i < 10; i++) {
list.add(i);
}
return new ModelAndView("c1", "list", list);
}
// 上传文件
@RequestMapping(value = "/upload")
public ModelAndView r2(@RequestParam("myDoc") MultipartFile file)
throws Exception {
if (!file.isEmpty()) {
byte[] bytes = file.getBytes();
FileOutputStream out = new FileOutputStream("c://"
+ file.getOriginalFilename() + ".up");
try {
out.write(bytes);
} finally {
out.close();
}
System.out.println("run");
// store the bytes somewhere
return new ModelAndView("index", "message", file
.getOriginalFilename());
} else {
return new ModelAndView("c1");
}
}
}
增加的配置
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- one of the properties available; the maximum file size in bytes -->
<property name="maxUploadSize" value="100000"/>
</bean>
分享到:
相关推荐
本教程专注于使用Spring、Spring MVC和MyBatis这三个关键组件进行实战教学。这三者构成了Java EE开发中的重要支柱,为开发者提供了强大的功能和灵活性。 Spring框架是Java EE开发的核心,它是一个全功能的容器,...
根据给定的文件信息,以下是对Spring MVC实训报告中的关键知识点进行详细解析: ### Spring MVC 实训报告概览 #### 引言 - **现代化管理需求**:随着信息技术的快速发展和计算机的广泛应用,个人信息管理变得日益...
Spring MVC 是一款广泛使用的 Java Web 开发框架,它为构建基于模型-视图-控制器(MVC)架构的应用程序提供了一种简洁而有效的方式。Spring 3.0.5 版本的 Spring MVC 提供了丰富的特性和优化,使得开发者能够快速...
Spring还包含了Spring MVC,这是一个用于构建Web应用程序的模块,它提供了模型-视图-控制器(MVC)架构,使得开发者可以更专注于业务逻辑,而不是底层HTTP处理。Spring MVC通过DispatcherServlet接收请求,使用...
Spring-mvc学习心得(一)-附件资源
5. **Spring MVC 3.x annotated controller的几点心得体会** - 作者可能分享了在实际开发中使用注解控制器的经验和技巧,包括错误处理、数据验证、模型绑定等方面。 6. **SpringMVC数据绑定** - 数据绑定是Spring...
Spring MVC 是一款强大的Java Web开发框架,用于构建可维护、高性能的企业级应用程序。它作为Spring框架的一部分,专注于处理HTTP请求和响应,实现了Model-View-Controller(MVC)设计模式,使得开发人员能够将业务...
Spring MVC架构与DispatcherServlet配置 Spring MVC是一种流行的基于Java的Web应用框架,它提供了一个灵活的架构来开发Web应用程序。在本文中,我们将对Spring MVC的架构和DispatcherServlet的配置进行总结。 ...
- 本书还包含了许多作者在实际项目中的经验和心得,这些实践经验对于读者理解和应用Spring MVC非常有帮助。 总之,《Spring MVC中文教程》是一本非常适合初学者的指南,它不仅详细介绍了Spring MVC的核心概念和技术...
本文详细介绍spring MVC的原理和开发心得体会。
Spring MVC 是一个基于 Spring 框架的 Model-View-Controller (MVC) 模型的轻量级 Web 开发工具。它简化了在 Java 应用程序中处理 HTTP 请求和构建动态网页的过程。这个“糗百中spring mvc jar包”可能是作者为了...
SSH(Spring、Struts、Hibernate)是Java Web开发的经典组合,这个压缩包中包含了一些关于Spring在实际使用过程中的心得和常见问题的解决方案。 首先,"spring的事务代理.txt"可能涉及到Spring的事务管理。Spring...
Spring还提供了丰富的模块,包括数据访问/集成层(如Spring JDBC和Hibernate支持),Web层(如MVC框架),以及Spring Boot和Spring Cloud等现代开发工具。其中,Spring MVC作为Web开发的一部分,提供了一种模型-视图...
Spring MVC是Spring框架的一个模块,用于构建Web应用。它提供了模型-视图-控制器架构,将业务逻辑、数据展示和用户交互分离,简化了Web开发。Spring MVC通过DispatcherServlet接收请求,处理器映射器和处理器适配器...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
Spring MVC通过将应用程序分为这三个层次,提高了代码的组织性和可维护性。 ### 心得体会 1. **简化开发**:Spring框架提供的大量现成解决方案和模块可以显著简化Java企业应用的开发过程,同时提高了开发效率。 ...
这个“spring 数据绑定心得”课程是专为新手设计的,旨在帮助初学者快速掌握这一关键技术。让我们深入探讨一下其中涉及的知识点。 首先,简单数据类型的绑定是指将用户界面中的输入值直接映射到Java的基本数据类型...