springMVC

1.springMVC结构				//\java Study\WEB前端\springMVC\图      这个里面有springmvc,struts2架构设计图
		控制层 controller:接受请求,发送请求		<-->	1.处理器映射器 //springmvc-servlet.xml核心配置文件
				//web.xml									
												<-->	2,处理器适配器 <--> UserController(UserAction)
												<-->	3.视图解析器 ViewResolver
												<-->	view视图层
													123springMVC三大组件
2.乱码处理
	1.get处理
		解码编码
		username = new String(username.getBytes("ISO8859-1"),"UTF-8");
	2.servlet服务器编码  //tomcat服务器service.xml处理
		 <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
	3.post处理
		spring编码过滤器,web.xml配置
	



3.ssm框架搭建步骤:
	1.动态web项目
	1.导包 mybetis spring springMVC
	2.web.xml
		编码过滤器
		加载spring配置文件 //applicationContext.xml
		加载springmvc配置文件 //springmvc.xml
	2.springmvc.xml
		扫描包
		注解驱动
	3.applicationContext-dao.xml
	  applicationContext-service.xml
	4.sqlMapConfig.xml




4.springMVC重定向:
	两种
		1.本类进行重定向'
			return "redirect:hello.do"
				>本类重定向,不需要从根路径开始
				>必须加扩展名.do web.xml中需要经过过滤器
		2.跨类重定向
			return "redirect:/items/list.do"	
				>必须从根路径进行访问
				>必须加扩展名

5.springMVC转发:
	特点:请求地址不发生变更
	1.本类进行转发
		return "forward:hello.do"
	2.跨类进行转发	
		return "forward:/items/list.do"

		
6.springMVC请求方法唯一性定义
	1.在Contrller类上加@RequestMapping(类名)
	2.在方法前面多加类根路径@RequestMapping("/user/save")
		
		
7.springMVC注解:  //
	@RequestMapping(请求映射)
		用法:
			1.@RequestMapping("url")
			2.@RequestMapping(value="url.do")
			3.@RequestMapping(value="url",method=RequestMethod.GET/POST)
	@RequestParam()
		作用:处理请求参数
		参数:
			defaultValue:设置默认值,当前台页面传递参数为null时,使用默认值.(应用场景:分页)_
			value:定义别名 -- 当前台页面传递参数名称和方法中参数名称不一致,页面参数可以和别名进行匹配
			required:表示必须传递参数,默认true
		用法:public String userlist(@RequestParam(defaultValue="1",value="ids",required=true) Integer id) {}
		
	@RequestBody
		作用:把请求的json数据,封装到javaBean对象
	@ResponseBody
		作用:把javaBean对象自动变成json对象返回页面,或者远程对象
		实现条件:
			1.导入@RequestBody,@ResponseBody转换所依赖的jar文件,3个jar
				Jackson -- 用来把javabean数据转换json格式,把json格式转换成javabean
				//只需要导入,springmvc就会自动整合jackson,
			2.springnvc配置文件配置
				//以前需要配置注解映射器和注解适配器,现在用下面代替就可以
				<mvc:annotation-driven />
	案例:1.请求Json响应Json
			@Controller
			@RequestMapping("json")
			public class MyJsonController {
				@RequestMapping("requestJson.do")
				public @ResponseBody User requestJson(Model model,@RequestBody User u){
					System.out.println("用户信息:"+u);
					return u;
				}}
	案例:2.请求pojo响应json
			@Controller
			@RequestMapping("json")
			public class MyJsonController {	
				@RequestMapping("responseJson.do")
				public @ResponseBody User responseJson(User user){
					System.out.println(user);
					return user;
				}
			}

8.springmvc处理异常
	全局异常处理器
		1.运行时异常
			返回错误页面
		2.可预期异常
			商品不存在
			....
	全局异常处理器:
		1.自定义异常类
		2.创建全局异常处理器类 implements HandlerExceptionResolver
		3.springmvc.xml中,配置全局异常处理器
			
	

9.springmvc图片上传   
	1.传统(原始)方式上传(了解)
		form上传 需要添加enctype="multipart/form-data"
		//不能跨服务器
	2.ajax异步方式上传
		跨服务器上传文件方式:
			ftp
			分布式文件系统
				fastdfs
				mgfs
				mgdb//小文件
		sun公司工具包:jersey
		异步上传条件:
			1.导入jar文件
				jersey  //sun公司工具包 3个
				commons-fileupload
				commons-io
			2.在springmvc.xml配置上传文件解析器
					<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
						<property name="maxUploadSize" value="10240000"></property>
					</bean>
			3.搭建图片服务器
				注意:搭建服务器放入tomcat时,需要在tomcat中web.xml里面103行左右,如下配置
											//eclipse中 --> Servers -->找到要部署的服务器
				        <init-param>
							<param-name>readonly</param-name>
							<param-value>false</param-value>
						</init-param>

10.restfull:    //\java Study\WEB前端\springMVC\图day2
	概念:软件的架构风格,不是技术,规范
	特点:没有参数,没有扩展名
	优势:
		>安全
		>简洁,高效
		>容易被搜索引擎收录
	利用springmvc实现restfull软件架构风格:
		1.web.xml 拦截所有
			>servlet配置拦截为 /    // 不可以直接/* 那样会拦截jsp资源
		2.springmvc.xml 放行静态资源   //高封装,一条语句就可以,以前需要手动很多语句
				<mvc:default-servlet-handler/>
		3.参数接收使用springnvc模板映射
			@PathVariable  
			案例:
					@RequestMapping("/item/editItem/{id}")
					public String editItem(@PathVariable Integer id,Model model) throws CustomException{
						//调用服务层对象,查询商品对象
						Items item = itemService.findItemByID(id);
						//放入model
						model.addAttribute("item", item);
						return "editItem";
					}
					
					

11.springmvc拦截器   //\java Study\WEB前端\springMVC\教案\day2
	在处理器映射器执行之前执行,拦截请求.
	常用场景:用户是否登录.
	使用:
		1. public class LoginInterceptor implements HandlerInterceptor{}
		2.springmvc.xml 配置拦截器

  

 

posted @ 2018-08-23 15:12  九涯  阅读(279)  评论(0编辑  收藏  举报