springBoot2 基础语法
请求响应
request对象
request 对象其实是HttpServletRequest 类型, 通过它可以获取请求相关的一切信息, 包含请求信息 、 以及请求参数 ,甚至可以当成往里面存储数据【暂定】
- @RequestMapping("/aa")
- @ResponseBody
- public String aa(HttpServletRequest request , HttpServletResponse response){
- //1. 获取请求行
- String method = request.getMethod(); //请求方式
- String uri = request.getRequestURI(); //请求地址
- String protocol = request.getProtocol(); //获取协议
- System.out.println(method + " :" + uri + " : "+ protocol);
- //2. 获取请求头信息
- Enumeration<String> headerNames = request.getHeaderNames();
- while (headerNames.hasMoreElements()){
- String headerName = headerNames.nextElement();
- String headerValue = request.getHeader(headerName);
- System.out.println(headerName + " = " + headerValue);
- }
- //3. 获取请求参数
- String username = request.getParameter("username");
- return "请求成功";
- }
response对象
response的类型为HttpServletResponse类型 , 在客户端发出每个请求时,服务器都会创建一个response对象,目的是为了对客户端的请求做出响应。
- @RequestMapping("testResponse")
- public void testResponse(HttpServletResponse response)throws IOException{
- //1. 设置响应行
- response.setStatus();
- //2. 设置响应头
- response.setHeader("myHeader" , "myHeaderValue");
- //3. 设置响应体
- response.setContentType("text/html;charset=UTF-8");
- response.getWriter().write("你好~!??");
- System.out.println("执行了testResponse");
- }
资源
静态资源
在gradle资源目录中,有个resource的目录,该目录主要是用来存放项目的资源,一般是html 、css 、js、图片 … . 默认情况下,resource下的资源是不能随便乱放的。因为Spring Boot 在处理资源匹配上,有自己默认的配置。 其中匹配的是 /static ,/public, /resources, /META-INF/resources 目录 。 比如我们有一个html页面,那么这个html页面,默认可以放在以上4个目录中。
使用默认目录
自定义目录
一般来说,官方给定的默认目录已经足够我们开发用了。我们如果想要声明 html文件, 可以在static下新建目录html , 如果要表示 图片,可以再static下新建image目录。如果自定义目录,需要在resource下新建application.properties 文件,在文件中指定路径。
- #表示静态资源位置 直到public 都是默认的位置。 后面的是我们自己添加的。
- spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/html,classpath:/image
转发 & 重定向
跳转页面
要想跳转页面,类上使用的注解应该换成@Controller , @RestController 是用于返回json字符串的,而@Controller 使用于跳转页面
- @Controller
- public class UserController {
- private static final String TAG = "UserController";
- @RequestMapping("/user_register")
- public String register(User user){
- //此处使用对象来封装数据
- try {
- FileWriter fileWriter = new FileWriter("stu.txt", true);
- fileWriter.write(user.toString() + "\r\n");
- fileWriter.close();
- System.out.println("注册成功");
- } catch (IOException e) {
- e.printStackTrace();
- }
- return "index.html";
- }
- }
请求转发
请求转发的写法有以下几种。
使用request对象
- request.getRequestDispatcher("index.html").forward(request,response);
直接返回跳转页面
- return "index.html";
- 或者
- return "forward:index.html";
重定向
返回值使用 redirect: 作为前缀,表示使用重定向来跳转页面 。
使用response对象
- response.sendRedirect("index.html");
直接返回跳转页面
- @RequestMapping("/save")
- public String save09() throws ServletException, IOException {return "redirect:index.html";
- }
会话
Cookie
基本使用
- Cookie cookie = new Cookie("key" ,"value");
- response.addCookie(cookie);
设置时长
- Cookie cookie = new Cookie("name","aobama");
- //设置过期时间
- cookie.setMaxAge( * * * );
- response.addCookie(cookie);
Session
获取session
- HttpSession session = request.getSession()
存值
- session.setAttribute(name ,value);
取值
- session.getAttribute(name);
移除值
- session.removeAttribute(name);
让session失效 作废
- session.invalidate();
获取id值
- session的id值就是这一块内存空间的唯一标识符。 session.getId() .
常用注解
SpringBootApplication
包含@Configuration、@EnableAutoConfiguration、@ComponentScan 通常用在主类上。
EnableAutoConfiguration
作用在于让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置 这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。由于spring-boot-starter-web添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用并相应地对Spring进行设置。
Repository:
用于标注数据访问组件,即DAO组件。
Service
用于标注业务层组件。
RestController
加上RestController 表示修饰该Controller所有的方法返回JSON格式,直接可以编写Restful接口
要想跳转页面,类上使用的注解应该换成@Controller , @RestController 是用于返回json字符串的,而@Controller 使用于跳转页面
ResponseBody
表示该方法的返回结果直接写入HTTP response body中 一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。
Component
泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
ComponentScan
组件扫描。
Configuration
指出该类是 Bean 配置的信息源,相当于XML中的<beans></beans>,一般加在主类上
EnableAutoConfiguration
让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置,一般加在主类上。
RequestMapping
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
该注解有六个属性:
params:指定request中必须包含某些参数值是,才让该方法处理。
headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。
value:指定请求的实际地址,指定的地址可以是URI Template 模式
method:指定请求的method类型, GET、POST、PUT、DELETE等
consumes:指定处理请求的提交内容类型(Content-Type),如application/json,text/html;
produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回
springBoot2 基础语法的更多相关文章
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- iOS-----正则表达式的基础语法
正则表达式简单语法总结 一.什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式.那么一个正 ...
- python之最强王者(2)——python基础语法
背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...
- emmet 系列(1)基础语法
emmet 系列(1)基础语法 emmet 是一个能显著提升开发html和css开发效率的web开发者工具 emmet基本上目前已知的编辑器都有相应的插件,各个编辑器的emmet插件的下载地址:点我下 ...
- Scala基础语法 (一)
如果你之前是一名 Java 程序员,并了解 Java 语言的基础知识,那么你能很快学会 Scala 的基础语法. Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的. 我 ...
- Java基础语法
java基础学习总结——基础语法1 一.标识符
- javascript中正则表达式的基础语法
× 目录 [1]定义 [2]特点 [3]元字符[4]转义字符[5]字符组[6]量词[7]括号[8]选择[9]断言[10]模式[11]优先级[12]局限性 前面的话 正则表达式在人们的印象中可能是一堆无 ...
- Swift基础语法学习总结(转)
Swift基础语法学习总结 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...
- 黑马程序员——OC语言基础语法 面向对象的思想
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...
随机推荐
- spring学习 十四 注解AOP 通知传递参数
我们在对切点进行增强时,不建议对切点进行任何修改,因此不加以使用@PointCut注解打在切点上,尽量只在Advice上打注解(Before,After等),如果要在通知中接受切点的参数,可以使用Jo ...
- tensorflow下识别手写数字基于MLP网络
# coding: utf-8 # In[1]: import tensorflow as tf import tensorflow.examples.tutorials.mnist.input_da ...
- Django的学习(二)————Templates
一.django的模板: 在settings.py的文件中可以看到并设置这个模板. 1.直接映射: 通过建立的文件夹(templates)和文件(html)来映射. <!DOCTYPE html ...
- 44、WebStrom下载和破解
WebStrom下载地址: http://www.pc6.com/mac/112553.html WebStrom 2017激活破解(http://blog.csdn.net/it_talk/arti ...
- 33、iOS10 由于权限问题导致崩溃的大坑
控制台报忠告: This app has crashed because it attempted to access privacy-sensitive data without a usage d ...
- shell脚本清空redis库缓存
前提: 现在做的一个业务系统,用了redis做缓存. 系统做了缓存,通常在系统正常使用的过程中,可以节省很多系统资源,特别是数据库资源. 但是,在开发.测试或者系统遇到问题的时候,也有很麻烦的事情. ...
- oracle 查看表空间使用情况
查看表空间剩余: ||'M' from dba_free_space group by tablespace_name 查看表空间总大小.使用大小.剩余大小,使用率.剩余率 ) useded, tru ...
- 利用cglib包实现Spring中aop的<aop:advisor>功能
一:前言 还有<aop:before>/<aop:after>/<aop:around>的没有实现,不过根<aop:advisor>是差不多的,就是要额 ...
- 理解-const
c++ 中const和c中define的区别 (1) 编译器处理方式不同 define宏是在预处理阶段展开. const常量是编译运行阶段使用. (2) 类型和安全检查不同 define宏没有类型,不 ...
- 公司内部Samba 服务器架设
1.需求 在公司内部打造一个文件管理系统,其作用域仅仅在公司内部,支持在线对文件的修改和保存操作等,同时也要注意权限问题. 2.策划 目前设立四个群组:运维.开发 .测试和普通,当然所对应的对文件的访 ...