SpringMVC

  1. Spring 包结构
    在这里插入图片描述

  2. Spring Web MVC 框架
    Spring web MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活、松散耦合的 web 应用程序的组件。MVC 模式导致了应用程序的不同方面(输入逻辑、业务逻辑和 UI 逻辑)的分离,同时提供了在这些元素之间的松散耦合。
    1)模型封装了应用程序数据,并且通常它们由 POJO 组成
    2)视图主要用于呈现模型数据,并且通常它生成客户端的浏览器可以解释的 HTML 输出。
    3)控制器主要用于处理用户请求,并且构建合适的模型并将其传递到视图呈现。
    在这里插入图片描述
    在这里插入图片描述

  3. 注解
    bean注解
    i.@Component --/
    ii.@Repository – dao
    iii.@Service - service
    iv.@Controller - controller
    注入注解
    i.@Autowired – 自动注入
    ii.@Resource – 先根据名字匹配,再根据类型匹配
    iii.@Qualifier –
    Aop注解
    i.@Aspect
    ii.@Pointcut(“execution(* com.srr.service..(…))”)
    iii.@Before(“pointcut()”)
    iv.@AfterReturning(pointcut = “pointcut()”,returning = “result”)
    v.@After(“execution(* com.srr.service..(…))”)
    vi.@Around(“execution(* com.srr.service..(…))”)
    vii.@AfterThrowing(pointcut = “execution(* com.srr.service..(…))”,throwing = “e”)
    mvc注解
    i.@RequestMapping(“hello1”)
    ii.@RequestParam(value = “id”,required = false)
    异常
    i.@ExceptionHandler(value = RuntimeException.class) 异常处理注解 —
    ii.@ControllerAdvice – 全局异常处理 controller 注解
    rest
    i.@PathVariable("id) – rest请求时
    i)Spring 无法接受日期格式
    i.@DateTimeFormat(pattern = “yyyy-MM-dd”)

  4. Spring 处理日期的三种方法
    a)前台传递日期,后台也是日期格式 (@DateTimeFormat(pattern = “yyyy-MM-dd”))— 少用
    b)在后台直接使用字符串 - 常用-- 略微高级
    c)前台处理时间用long ,后台用long 去接受 – 频繁使用 – 高级

  5. springMVC 最少jar 结构
    在这里插入图片描述

  6. 创建spring MVC 步骤
    a)创建动态Java web 项目
    b)导入上述jar 包
    c)web.xml DispatcherServlet – (mvc jar 包)
    在这里插入图片描述

d)XXXXX-servlet.xml (XXXXX = 上述servlet name)
InternalResourceViewResolver – (web 包)
prefix
suffix
在这里插入图片描述

e)xxxxController.java
i.@Controller – 将Java 放进容器 – 注解bean
ii.@RequestMapping(“hello”) – 请求的路径(去除项目名之前 ,去除参数)
项目名称之前 参数
http://localhost:8080/spring/hello?username=11
iii.return “hello”;
prefix + “hello” +suffix

//请求的路径映射
@RequestMapping("hello")
public String hello() {
	log. info("hello Spring mvc");
	return "hello";
}
  1. SpringMVC 默认配置文件移到类路径下
    contextConfigLocation - DispatcherServlet父类FrameworkServlet的一个属性
    在这里插入图片描述

  2. Web项目默认访问地址 ---- requestMapping 映射多个路径
    @RequestMapping(value = { “hello”,""})

  3. Spring mvc
    a)@RequestParam(value = “id”,required = false)
    b)常见错误码
    2xx (成功)表示成功处理了请求的状态代码
    200 (成功) 服务器已成功处理了请求。
    204 表示请求处理成功,但没有资源返回
    3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
    301 表示永久性重定向。该状态码表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI
    302 表示临时性重定向
    304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容
    4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理
    400 (错误请求) 服务器不理解请求的语法。
    401 表示未授权(Unauthorized),当前请求需要用户验证
    403 (禁止) 服务器拒绝请求。
    404 (未找到) 服务器找不到请求的网页。
    5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错
    500 (服务器内部错误) 服务器遇到错误,无法完成请求。
    501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
    502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
    503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
    504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
    505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
    c)@RequestMapping(value = “list” ,method = RequestMethod.POST) 设置方法
    d)@RequestParam() 默认必填参数,否则400
    e)@RequestParam() 注解也可以不要

  4. Spring mvc 返回数据 — ModelAndView

  5. 静态资源的访问
    a)在WebContent下新建文件夹statics(自定义名)
    b)在文件夹内放入静态资源图片aa.jps
    在这里插入图片描述
    c)在servlet.xml里配置

    <mvc:annotation-driven/>
       <!-- 静态资源 -->
        <!-- /statics/**  路径   location="/statics/"  静态资源存放的位置 -->
    	<mvc:resources mapping="/statics/**" location="/statics/" />
    

    d)通过http://localhost:8080/(工程名)/statics(路径)/aa.jpg(图片名)访问

  6. SpringMVC 核心配置 DispatcherServlet 所在位置
    spring-webmvc-3.2.13.RELEASE.jar-servlet-DispatcherServlet

  7. RESTful
    在这里插入图片描述
    帮助连接:https://www.runoob.com/w3cnote/restful-architecture.html

  8. 异常五种处理方法
    a)局部异常
    i.@ExceptionHandler(value = RuntimeException.class)
    ii.public ModelAndView dealException(
    RuntimeException e,HttpServletRequest req ,HttpServletResponse resp,HttpSession session)
    在这里插入图片描述
    b)全局异常 – 配置文件
    i.SimpleMappingExceptionResolver
    ii.exceptionMappings
    在这里插入图片描述
    c)全局异常 – controller
    i.@ControllerAdvice
    ii.404 异常 3.x — 没有这个异常; 4.X --有这个移仓
    iii.常见异常
    1.HttpRequestMethodNotSupportedException -405
    2.MissingServletRequestParameterException – 400
    3.NoHandlerFoundException - 404 – 3.0 没有
    在这里插入图片描述
    在这里插入图片描述
    d)Web 异常处理

    <error-page>
      <error-code>400</error-code>
      <location>/WEB-INF/kh87/error/400.jsp</location>
     </error-page>
     <error-page>
    
    <error-page>
    	<error-code> 405</error-code>
    	<location> /WEB-INF/error/405.jsp</locat ion>
    </error-page>
    <error-page>
    	<error-code> 500</error-code>
    	<location>/WEB-INF/error/500.jsp</location>
    </error-page>
    <error-page>
    	<error-code> 400</error-code>
    	<location>/WEB-INF/error/400.jsp</location>
    </error-page>
    <error-page>
    <error-code>404</error-code>
    	<location>/WEB-INF/error/404.jsp</location>
    </error-page>
    

    e)Try-catch –
    i.Dao 或 直接调用其他系统接口

  9. 重定向 | 转发
    a)return “forward:hello”; - 转发
    b)return “redirect:hello”; - 重定向

    @Controller
    @RequestMapping("hello/")
    public class HelloController {
    Logger log = Logger .getLogger(HelloController.class);
    	@RequestMapping ("hello" )
    	public String hello(HttpServletRequest req ,HttpServletResponse resp, HttpSession session) {
    		log.info("第二步: hello");
    		int a = 9/0;
    		session. setAttribute("name", "srr");
    		//返回的是视图名称
    		return "hello";
    	/**
    	*转发
    	* @return
    	*/
    	@RequestMapping("forward")
    	public String forward(HttpServletRequest req ,HttpServletResponse resp, HttpSession session) {
    		session. setAttribute("type", "forward- 转发");
    		log. info("第-步: forward");
    		return "forward:hello" ; .
    	}
    	/**
    	*重定向
    	* @return
    	*/
    	@Reques tMapping ("redirect")
    	public String redirect (HttpServletRequest req , HttpServletResponse resp, HttpSession session)
    		session.setAttribute("type", "redirect- 重定向");
    		String ss=null;
    		if(ss.equals("sl")) {
    		// return "forward:hello" ;
    		log. info("第- -步: redirect");
    		return "redirect:hello" ;
    	}
    
  10. ModelAndView springmvc 请求返回的模型和视图
    a)ModelAndView mav = new ModelAndView(“user/list”);
    b)mav.addObject(“username”, “sun”);
    在这里插入图片描述

  11. Ajax 异步请求
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值