实战java高并发程序设计笔记,SpringMVC自学笔记(1)

false

src/main/resources

**/*.properties

**/*.xml

false

1.5 具体实现


配置web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns=“http://xmlns.jcp.org/xml/ns/javaee”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd”

version=“4.0”>

SpringMVC

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:springmvc-servlet.xml

1

SpringMVC

/

springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:context=“http://www.springframework.org/schema/context”

xmlns:mvc=“http://www.springframework.org/schema/mvc”

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

https://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/mvc

https://www.springframework.org/schema/mvc/spring-mvc.xsd">

<context:component-scan base-package=“com.kuang.controller”/>

<mvc:default-servlet-handler />

<mvc:annotation-driven />

<bean class=“org.springframework.web.servlet.view.InternalResourceViewResolver”

id=“internalResourceViewResolver”>

controller

package com.kuang.controller;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller

@RequestMapping(“/HelloController”)

public class HelloController {

//真实访问地址 : 项目名/HelloController/hello

@RequestMapping(“/hello”)

public String sayHello(Model model){

//向模型中添加属性msg与值,可以在JSP页面中取出并渲染

model.addAttribute(“msg”,“hello,SpringMVC”);

//web-inf/jsp/hello.jsp

return “hello”;

}

}

view

<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

SpringMVC

${msg}

2 接口与RestFul风格

==============

2.1 Controller


控制类用来访问应用程序,通常用接口注解定义两种方法实现

控制器解析请求并将其转换成本一个模型

在springmvc中,controller的配置方式有很多种

2.2 实现controller的方法


2.2.1 实现controller接口

Controller是一个接口,在org.springframework.web.servlet.mvc包下,接口中只有一个方法

//实现该接口的类获得控制器功能

public interface Controller {

//处理请求且返回一个模型与视图对象

ModelAndView handleRequest(HttpServletRequest var1, HttpServletResponse var2) throws Exception;

}

实现

//定义控制器

//注意点:不要导错包,实现Controller接口,重写方法;

public class ControllerTest1 implements Controller {

public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {

//返回一个模型视图对象

ModelAndView mv = new ModelAndView();

mv.addObject(“msg”,“实现接口方法测试”);

mv.setViewName(“test”); //跳转到test页面

return mv;

}

}

springMVC-servlet.xml中配置

2.2.2 使用注解@Controller

springMVC-servlet.xml中配置

<context:component-scan base-package=“com.kuang.controller”/>

实现

//@Controller注解的类会自动添加到Spring上下文中

@Controller

public class ControllerTest2{

//映射访问路径

@RequestMapping(“/t2”)

public String index(Model model){

//Spring MVC会自动实例化一个Model对象用于向视图中传值

model.addAttribute(“msg”, “注解实现测试”);

//返回视图位置

return “test”;

}

}

2.3 RestFul风格


RestFul既不是标准也不是一种协议,他是一种风格,基于这种风格设计的软件页面逻辑更清晰,更简洁,更有层次,更易于实现缓存等机制

互联网的所有事物都可以被抽象成资源,我们可以使用post,delete,put,get来实现对应点的增,删,改,查。

实际操作:

@Controller

public class RestFulController {

//映射访问路径

@RequestMapping(“/commit/{p1}/{p2}”)

//在Spring MVC中可以使用 @PathVariable 注解,让方法参数的值对应绑定到一个URI模板变量上。

public String index(@PathVariable int p1, @PathVariable int p2, Model model){

int result = p1+p2;

//Spring MVC会自动实例化一个Model对象用于向视图中传值

model.addAttribute(“msg”, “结果:”+result);

//返回视图位置

return “test”;

}

}

使用method属性指定请求类型

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后,附一张自己面试前准备的脑图:

image

面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典

  • Java核心知识整理

image

  • Spring全家桶(实战系列)

image.png

Step3:刷题

既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

以下是我私藏的面试题库:

image

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

最后祝愿各位身体健康,顺利拿到心仪的offer!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
04661)]

  • Spring全家桶(实战系列)

[外链图片转存中…(img-5yKva1t0-1713467404661)]

Step3:刷题

既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

以下是我私藏的面试题库:

[外链图片转存中…(img-AsDsFAhz-1713467404661)]

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

最后祝愿各位身体健康,顺利拿到心仪的offer!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值