SpringMVC

SpringMVC搭建

1、创建工程
2、导入jar包
3、配置web.xml配置文件-----声明不用传统servlcet,用springmvc

springdispatcherServlet org.springframework.web.servlet.DispatcherServlet 1 springdispatcherServlet / 4、创建servlet类其实就是一个普通类hangdle @controller---- 声明是控制器 @RequestMapping---- 拦截 5、创建springmvc.xml 1、扫描 有注解的包 2、配置视图解析器(.jsp ) 6、Java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 解决方案 导入jar包

7、springdispatcherServlet-servlet.xml路径放置
8、类映射和方法映射
9、springmvc 默认请求转发,更改method=RequestMethod.POST
10、index.jsp 更改请求方式
11、属性值,params={“name”} 必须有请求参数必须有name属性
params={“name=zs”,“age!=23”,“handle”}>>>>>>属性不能包含handle
12、获取请求头信息
@RequestMapping(value = “welcome2”,headers = {“Accept=text/html,application/xhtml+xml,application/xml;q=0.9,
image/webp,/;q=0.8”,“Accept-Encoding=gzip, deflate”}) //方法映射
13、ant风格的请求
?一个 value = “welcome4/a?c/test”,

  • 多个 value = “welcome3/*/test”

14、拿前端的值
@RequestMapping(value = “welcome5/{name}”) //方法映射
public String welcome5(@PathVariable(“name”) String name) {

15、一间生成web.xml配置文件 alt+/ 然后选dispatcherselect
16、请求方式 GET POST DELETE PUT
GET 查
POST 增
DELETE 删
PUT:改
17、过滤器配置

HiddenHttpMethodFilter
org.springframework.web.filter.HiddenHttpMethodFilter


HiddenHttpMethodFilter
/*

前台:三要素 post hidden _method

18、参数拿值 @RequestMapping(value = "testParam") //方法映射 public String testParam(@RequestParam("uname") String name,@RequestParam(value = "uage",required=false,defaultValue = "20") Integer age) { System.out.println("改ID::"+name); System.out.println("age:"+age); return "success"; } 19、springmvc强大之处 实体类的封装 @RequestMapping(value = "testObjectProperties") //方法映射 public String testObjectProperties(Student student) {、

20、request域
处理数据模型及注解的使用—sevlet带数据跳转>>>>
ModelAndView: 相当于request.setAttribute(“student”,stu);
ModelMap:
Map:
Model:

21、 session域
@SessionAttributes("")
@SessionAttributes(types = Student.class) //放入学生类型

22、@ModelAttribute 注解 更新操作
约定:map.put(“stu”,student);

23、视图 、视图解析器、国际化
1、建立资源文件.properties

2、springmvc 配置文件

3、

24、jsp跳转到jsp没有经过spirngmvc
1、配置

<mvc:view-controller path=“SpringMVCHandler/testMvcViewController” view-name=“success”/>

mvc:annotation-driven</mvc:annotation-driven>

25、指定请求方式 重定向转发
return “forward:/views/sucess.jsp”

26、访问静态资源 (例如图片,)
解决方法:spring.xml加入
mvc:default-servlet-handler</mvc:default-servlet-handler>

27、数据类型转换(zl-55-ff)>>转换为student封装
解决方法:
1、创建自定义类型转换器MyConverter类
public class MyConverter implements Converter<String,Student> {
@Override
public Student convert(String source) {
// TODO Auto-generated method stub
String[]studentStrArr =source.split("-");
Student student =new Student();
student.setId(Integer.parseInt(studentStrArr[0]));
student.setName(studentStrArr[1]);
student.setAge(Integer.parseInt(studentStrArr[2]));
return student;
}
}
2、配置spring.xml











<mvc:annotation-driven conversion-service=“conversionService”></mvc:annotation-driven>
28、数据格式化SimpleDateForamt
解决方法:
1、在spring.xml加入bean



<mvc:annotation-driven conversion-service=“conversionService2”></mvc:annotation-driven>

2、直接日期格式化加@注解
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;

29、BindingResult约定 抛异常前端不显示错误,后端打印异常
if(result.getErrorCount()>0) {
for(FieldError error:result.getFieldErrors()) {
ystem.out.println(error.getDefaultMessage());
}
}

30、错误信息处理BindingResult
1、前台
if(result.getErrorCount()>0) {
for(FieldError error:result.getFieldErrors()) {
System.out.println(error.getDefaultMessage());
map.put(“errors”,result.getFieldErrors()); //拿错误信息
}
}
2、后台
<c:forEach items="${errors}" var=“error” >
${error.getDefaultMessage() }

</c:forEach>

31、数据校验jrs303
1、导入jar包4个包>>>出问题版本问题
2、配置spring.xml加入bean
<mvc:annotation-driven ></mvc:annotation-driven>
3、加入@past
@Past //数据校验 当前时间
@DateTimeFormat(pattern = “yyyy-MM-dd”)//日期格式化
private Date birthday;
4、加入@Valid
@Valid Student student,BindingResult result,Map<String,Object> map

32、ajax 请求反会json数据
解决:
1、写前端ajax
2、springmvc.xml加入@ResponseBody
3、导入jar
https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.10.3/

33、springmvc实现文件上传
1、前台



描述:

	<input type="submit" value="上传">
</form>
2、handler
//文件上传处理方法
	@RequestMapping(value="testUpload") //abc.png
	public String testUpload(@RequestParam("desc") String desc  , @RequestParam("file") MultipartFile file  ) throws IOException {
		
		System.out.println("文件描述信息:"+desc);
		//jsp中上传的文件:file
		
		InputStream input = file.getInputStream() ;//IO
		String fileName = file.getOriginalFilename() ;
		
		OutputStream out = new FileOutputStream("d:\\"+fileName) ;
		
		
		byte[] bs = new byte[1024];
		int len = -1;
		while(( len = input.read(bs)) !=-1 ) {
			out.write(bs, 0, len);
		}
		out.close();
		input.close();
		//将file上传到服务器中的 某一个硬盘文件中
	System.out.println("上传成功!");
		
		return "success";
	}
3、spring.xml配置
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="defaultEncoding" value="UTF-8"></property>
		<!-- 上传单个文件的最大值,单位Byte;如果-1,表示无限制 -->
		<property name="maxUploadSize"  value="102400"></property>
</bean>

34、拦截器
1、拦截器class创建
2、配置


mvc:interceptors

		<!-- 配置具体的拦截路径 -->
		<mvc:interceptor>
			<!-- 指定拦截的路径,基于ant风格 -->
			<mvc:mapping path="/**"/>  
			<!-- 指定拦不截的路径 -->
			<mvc:exclude-mapping path="/handler/testUpload"/> 
			<bean  class="org.lsj.interceptor.MyInterceptor"></bean>
		</mvc:interceptor>
		
			<!-- 配置具体的拦截路径 -->
		<mvc:interceptor>
			<!-- 指定拦截的路径,基于ant风格 -->
			<mvc:mapping path="/**"/>  
			<!-- 指定拦不截的路径 -->
			<mvc:exclude-mapping path="/handler/testUpload"/> 
			<bean  class="org.lsj.interceptor.MySecondInterceptor"></bean>
		</mvc:interceptor>
  </mvc:interceptors>

35、异常处理
1、写异常处理类
@Controller
@RequestMapping(“second”)
public class SecondSpringMVCHandler {

@RequestMapping("testExceptionHandler")
public String testExceptionHandler() {  //处理数字异常

// try {
System.out.println( 1/0 );//
// }catch(ArithmeticException e) e
// }catch(Exception e) e
return “success” ;
}
@RequestMapping(“testExceptionHandler2”)
public String testExceptionHandler2() { //处理越界异常

// try {
int []nums =new int[2];
System.out.println(nums[2]);
// }catch(ArithmeticException e) e
// }catch(Exception e) e
return “success” ;
}
/*
@ExceptionHandler({ArithmeticException.class ,ArrayIndexOutOfBoundsException.class}) //异常交到这里处理
public String handlerArithmeticException1(Exception e) {
System.out.println(e +"");
System.out.println(“数学异常”+e);
return “error”;
}
*/
@ExceptionHandler({ArithmeticException.class ,ArrayIndexOutOfBoundsException.class}) //异常交到这里处理
public ModelAndView handlerArithmeticException1(Exception e) {
ModelAndView mv =new ModelAndView(“error”); //相当于session
System.out.println(e +"
");
mv.addObject(“er”,e);
return mv;
}

36、SSM整合>>>>重点涉及到的知识 mybatis、 spring 、spirngmvc
S Spring
S Spring
M MyBatis
1、导包
2、创建类表

37、Springmvc 表单
1、绑定单个属性值
2、打勾 :多个打一个够,显示4个全部打两个勾

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金石不渝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值