JSP-20200428
JSP核心、重要——交互层中最需要理解的地方。
【1】JSP:本质是Java的Servlet,将HTML的编码以文本流的方式交给客户端下载,在HTML当中,我们实际上看到的就是一个普通的前端页面。
【2】如何把浏览器当中填写的值,提交到服务当中。
-9个内置对象:request out response application session pageContext page[只作用于jsp] config exception
-Request:请求;由浏览器客户端,向服务器发起请求所携带的所有信息,
-向服务器发起请求的方式:表单:action指向请求到服务器的资源
-请求类型Method: 1 GET(默认)——希望向服务器获取数据 2 POST——希望向服务器提交数据
-安全性问题:post高 get低; ----> 安全并不是指报文安全,
-向服务器提交请求的参数:1,在表单当中,需要指定表单元素的name属性; 2 请求到的数据默认都是String对象
【3】协议
-http协议:明文协议
-SSL:密文协议,需要证书
-获取请求的参数:getParamater() getParamaterValues()
-属性转交
-setAttribute()
-getAttribute()
【4】中文乱码问题
-Post:
1:username = new String(username.getBytes("ISO-8859-1"),"UTF-8");
2:URIEncoding="UTF-8 ?? 对tomcat当中所有项目进行统一的编码
3:useBodyEncodingForURI="true" ;不对字符集进行编码设置;并且支持:对gei类型请求使用 setCharacterEncoding.
4:保证整个项目当中,所有文件的字符集统一。
【5】设置属性与获取;返回的是对象object
【6】转发和重定向()
-转发:【1】所有的数据流转,全部在后台完成;【2】用户只有一次请求,并获得一次响应;【3】URL是没有任何变化的;【4】转发是将请求和响应一并带走。也就是说:可以获取原本request当中所有的参数和属性;【5】没有办法转发到工程外部资源的;【6】
-重定向:【1】转发一次,将会通过响应流告诉客户端重新请求服务器。【2】原本的request 和 reponse 全部丢失,将会产生新的请求和响应。【3】重定向懈怠不会有属性,只有可能是参数;【4】URL会变化;【5】可以重定向到任意网络资源;
-
【7】session【服务器是无法主动找到客户端】——浏览器和服务器是通过发送请求,获取请求。
-在客户端和服务器之间建立会话后,会在该会话当中,产生若干次请求和响应。
-客户端和服务器的交流,都可能是客户端轮询。
-Session可以保存属性
-第一次请求抵达服务器以后,服务器生成一个sessionId,并将该SessionId作为本次会话的唯一凭证,以后该会话的每次请求,都会携带者sessionId。
-在不超时的情况下,只要浏览器不关闭,session就不会中断。
-Session可以作为服务器和客户端一次会话的缓存
-session为客户端用户共享
-默认时长:30分钟
-session.remove() ——移除某个属性
-session.invalidate() ——会话失效
【8】Application
-整个服务器共享
-所有的用户都可以获取这里的数据
【9】四个作用域: setAttribute\getAttribute ——注意:response,不是作用域
-Page:只作用于当前的jsp
-Request:作用于一次请求
-Session:作用于一次会话
-Application:作用于整个工程
【10】Cookie——敏感的数据:密码、银行账号等,
-将数据保存在客户端
-保存的上限是7天
-有极大的安全隐患
-用户是可以禁止Cookie的
-Cookie第一次请求如果没有SessionId,会由客户端生成一个SessionId交给服务器
-最好不要把敏感的数据放在Cookie里。
exclusds:
1.pom工程:用在父级工程或聚合工程中。用来做jar包的版本控制。
2.war工程:将会打包成war,发布在服务器上的工程。如网站或服务。
3.jar工程:将会打包成jar用作jar包使用。
补充一下,jdk9 后还可以打包 jmod(Java 模块化),厉害的是这个通过 jlink 命令,可以直接将 jmod 打包为对应环境的可执行的程序,告别了让用户安装 jdk 的步骤,现在也有对应的 maven 插件了
-hadoop 协议:SSH