springMVC学习总结 springmvc post中文乱码解决 springmvc处理日期格式

以下博客来源我的有道云笔记,点击查看原文

springMVC工作原理

springMVC学习总结 springmvc post中文乱码解决 springmvc处理日期格式_第1张图片
请求会先找到分发器 servlet DispatchServlet 所以在导入相应jar包后 应当:
1.在项目的web.xml文件中配置分发器:


    action
    org.springframework.web.servlet.DispatcherServlet


    action
    *.action

2.分发器通过web.xml中指定的路径找到src目录下的spring的处理器,spring配置文档中会有一个默认的处理器(即可手动配置修改也可不配) (在以上代码3—4行间加入以下代码指定spring配置文档路径)


        contextConfigLocation
        classpath:applicationContext.xml

默认处理器:

 

    以下配置可以通过多个路径访问同一个控制器:
    

3.把控制器,即控制层类交给spring容器管理,即在spring配置文档中:(处理器通过name属性的url地址找到控制器)

 

4.在控制器类中,可以通过ModelAndView来进行页面跳转等一系列动作。以下是跳转到指定页面:(默认是转发)

public class HomeController extends AbstractController {

    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        System.out.println("HomeController...");
        return new ModelAndView("index");
    }
}

重定向:

return "redirect:/jsp/index.jsp";//重定向

5.在web.xml配置逻辑试图( 如果Action中书写的是视图逻辑名称,那么视图解析器就必须配置
如果Action中书写的是视图真实名称,那么视图解析器就可选配置 )


            
            
            
            
            

6.显示到页面

使用注解:

1.依然在web.xml文件中配置好 分发器 并且通过分发器找到spring的配置文件
2.在spring配置文件中配好命名空间后让springioc容器去扫描带@Controller的类
3.在控制器类 标明注解 @Controller 表示把控制器交给容器管理
在方法上方 标明注解 @RequestMapping(value="/user_login.action",method=RequestMethod.POST)
value属性表示访问路径 method表示使用什么方法

控制器中的方法参数可以写多个 ,可以写一个实体类,直接点出里面从页面传过来的属性值
也可以写页面的一个字段名

@RequestMapping(value="/user_login.action",method=RequestMethod.POST)
	public String login(Model mv,
			User user,
			String sex,
//			HttpServletRequest request,
			HttpServletResponse response){
		System.out.println(user.getUsername()+user.getPassword()+sex+user.getBirthday());
		System.out.println("SpringMVC 注解版本...."); 
		//把数据存放在reqeust作用域
		mv.addAttribute("request_username", "张三");
		//把数据存放在session作用域中
//		request.getSession().setAttribute("session_username", "李四");	
		return "/jsp/index.jsp";//默认转发
		//return "redirect:/jsp/index.jsp";//重定向
	}

拓展:

1.得到页面传过来的日期处理

 /**
 * 自定义类型转换器
 */
@InitBinder
public void initBinder(HttpServletRequest request,ServletRequestDataBinder binder) throws Exception {
    //注册一个客户编辑器
	binder.registerCustomEditor(
            Date.class, 
            new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));
}	

2.解决中文乱码问题(加入web.xml)


    CharacterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
        encoding
        UTF-8
    


    CharacterEncodingFilter
    /*

你可能感兴趣的:(java,spring)