2-变量与常量(go基础)
变量与常量变量声明变量的一般形式是使用 var 关键字。
123456789101112131415// 方法一:声明一个变量, 默认的值是0 var a int// 方法二:声明一个变量, 初始化一个值 var b int = 100// 方法三:在初始化的时候,可以省去数据类型,通过值去自动匹配当前变量的数据类型 var c = 100// 方法四:(常用的方法) 省去var关键字,使用:=,既推导数据类型又赋值 // 注: 短声明是在函数或方法内部使用, 不支持全局变量声明!!!! e := 100// 声明多个变量 var x, y int = 100, 200
常量定义一个常量,使用 const 关键字。常量定义的时候就要赋值。
123456789// 常量(只读属性) const length int = 10// const来定义枚举类型const ( BEIJING = 0 SHANGHAI = 1 SHENZHEN = 2)
关键字12345break default func ...
1-什么是Go语言(go基础)
Go语言是什么Go语言是一个开源的编程语言,它能让构造简单,可靠且高效的软件变得容易。
Go语言现代,快速,包含强大完善的标准库.
Go语言内置并发goroutine.
Go语言使用接口作为代码可重用性的构建块.
Go语言的优点:
编译成机器码
静态类型语言:静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,但是有很多的包可以使用,写起来的效率很高,Go最大的特色, 天生的支持并发(可以充分的利用多核,很容易的使用并发)
内置runtime,支持垃圾回收
丰富的标准库(网络库强大)
跨平台编译
Go语言学习开始第一步(Hello World!)
1234567package main import "fmt" func main() { fmt.Println("Hello, World") }
谈一谈学习Golang的想法是如何产生的
学习go之前的一些七七八八的想法 因为在大一大二主要是学习一些算法。并没有接触到什么非常有技术的东西。而今上了大三,依旧是学习的是学校那一套,走java路线。学会了javaweb里面的相关技术,JDBC,Mybatis等,也了解了springboot框架,但是学的时候发现java这个体系真的是非常庞大。作为一个双非一本的本科生,感觉这样学下去出去的竞争力真的好小,于是我看到了GO!!!
在学习Go之前查阅了不少资料视频介绍,发现中国的go开发大概占17%左右,而且相当一部分是大厂,(这意味着我必须全力投入才可能找到一份工作)。岗位最多的还是java这个老大哥。但是这并不会直接劝退我。
我又找了很多关于go的介绍,介绍了go的各种优点(高并发、简单易懂、支持回收、跨平台等等),也有一些缺点(开源社区支持度有点低)。
但是通过这些,我越来越觉得go是一个大趋势,我不想浪费掉我的时间去求稳,我想更好的利用自己的时间去学习一些新的知识(go)。加油!!!
什么是会话跟踪
会话跟踪
会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应。
会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据。
HTTP协议是无状态的,每次浏览器向服务器请求时,服务器都会将该请求视为新的请求,因此我们需要会话跟踪技术来实现会话内数据共享。
实现方式:
客户端会话跟踪技术:Cookie
服务端会话跟踪技术: Session
CookieCookie的实现是基于HTTP协议的
响应头: set-cookie
请求头: cookie
Cookie存活时间默认情况下,Cookie存储在浏览器内存中,当浏览器关闭,内存释放,则Cookie被销毁setMaxAge(int seconds):设置Cookie存活时间
正数:将Cookie写入浏览器所在电脑的硬盘,持久化存储。到时间自动删除
负数:默认值,Cookie在当前浏览器内存中,当浏览器关闭,则Cookie被销毁
零:删除对应Cookie
Session服务端会话跟踪技术:将 ...
JSP
JSPJSP脚本JSP脚本用于在JSP页面内定义Java代码
JSP脚本分类:
<%…%>:内容会直接放到_jspService()方法之中
<%=..%>:内容会放到out.print()中,作为out.print()的参数.
<%!..%>:内容会放到_jspService()方法之外,被类直接包含.
JSP缺点由于JSP页面内,既可以定义HTML标签,又可以定义Java代码,造成了以下问题:
书写麻烦:特别是复杂的页面。
阅读麻烦。
复杂度高:运行需要依赖于各种环境,JRE,JSP容器,JavaEE…
占内存和磁盘:JSP会自动生成.java和.class文件占磁盘,运行的是.class文件占内存。
调试困难:出错后,需要找到自动生成的.java文件进行调试。
不利于团队协作:前端人员不会Java,后端人员不精HTML。
jsp已经比较老了,可替换成html+ajax
EL表达式
Expression Language表达式语言,用于简化JSP页面内的Java代码
主要功能:获取数据
语法:${expression}
${brand ...
Request和Response
Request(请求)和Response(响应)
Request:获取请求数据
Response:设置响应数据
RequestRequest继承体系
Tomcat需要解析请求数据,封装为request对象,并且创建request对象传递到service方法中
使用request对象,查阅JavaEE API文档的HttpServletRequest接口
Request获取请求数据
请求行: GET /request-demo/req1?username=zhangsan HTTP/1.1
String getMethod():获取请求方式:GET
String getContextPath():获取虚拟目录(项目访问路径):/request-demo
StringBuffer getRequestURLO:获取URL(统一资源定位符): http://localhost:8080/request-demo/req1
String getRequestURI():获取URI(统一资源标识符):/request-demo/req1
String getQueryString(): ...
Servlet笔记
Servletservlet入门
创建web项目,导入Servlet依赖坐标
123456<dependency> <groupld>javax.servlet</groupld> <artifactld>javax.servlet-api</artifactld> <version>3.1.0</version> <scope>provided</scope></dependency>
创建:定义一个类,实现Servlet接口,并重写接口中所有方法,并在service方法中输入一句话
123public class ServletDemo1 implements Servlet { public void service(){}}
配置:在类上使用@WebServlet注解,配置该Servlet的访问路径
12@WebServlet("/demo1")public class ServletDem ...
Tomcat
TomcatWeb服务器Web服务器是一个应该程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让web开发更加便捷。主要功能是“提供网上信息浏览服务”。
概念: Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻最级Web服务器,支持Servlet/SP少量JavaEE规范。
JavaEE: Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java lDL、JTS、JTA、JavaMail、JAF。
Tomcat也被称为Web容器、Servlet容器。Servlet需要依赖于Tomcat才能运行。
官网: https://tomcat.apache.org/
Web服务器作用?
封装HTTP协议操作,简化开发.可以将web项目部署到服务器中,对外提供网上浏览服务.
Tomcat是一个轻量级的Web服务器,支持Servlet/JSP少量JavaEE规范,也称为Web容器,Servlet ...
HTTP协议
HTTPHTTP:超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
HTTP协议特点
基于TCP协议:面向连接,安全。
基于请求-响应模型的:一次请求对应一次响应。
HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。缺点:多次请求间不能共享数据。优点:速度快。
HTTP-请求数据格式请求数据分为3部分:
请求行:请求数据的第一行。其中GET表示请求方式 ,/ 表示请求资源路径,HTTP/1.1表示协议版本。
请求头:第二行开始,格式为key: value形式。
请求体:POST请求的最后一部分,存放请求参数。
常见的HTTP请求头:
Host:表示请求的主机名
User-Agent:浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0 …Chrome/79,IE浏览器的标识类似Mozilla/5.0 (Windows NT …) like Gecko;
Accept:表示浏览器能接收的资源类型,如text/,image/或者/表示所有;
Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;
...
javaweb学习以及相关框架使用
JavaWeb技术栈
B/S架构: Browser/Server,浏览器/服务器架构模式,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web资源,服务器把Web资源发送给浏览器即可。
好处:易于维护升级,服务器端升级后,客户端无需任何部署就可以使用到新的版本。
静态资源:HTML、CSS、JavaScript、图片等。负责页面展现。
动态资源:Servlet、JSP等。负责逻辑处理。
数据库:负责存储数据。
HTTP协议:定义通信规则。
Web服务器:负责解析HTTP协议,解析请求数据,并发送响应数据。
HTTPHTTP:超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
HTTP协议特点
基于TCP协议:面向连接,安全。
基于请求-响应模型的:一次请求对应一次响应。
HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。缺点:多次请求间不能共享数据。优点:速度快。
HTTP-请求数据格式请求数据分为3部分:
请求行:请求数据的第一行。其中GET表示请求方式 ,/ 表示请求资源路径,HTTP/1 ...