springMVC学习笔记二
六、springmvc的注解
xml的配置→注解
1、新建一个配置文件还是在config下
新建springAnnotation-servlet.xml
web.xml 修改初始化为<param-value>classpath*:config/springAnnotation-servlet.xml</param-value>
springAnnotation-servlet.xml 加入一个扫描包。扫描包下的所有类
<context:component-scan base-package="com.tgb.web.controller.annotation"></context:component-scan>
继续添加。上面为注解扫描包,下面为开启注解。
spring webmvc下的目录mvc下的annotation下的两个类。注解
<!-- 根据url去匹配类,类去匹配方法 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
2、 src下的java类
package com.tgb.web.controller.annotation; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView; @Controller
public class UserController {
@RequestMapping(value="/user/addUser",method=RequestMethod.GET)
public ModelAndView addUser(){
String result="this is the addUser function";
return new ModelAndView("/jquery","result",result);
}
@RequestMapping(value="/user/delUser",method=RequestMethod.GET)
public ModelAndView delUser(){
String result ="this is delUser------";
return new ModelAndView("/jquery","result",result);
}
@RequestMapping(value="/user/toUser",method=RequestMethod.GET)
public ModelAndView toUser(){
return new ModelAndView("/jquery");
}
}
3、jquery里的表单里面的get方法要对应上面的method=RequestMethod.GET 。如果表单修改为post请求,就会请求不到资源。
http://localhost:8080/springMVC1/user/toUser toUser→jquery界面→点击按钮→表单到/springMVC1/user/addUser 这个界面,返回出一行字符串
七、sprigmvc注解优化
1、配置优化
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>
修改为
<!-- 开启注解 --> <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
package com.tgb.web.controller.annotation; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
@RequestMapping("/user/data")
public class DataController { @RequestMapping("/addUser")
public String addUser(String userName,String age,HttpServletRequest request){ String result ="this is addUser------优化版";
request.setAttribute("userName", userName);
request.setAttribute("age", age); return "/userManager";
} @RequestMapping("/delUser")
public String delUser(HttpServletRequest request){
String result ="this is delUser------优化版";
request.setAttribute("result", result);
return "/jquery";
}
@RequestMapping("/toUser")
public String toUser(HttpServletRequest request){
return "/addUser";
}
}
见源码。
有了以前的注解开启。
http://localhost:8080/springMVC1/user/data/toUser →返回到一个addUser.jsp界面,然后表单到controller里面 保存数据,传递数据到userManager.jsp
3、表单中姓名乱码。
addUser.jsp里面为charset=UTF-8编码。
提交到服务器,修改tomcat的config下的
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改为
<Connector URIEcoding="UTF-8" port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
GET方法请求,然后修改tomct里面的编码也为UTF-8.所以姓名也不会乱码了
POST方法,依然乱码
4、在web.xml修改一下拦截
添加如下【其中filter就是spring web jar包下的web下的filter下的CharacterEncodingFilter】
<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>
<!-- encoding filter for jsp page -->
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
springMVC学习笔记二的更多相关文章
- springMVC学习笔记(二)-----注解和非注解入门小程序
最近一直在做一个电商的项目,周末加班,忙的都没有时间更新博客了.终于在上周五上线了,可以轻松几天了.闲话不扯淡了,继续谈谈springMvc的学习. 现在,用到SpringMvc的大部分使用全注解配置 ...
- SpringMVC学习笔记(二)
一.HandleMapping和HandlerAdapter的讲解 HandleMapping:处理映射器,可以理解为为请求的url查找对应的Controller类. HandlerAdapter:可 ...
- SpringMVC学习笔记二:常用注解
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6831976.html 参考:http://www.cnblogs.com/leskang/p/5445698 ...
- SpringMVC学习笔记二第一个小的程序
首先:我们要用springmvc来写一个helloworld的例子: 首先我们需要导入所需要的架包: /demo1/WebRoot/WEB-INF/lib/commons-logging-1.1.1. ...
- SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解
版权声明:本文为博主原创文章,博客地址:http://blog.csdn.net/a67474506?viewmode=contents 1.1. @RequestMapping映射请求 Spring ...
- springmvc学习笔记二:重定向,拦截器,参数绑定
Controller方法返回值 返回ModelAndView controller方法中定义ModelAndView对象并返回,对象中可添加model数据.指定view. 返回void 在Contro ...
- SpringMVC学习笔记二:参数接受
该项目用来介绍SpringMVC对参数接受的方法: 项目目录树:在前一个项目上修改添加 新添加了Student类和Group类,用来测试整体参数接受 Student.java package com. ...
- SpringMVC学习笔记之二(SpringMVC高级参数绑定)
一.高级参数绑定 1.1 绑定数组 需求:在商品列表页面选中多个商品,然后删除. 需求分析:功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Cont ...
- 史上最全的SpringMVC学习笔记
SpringMVC学习笔记---- 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于Spring ...
随机推荐
- POJ3087 Shuffle'm Up 简单模拟
题意:就是给你两副扑克,然后一张盖一张洗牌,不断重复这个过程,看能不能达到目标的扑克顺序 分析:然后就模拟下,-1的情况就是有循环节 #include<cstdio> #include&l ...
- Selenium2Library中的Get Alert Message
今天在处理页面的弹出框(alert)时,发现Get Alert Message 并不如字面意思这么简单 函数说明如下: 很明了:(1)返回alert 的text (2)如果没有alert,则该keyw ...
- 网页加载速度优化2--先加载css,然后再加载js文件。
网页加载时,是按从上到下,从左到右的顺序加载的.所以一定要先加载css文件(不要让用户看到一个杂乱无章的页面),最后再加载js文件,js一般都是处理功能的,所以不需要提前加载.先给用户观感,再给用户上 ...
- faplayer编译配置经验
最近在做在线m3u8类格式的视频直播应用, 在获取m3u8的文件之后,如果采用Android系统播放器来播,会有各种各样的问题,容易卡死.不连续,也不能自定义一些选项.查找资料以后,决定采用fapla ...
- C#编程中的66个好习惯,你有多少个?(转)
http://www.cnblogs.com/jxsoft/archive/2012/01/11/2318824.html
- UIBezierPath精讲
前言 笔者在写本篇文章之前,也没有系统学习过贝塞尔曲线,只是曾经某一次的需求需要使用到,才临时百度看了一看而且使用最基本的功能.现在总算有时间停下来好好研究研究这个神奇而伟大的贝塞尔先生! 笔者在学习 ...
- Objective-C Runtime 运行时之二:成员变量与属性
类型编码(Type Encoding) 作为对Runtime的补充,编译器将每个方法的返回值和参数类型编码为一个字符串,并将其与方法的selector关联在一起.这种编码方案在其它情况下也是非常有用的 ...
- 转载MVC Html.AntiForgeryToken() 防止CSRF攻击
MVC中的Html.AntiForgeryToken()是用来防止跨站请求伪造(CSRF:Cross-site request forgery)攻击的一个措施,它跟XSS(XSS又叫CSS:Cross ...
- Dijkstra in python
下面是一段由python实现的Dijkstra算法,一些地方的处理实在非常棒,相比于C,代码的数量已经缩减到了60行,所以我想通过本文简单的介绍一下这段代码的细节之处,首先给出源程序: from sy ...
- MSSQLSERVER数据库- SQL删除重复数据的五种方式
删除重复的数据,在平时的工作中还是会和碰到的,感觉挺有用,从网上摘录的,记在这里,以备需要时查阅 --方法一,IN方式,适合2000/2005/2008,6728 毫秒 DELETE [student ...