六、springmvc的注解

xml的配置→注解

1、新建一个配置文件还是在config下

新建springAnnotation-servlet.xml

web.xml 修改初始化为<param-value>classpath*:config/springAnnotation-servlet.xml</param-value>

springAnnotation-servlet.xml 加入一个扫描包。扫描包下的所有类

  1. <context:component-scan base-package="com.tgb.web.controller.annotation"></context:component-scan>

继续添加。上面为注解扫描包,下面为开启注解。

spring webmvc下的目录mvc下的annotation下的两个类。注解

  1. <!-- 根据url去匹配类,类去匹配方法 -->
  2. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
  3. <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>

2、 src下的java类

  1. package com.tgb.web.controller.annotation;
  2.  
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.RequestMethod;
  6. import org.springframework.web.servlet.ModelAndView;
  7.  
  8. @Controller
  9. public class UserController {
  10. @RequestMapping(value="/user/addUser",method=RequestMethod.GET)
  11. public ModelAndView addUser(){
  12. String result="this is the addUser function";
  13. return new ModelAndView("/jquery","result",result);
  14. }
  15. @RequestMapping(value="/user/delUser",method=RequestMethod.GET)
  16. public ModelAndView delUser(){
  17. String result ="this is delUser------";
  18. return new ModelAndView("/jquery","result",result);
  19. }
  20. @RequestMapping(value="/user/toUser",method=RequestMethod.GET)
  21. public ModelAndView toUser(){
  22. return new ModelAndView("/jquery");
  23. }
  24. }

3、jquery里的表单里面的get方法要对应上面的method=RequestMethod.GET 。如果表单修改为post请求,就会请求不到资源。

http://localhost:8080/springMVC1/user/toUser toUser→jquery界面→点击按钮→表单到/springMVC1/user/addUser 这个界面,返回出一行字符串

七、sprigmvc注解优化

1、配置优化

  1. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
  2. <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>

修改为

  1. <!-- 开启注解 -->
  2.  
  3. <mvc:annotation-driven/>

2、请求类型优化

修改成@RequestMapping(value="/user2")

3、继续优化

修改成@RequestMapping("/user2")

4、修改ModeAndView。把ModeAndView修改成String

5、传递参数

方法修改为public String addUser(HttpServletRequest request)

request.setAttribute("result", result); 这样传递数据

八、springmvc参数传递

1、新建一个DataController

  1. package com.tgb.web.controller.annotation;
  2.  
  3. import javax.servlet.http.HttpServletRequest;
  4.  
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.web.bind.annotation.RequestMapping;
  7.  
  8. @Controller
  9. @RequestMapping("/user/data")
  10. public class DataController {
  11.  
  12. @RequestMapping("/addUser")
  13. public String addUser(String userName,String age,HttpServletRequest request){
  14.  
  15. String result ="this is addUser------优化版";
  16. request.setAttribute("userName", userName);
  17. request.setAttribute("age", age);
  18.  
  19. return "/userManager";
  20. }
  21.  
  22. @RequestMapping("/delUser")
  23. public String delUser(HttpServletRequest request){
  24. String result ="this is delUser------优化版";
  25. request.setAttribute("result", result);
  26. return "/jquery";
  27. }
  28. @RequestMapping("/toUser")
  29. public String toUser(HttpServletRequest request){
  30. return "/addUser";
  31. }
  32. }

见源码。

有了以前的注解开启。

http://localhost:8080/springMVC1/user/data/toUser →返回到一个addUser.jsp界面,然后表单到controller里面 保存数据,传递数据到userManager.jsp

3、表单中姓名乱码。

addUser.jsp里面为charset=UTF-8编码。

提交到服务器,修改tomcat的config下的

  1. <Connector port="8080" protocol="HTTP/1.1"
  2. connectionTimeout="20000"
  3. redirectPort="8443" />

修改为

  1. <Connector URIEcoding="UTF-8" port="8080" protocol="HTTP/1.1"
  2. connectionTimeout="20000"
  3. redirectPort="8443" />

GET方法请求,然后修改tomct里面的编码也为UTF-8.所以姓名也不会乱码了

POST方法,依然乱码

4、在web.xml修改一下拦截

添加如下【其中filter就是spring web jar包下的web下的filter下的CharacterEncodingFilter】

  1. <filter>
  2. <filter-name>encodingFilter</filter-name>
  3. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  4. <init-param>
  5. <param-name>encoding</param-name>
  6. <param-value>UTF-8</param-value>
  7. </init-param>
  8. <init-param>
  9. <param-name>forceEncoding</param-name>
  10. <param-value>true</param-value>
  11. </init-param>
  12. </filter>
  13. <!-- encoding filter for jsp page -->
  14. <filter-mapping>
  15. <filter-name>encodingFilter</filter-name>
  16. <url-pattern>/*</url-pattern>
  17. </filter-mapping>

springMVC学习笔记二的更多相关文章

  1. springMVC学习笔记(二)-----注解和非注解入门小程序

    最近一直在做一个电商的项目,周末加班,忙的都没有时间更新博客了.终于在上周五上线了,可以轻松几天了.闲话不扯淡了,继续谈谈springMvc的学习. 现在,用到SpringMvc的大部分使用全注解配置 ...

  2. SpringMVC学习笔记(二)

    一.HandleMapping和HandlerAdapter的讲解 HandleMapping:处理映射器,可以理解为为请求的url查找对应的Controller类. HandlerAdapter:可 ...

  3. SpringMVC学习笔记二:常用注解

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6831976.html  参考:http://www.cnblogs.com/leskang/p/5445698 ...

  4. SpringMVC学习笔记二第一个小的程序

    首先:我们要用springmvc来写一个helloworld的例子: 首先我们需要导入所需要的架包: /demo1/WebRoot/WEB-INF/lib/commons-logging-1.1.1. ...

  5. SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解

    版权声明:本文为博主原创文章,博客地址:http://blog.csdn.net/a67474506?viewmode=contents 1.1. @RequestMapping映射请求 Spring ...

  6. springmvc学习笔记二:重定向,拦截器,参数绑定

    Controller方法返回值 返回ModelAndView controller方法中定义ModelAndView对象并返回,对象中可添加model数据.指定view. 返回void 在Contro ...

  7. SpringMVC学习笔记二:参数接受

    该项目用来介绍SpringMVC对参数接受的方法: 项目目录树:在前一个项目上修改添加 新添加了Student类和Group类,用来测试整体参数接受 Student.java package com. ...

  8. SpringMVC学习笔记之二(SpringMVC高级参数绑定)

    一.高级参数绑定 1.1 绑定数组 需求:在商品列表页面选中多个商品,然后删除. 需求分析:功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Cont ...

  9. 史上最全的SpringMVC学习笔记

    SpringMVC学习笔记---- 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于Spring ...

随机推荐

  1. Javascript 知识点简介

    如何在HTML中引入JS? 所有重定向的HTML标签内都可以嵌入javascript代码. 浮点数不要用 == 来进行判断 var num=0;    for(var i=0;i<10;i++) ...

  2. C# 网页图片爬虫的几种技术基础

    一.文件流方式获取网络图片资源 方法1 , ); System.Net.WebRequest webreq = System.Net.WebRequest.Create(url); System.Ne ...

  3. 10、Android数据存储

    课程目标: 掌握Android中数据存储的几种方式 熟练使用PreferenceActivity&PreferenceScreen做专业的Setting功能 熟练使用SQLite3来存储数据 ...

  4. (转载)HTML与XHTML有什么区别

    转自:http://zhidao.baidu.com/link?url=8wvu7Jbzr-wjeKdWCwWkIiJNSpO3HHLERkgQu1QzuLOPT0zvzkHn9HbAFEjPdchP ...

  5. Selenium-Python学习——通过XPath定位元素

    用Xpath定位元素的方法总是记不住,经常要翻出各种文档链接参考,干脆把需要用到的内容整到这个笔记中方便查找. Xpath是在XML文档中定位节点的语言.使用 XPath 的主要原因之一是当想要查找的 ...

  6. k-近邻分类的Python实现

    参见<机器学习实战> # -*- coding:cp936 -*- #=========================================================== ...

  7. flappy pig小游戏源码分析(4)——核心pig模块(未完待续)

    热身之后,我们要动点真格的了,游戏叫flappy pig,我们的pig终于要出场了. 老规矩,看看目录结构,读者对着目录结构好好回想我们已经讲解的几个模块: 其中game.js是游戏主程序,optio ...

  8. 《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇05:二段跳》

    5.二段跳 二段跳概述: 基本跑酷游戏的框架搭建完毕,开发者会根据开发的游戏特性,增设一些额外功能,使游戏具有可玩性性和画面感.下面我们以角色的二段跳为例,来了解在跑酷游戏中增设其它功能的流程.二段跳 ...

  9. Hive基础介绍

    HIVE结构 Hive 是建立在 Hadoop 上的数据仓库基础构架.它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储.查询和分析存储在 Hadoop 中的大规模数据的机 ...

  10. Android实例-TTabControl的使用(XE8+小米2)

    结果:  1.如果直接改变Tab的TabIndex,那样是没有动态效果的.如果想要动态效果需要用到ChangeTabAction1; 2.ChangeTabAction1可以直接为按钮指定Action ...