创建pojo,添加标识类的注解@Controller,亦可添加该Handler的命名空间:设置类的@RequestMapping(value="/hr")

该类中的方法(Handler)的标识使用@RequestMapping来配置 。可以设置该Handler的请求路径,和允许接收请求类型信息等;

该Handler返回String类型的逻辑视图名称。对应view视图信息。

 @Controller
@RequestMapping
public class MyController {
@RequestMapping(value="/first.do",method=RequestMethod.POST)
public String doFirst(UserInfo info,Model model) {
System.out.println("uname"+info.getUname()+"\t"+info.getBooklist().get(0).getBookname());
model.addAttribute("uname", info.getUname());
return "index";
}
}

使用注解配置Handler访问路径的通配符信息。更加便捷的访问Handler:

 @RequestMapping(value="/*third.do")// *代表0个或者多个字符,以third结尾就行
public String doThird() {
return "index";
} @RequestMapping(value="/fourth*.do")// *代表0个或者多个字符,以fourth开始就行
public String doFourth() {
System.out.println("fourth===============");
return "index";
} @RequestMapping(value="/**/fiveth.do")// **在hr和fiveth中间需要多级路径,或者没有路径均可访问
public String doFiveth() {
return "index";
} @RequestMapping(value="/*/sixth*.do")// *在hr和sixth中间,必须书写一级路径,而且必须是一级
public String doSixth() {
System.out.println("sixth===============");
return "index";
}

配置注解一定要在配置文件中开启扫描器。

<context:component-scan base-package="cn.happy"></context:component-scan>

配置对应逻辑试图名称的视图解析器。

这里使用的是InternalResourceViewResolver    (访问站内资源)

 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>

上面的配置信息显示出在Controller中返回的视图皆为

/WEB-INF/jsp/*.jsp    其他的则访问不到,该写法有些死板,后面会说到全文通用的配法。

这里使用的是org.springframework.web.servlet.view.BeanNameViewResolver   配置视图解析器(第二种方案)
org.springframework.web.servlet.view.RedirectView (支持访问站外资源)
 <!-- 视图解析题 -->
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"></bean> <!-- 外部 -->
<bean id="baidu" class="org.springframework.web.servlet.view.RedirectView">
<property name="url" value="http://wwww.baidu.com"></property>
</bean> <!-- 内部 -->
<bean id="internal" class="org.springframework.web.servlet.view.JstlView">
<property name="url" value="WEB-INF/jsp/index.jsp"></property>
</bean>
<!-- 外部 -->
<bean id="baidu" class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="location" value="classpath:MyView.xml"></property>
</bean>

比较复杂的视图解析器的配置:

          注册处理映射器
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/happy.do">firstController</prop>
</props>
</property>
</bean> 注册处理映射器
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/hello.do" value="firstController"></entry>
</map>
</property>
</bean>
注册方法名解析器
<bean id="MymethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
<property name="mappings">
<props>
<prop key="/first.do">doFirst</prop>
<prop key="/second.do">doSecond</prop>
</props>
</property>
</bean>
<bean id="MymethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName" value="actionName"></property>
</bean>

配置编码信息方式页面传递的信息出现乱码
CharacterEncodingFilter    通过配置forceEncoding属性为true设置request和response的编码格式皆为utf-8
   <!--编码过滤器  -->
<filter>
<filter-name>CharacterEncoding</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>CharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
配置springmvc核心过滤器    对所有相关.do的请求进行拦截
   <servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

在这里如果拦截的信息配置成为了 :“/*”    ,最好配置称为"/"

DispatcherServlet会将向动态页面请求,即向jsp页面的跳转请求也当做是一个普通的Controller请求。中央调度器会调用处理器映射器为其查找相应的处理器。当然是找不到的。jsp页面会报404错误 结论:/*会拦截动态资源

配置该节点解决无法访问静态资源的问题:

<mvc:default-servlet-handler/>

或者是配置这一种:

<mvc:resources location="/images/" mapping="/images/**"></mvc:resources>

这一种:

spring mvc 第一天【注解实现springmvc的基本配置】的更多相关文章

  1. Spring MVC 环境搭建(maven+SpringMVC+mybatis+Freemarker)

    Spring MVC 环境搭建(maven+SpringMVC+mybatis+Freemarker) 一.准备工作 1.Eclipse Java EE IDE(4.4.1) 2.JDK 3.Tomc ...

  2. Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法

    Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法 在Action中方法的返回值都是字符串行,一般情况是返回某个JSP,如: return "xx" ...

  3. 0001 - Spring MVC中的注解

    1.概述 Spring MVC框架提供了功能强大的注解,大大简化了代码开发的同时也提升了程序的可扩展性 2.注解 2.1.@RequestMapping Spring MVC通过@RequestMap ...

  4. Spring MVC 中 @ModelAttribute 注解的妙用

    Spring MVC 中 @ModelAttribute 注解的妙用 Spring MVC 提供的这种基于注释的编程模型,极大的简化了 web 应用的开发.其中 @Controller 和 @Rest ...

  5. spring 以及 spring mvc 中常用注解整理

    spring 以及 spring mvc 中常用注解整理 @RequestMapping(映射路径) @Autowired(注入 bean 对象) 例如: @Autowired private Bas ...

  6. Spring MVC中@RequestMapping注解使用技巧(转)

    @RequestMapping是Spring Web应用程序中最常被用到的注解之一.这个注解会将HTTP请求映射到MVC和REST控制器的处理方法上. 在这篇文章中,你将会看到@RequestMapp ...

  7. 2017.3.31 spring mvc教程(二)核心流程及配置详解

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  8. Spring MVC常用的注解类

    一.注解类配置 要使用springmvc的注解类,需要在springmvc.xml配置文件中用context:component-scan/扫描:  二.五大重要的注解类 1.RequestMapp ...

  9. Spring MVC中基于注解的 Controller

         终于来到了基于注解的 Spring MVC 了.之前我们所讲到的 handler,需要根据 url 并通过 HandlerMapping 来映射出相应的 handler 并调用相应的方法以响 ...

  10. Spring MVC如何测试Controller(使用springmvc mock测试)

    在springmvc中一般的测试用例都是测试service层,今天我来演示下如何使用springmvc mock直接测试controller层代码. 1.什么是mock测试? mock测试就是在测试过 ...

随机推荐

  1. python学习笔记(三)

    1.闭包:闭包是一个包含有环境变量取值的函数对象.环境变量取值被保存在函数对象的__closure__属性中.将函数作为某另一个函数的返回结果. 2.可以继续调用decorator来修饰函数或者类,而 ...

  2. Java判断Class变量是什么类型

    public static void main(String[] args) { java.util.Date date_u = new java.util.Date(1); java.sql.Dat ...

  3. instanceof关键字

    instanceof是Java.php的一个二元操作符(运算符),和==.>.<是同一类东西.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是判断其左边对象是否为其右边类的实 ...

  4. 基础篇-spring包的下载

    首先去到String官网 往下拉一点会看到如下图所示点击进入下一步 进入以后找到如下图所示的 然后按照下图所示操作 选择你想要的版本点击它 选择spring的完整包下载如图

  5. Cordova 打包 Android release app 过程详解

    Cordova 打包 Android release app 过程详解 时间 -- :: SegmentFault 原文 https://segmentfault.com/a/119000000517 ...

  6. 转:ServletContext,ActionContext,ServletActionContext

    ServletContext ServletContext从他的package信息可以看出,它是标准的JavaEE WebApplication类库 javax.servlet.ServletCont ...

  7. C# 软件绑定QQ群类开源放出

    周天闲来无事写个公共类,可以添加到你们自己项目中限制必须加入你QQ群才可以使用. 代码简单,高手勿喷,有哪里不合理的请回帖让大家学习学习. using System; using System.Tex ...

  8. What's going on in background?

    Did you know that mobile phone manufacturer collect your info without notifying you? Did you know yo ...

  9. 41个Web开发者JavaScript实用小技巧

    1. 将彻底屏蔽鼠标右键 oncontextmenu="window.event.returnValue=false" < table border oncontextmen ...

  10. Maximo-获取url

    //访问报表public void OPENREPORT() throws RemoteException, MXException{ int polineid=this.getMbo().getIn ...