- 浏览: 316034 次
- 性别:
- 来自: 宁波
文章分类
最新评论
-
bqlin1987:
请问是不是ITeye的代码莫名的换行了?
学习SSO-1 Tomcat启用ssl -
a6821122:
在data-config.xml 里的javascript 不 ...
solr导入Oracle日期时间数据的处理 -
jie_kong:
是flexigrid不是flexgrid
FlexGrid自己用的经验 -
zjnbshifox:
呵呵,我也在摸索阶段,谢谢提醒ligywin 写道还需要补充以 ...
CAS自定义Credentials登录 -
ligywin:
还需要补充以下方法import org.apache.comm ...
CAS自定义Credentials登录
要做一个简单的投票的东西,看spring mvc的文章已经很久了,但是没有实际用过,决定试试看,
首先是web.xml
在spring的applicationContext.xml中配置数据源等一些信息,这个网上很多了,主要是pollmvc-servlet.xml配置文件里面写mvc的配置,使用annotation配置就简单很多
在代码里面只需要进行如下配置既可:
也可以在方法上用annotation进行声明,这样一来配置文件大大减少
如果页面上有form需要绑定到对象可以通过以下的方式
commandName制定的是要显示的对象的在Model中绑定的键的名称,如
最后,当form提交的时候,可以通过标注
自己的感觉来说,spring mvc相对来说比struts2更加灵活一点,strut2对request,response这些进行了封装,但是给我的感觉就是有点不方便了,因为要取原生的这些对象需要很大的精力。例如要生成一个图图形验证码,在spring mvc里感觉就比较好一点,是我感觉问题吗?呵呵
首先是web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app 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_2_5.xsd" version="2.5"> <display-name>Spring Annotation MVC Sample</display-name> <!-- Spring 服务层的配置文件 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <!-- Spring 容器启动监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> <filter-name>Set Character Encoding</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> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Spring MVC 的Servlet, 它将加载WEB-INF/annomvc-servlet.xml 的 配置文件,以启动Spring MVC模块 --> <servlet> <servlet-name>pollmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>pollmvc</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
在spring的applicationContext.xml中配置数据源等一些信息,这个网上很多了,主要是pollmvc-servlet.xml配置文件里面写mvc的配置,使用annotation配置就简单很多
<?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-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <!-- 对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 --> <context:component-scan base-package="com.fox.poll"/> <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/> --> <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/> </beans>
在代码里面只需要进行如下配置既可:
package com.nbrc.poll.controller; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import com.nbrc.poll.service.PollService; import com.nbrc.poll.vo.Candidate; @Controller @RequestMapping("/managecandidate.do") public class CandidateManageController { @Resource private PollService service; }
也可以在方法上用annotation进行声明,这样一来配置文件大大减少
如果页面上有form需要绑定到对象可以通过以下的方式
<form:form commandName="candidate"> 候选人姓名:<form:input id="name" path="name"/><br/> 候选人英文名:<form:input id="ename" path="ename"/><br/> 单位名称:<form:input id="corp" path="corp"/><br/> 小图片:<form:input id="simage" path="simage"/><br/> 大图片:<form:input id="bimage" path="bimage"/><br/> 点击后的URL:<form:input id="url" path="url"/><br/> 详细信息:<form:textarea path="info" id="info"/><br/> <input type="submit" value="保存" /> <input type="reset" value="重置" /> </form:form>
commandName制定的是要显示的对象的在Model中绑定的键的名称,如
model.put("candidate", new Candidate());
最后,当form提交的时候,可以通过标注
public String submitForm(@ModelAttribute("candidate") Candidate c){进行绑定到对象
自己的感觉来说,spring mvc相对来说比struts2更加灵活一点,strut2对request,response这些进行了封装,但是给我的感觉就是有点不方便了,因为要取原生的这些对象需要很大的精力。例如要生成一个图图形验证码,在spring mvc里感觉就比较好一点,是我感觉问题吗?呵呵
package com.nbrc.poll.controller; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/captcha.do") public class CaptchaImageController { @RequestMapping(method = RequestMethod.GET) public void draw(HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); try { response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); int width = 60, height = 20; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); OutputStream os = response.getOutputStream(); Graphics g = image.getGraphics(); Random random = new Random(); g.setColor(getRandColor(200, 250)); g.fillRect(0, 0, width, height); g.setFont(new Font("Times New Roman", Font.PLAIN, 18)); g.setColor(getRandColor(160, 200)); for (int i = 0; i < 155; i++) { int x = random.nextInt(width); int y = random.nextInt(height); int xl = random.nextInt(12); int yl = random.nextInt(12); g.drawLine(x, y, x + xl, y + yl); } String sRand = ""; for (int i = 0; i < 4; i++) { String rand = String.valueOf(random.nextInt(10)); sRand += rand; g.setColor(new Color(20 + random.nextInt(110), 20 + random .nextInt(110), 20 + random.nextInt(110))); g.drawString(rand, 13 * i + 6, 16); } session.setAttribute("rand", sRand); g.dispose(); ImageIO.write(image, "JPEG", os); os.flush(); os.close(); os = null; } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private Color getRandColor(int fc, int bc) { Random random = new Random(); if (fc > 255) fc = 255; if (bc > 255) bc = 255; int r = fc + random.nextInt(bc - fc); int g = fc + random.nextInt(bc - fc); int b = fc + random.nextInt(bc - fc); return new Color(r, g, b); } }
发表评论
-
jasper report与Spring mvc整合
2015-10-19 16:02 1650配置jasper view resolver <be ... -
solr导入Oracle日期时间数据的处理
2013-02-08 10:01 5165参考文章: http://stackoverflow.com/ ... -
solr服务端加亮设置
2013-02-06 23:25 1321在${solr.home}/conf/solrconfig.x ... -
Solr客户端自定义开发
2013-02-06 16:52 1687@Service @Qualifier(" ... -
CAS 客户端获取Credentials额外信息
2013-02-06 09:40 4018服务端的配置 1、在deployerContext.xml中加 ... -
CAS自定义Credentials登录
2013-02-02 00:03 7991先看了这篇文章http://www.blogjava.net/ ... -
Spring data MongoDB DSL
2013-01-29 13:38 2613这两天自己配置了一个通过Spring Data来连接Mongo ... -
Spring MVC和freemarker配置
2013-01-21 13:45 2485参考文章:http://www.cnblogs.com/hoo ... -
我自己的maven环境
2013-01-17 14:37 1111今天把自己的maven环境记录下来,准备重装系统能找到 mav ... -
Spring-data jpa学习
2013-01-17 14:25 1821一个早上加一个中午就耗在这里了啊,就一个小问题,让我吐血不已, ... -
今天学会的DetachedCriteria用法
2013-01-12 22:01 10190以前用hibernate,一般都是使用hql语句的,因为和sq ... -
学习SSO-1 Tomcat启用ssl
2012-11-29 10:41 6995根据网上的http://www.kafeitu.me/sso/ ... -
Solr连接数据库
2012-04-10 09:40 6221要建立自己的全文检索 ... -
Solr试用小记
2012-04-10 09:15 15721、下载tomcat7、solr 3.5.0 以及IKAnal ... -
java生成二维码,qrcode
2012-03-22 15:41 7023通过barcode4j生成 @Controller @R ... -
使用HttpClient 4.1.2调用webservice
2012-01-19 14:22 19260下载httpclient,把压缩包里lib目录的所有jar放到 ... -
Spring MVC3 Hibernate3 Annotation 补充
2011-05-30 11:59 1411通过配置文件进行事务声明 app-config.xml & ... -
Spring MVC3 Hibernate3 Annotation
2011-05-30 11:56 1779web.xml <?xml version=&quo ... -
Tomcat Mod_jk负载均衡Session复制的几点补充
2010-02-24 16:49 1338tomcat和mod_jk进行负载均衡的时候,如果要实现Ses ... -
我的ant脚本
2009-07-27 15:40 1333<?xml version="1.0&qu ...
相关推荐
它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)中的快速解决方案。 #### 2. Eureka服务发现 Eureka是Netflix...
【标题】"Spring MVC + Spring + Hibernate 全注解整合开发视频教程 09" 提供了一次深入了解Java企业级应用开发的机会,特别是在使用Spring MVC、Spring和Hibernate这三大核心框架进行全注解配置的场景下。...
在IT行业中,Spring MVC是一个广泛使用的Java Web框架,它提供了构建高效、模块化且易于维护的Web应用程序的强大工具。在处理大文件传输时,尤其是在网络环境不稳定或上传、下载过程中可能中断的情况下,断点续传...
在实现SSO时,Spring Security与Spring OAuth2 结合,可以创建一个统一的登录入口,使得用户只需要登录一次就能访问所有关联的应用。通常,这个过程涉及到以下几个关键步骤: 1. **身份验证中心(Authentication ...
本视频教程可能涵盖了Spring MVC的基础知识,如配置环境、创建第一个Spring MVC项目、理解DispatcherServlet的作用、编写Controller、处理请求和响应、使用模型数据、视图解析、以及异常处理等。同时,也可能深入...
通过仔细研读这份源码,开发者不仅能理解Spring框架的设计哲学,还能学习到面向接口编程、设计模式(如工厂模式、单例模式、装饰器模式等)的实际应用,以及如何通过模块化和组件化构建大型项目。对于初学者,这是一...
《Spring in Action》是Spring框架领域的一本经典著作,它以深入浅出的方式介绍了Spring框架的核心概念和技术。这本书的中文版对于中国的Java开发者来说是一份非常宝贵的...这是一次对Spring框架全面而深入的学习之旅。
在"spring学习"的资源包中,我们看到三个关于"第四章 Spring的基本用法"的PPT文件,分别是"第一次"、"第三次"和"第二次"。虽然顺序可能有些混乱,但我们可以从中提取出一系列关键知识点。 1. **依赖注入**:Spring...
在大型Web应用程序中,数据分页是一项至关重要的功能,它能帮助用户更有效地浏览大量数据,避免一次性加载过多内容导致的性能问题。Spring框架提供了强大的支持来实现这一功能。在Spring MVC中,我们可以使用`...
在"Spring快速入门教程.pdf"中,你将深入学习如何创建第一个Spring项目,配置Bean,使用AOP,搭建Spring MVC应用,以及如何整合Spring Boot和Spring Cloud。通过实际操作,你会对Spring有更直观的理解,并能迅速上手...
在Spring第一次课中,可能涉及了IoC容器的概念,它是Spring的核心,负责管理对象的生命周期和依赖关系。 2. **依赖注入**:DI是Spring的核心特性,通过反转控制权,使得对象之间的依赖关系不再硬编码,而是由框架...
这个"spring 教程,培训资料很详细"的资源包含了三次课程的内容,分别命名为"spring第三次课"、"spring第一次课"和"spring第二次课",这些课程可能涵盖从基础到进阶的Spring知识点。 在Spring框架中,IoC容器是核心...
8. **框架集成**: 这个系统结合了多个主流的Java框架,如Spring Boot、Spring MVC、Dubbo和Spring Security,展示了一个完整的微服务架构。这种集成方式有利于提高开发效率,同时保持系统的灵活性和可扩展性。 通过...
7. **Spring Cloud**:在微服务架构中,Spring Cloud为开发者提供了配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态等功能。 8. **Spring Security*...
在这个"SSM项目整合第一次修改"中,我们主要探讨的是如何将这三个框架进行有效的集成,以实现高效、灵活的后端业务逻辑处理。 首先,Spring框架作为基础,它提供了依赖注入(Dependency Injection,DI)和面向切面...
而"spring-framework-3.2.4.RELEASE"很可能是Spring框架的一个具体版本,3.2.4.RELEASE是其版本号,表明这个jar包是Spring 3.2系列的第4次修订版,通常包含修复的bug、增强的功能和安全更新。 在实际开发中,开发者...
本文将深入探讨Spring框架的码源,通过分析其核心组件和工作原理,帮助读者更深入地理解和应用Spring。 一、Spring概述 Spring是一个全面的企业级应用开发框架,它简化了Java应用程序的开发,通过依赖注入...
Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)...
《Spring in Action》中文第二版是一部深度探讨Spring框架的权威指南,它全面覆盖了Spring的各个方面,旨在帮助Java开发者熟练掌握并应用Spring进行高效开发。本篇内容将深入解析书中的核心知识点,以便读者能够更好...