1.servletconfig对象:servlet自己的配置对象
在servlet里通过this.get方法获得;
可以将web.xml里的servlet 配置信息传给servlet使用

2.ServletContext对象:上下文对象;
用来让Servlet与容器对话;
所有本项目的Servlet 和jsp 都共用一个ServletContext
这个对象可以取到web.xml里的context 配置信息;
ServletContext对象通常叫做application,域对象,有范围的对象,可以再范围内任意的放数据和取数据;
对象在servlet里通过this.get方法获得;
可以通过setAttribute和个体getAttribute传递数据;

3.请求对象requset
作用:
a。获取客户端信息/获取请求头信息;
如:获取上下文路径 getContextPath(); 就是获取项目路径/名;
b。获取请求中的数据(请求参数如 username password);
c。作为请求域对象,一次完整的请求和响应;
d。请求转发和包含;

4(3.a)请求头信息:是客户端浏览器发送给服务器的一些信息;
req.getHeadName()//返回请求头名字们的枚举器
req.getHeader(//传入请求头的名字)
特别的referer头,的信息代表了本次请求来自的路径;

响应头信息:是服务器发送给客户端的一些信息,这些信息可以"建议"浏览器的行为;

5(3.b)获取请求中的请求参数:
请求参数有两种:
A:来自表单,表单组件里含有的name属性属性的组件 
提交时 name=值 的方式来提交;
B:  来自超链接href路径中  ?ki=vi&ki=vi;

req.setCharacterEncoding("utf-8")//获取前设置一下字符编码
req.getparameter(//k /name)

req.getparameterMap()//当参数值是多个,比如checkbox,复选框;

resp.getWriter().write();

5(3.d)request请求对象:
转发(可以转发给静态资源或者另外的servlet):
req.getdispatcher("").forword(req.resp);
//请求获取调度器,将请求往前转发;如果转给静态页面,服务器直接转给浏览器;

请求域也可以通过 get set attribute的方式携带数据;

6.响应对象:
设置响应头(比如刷新头);

向缓冲区中写响应数据;
response.getWriter().write("3秒后页面跳转");

请求重定向(重定向的url会改变);
request.sendRedirect(requset.getcontextpath());
request.sendRedirect("https://www.baidu.com");

设置cookie文件下载;

刷新头:几秒后去新地址;
response.setContentType("text/html;charset=UTF-8");
response.setHeader("refresh","3,url="+request.getContextpath()+"/success");

7.session(会话域):用户打开一个浏览器,链接成功一个web应用,进行多次请求 和响应都处于一个会话域中。
session的销毁:关闭浏览器一段时间销毁/session不活动一定时间(最大不活动时间在web.xml)销毁;
记录登录状态:向登陆后向session域中set一个attaribute进行标识;

当一些需要用户登录的功能,就去取这个属性检查;
当注销时,把这个session属性remove掉,或者把session杀掉;

补充:session(依赖cookie,用在服务器端)和cookie(用在客户端)是两种会话保持状态;

8.JavaScript和jsp就是雷锋和雷峰塔的关系;

想把html响应回去:

我们可以通过响应对象输出流;
servlet的response.getwriter().writer()写回去,但是比较麻烦;

转发重定向可以转到一个整个页面;

以上两种只能写静态的资源;

jsp(Java server page):本质上是个servlet,由响应对象用输出流将HTML代码打回客户端浏览器;

tomcat(jsp和servlet的容器)的work目录,jsp第一次访问时,tomcat就会将jsp在work目录里变成一个类,并编译;

jsp是通过Java语言为基础进行,动态网页开发技术;
还可以跟后台的Java程序互通一些数据;

当客户端请求一个jsp(就是请求servlet,servlet给你往回写)。tomcat将其在work目录里变成一个类,并编译,用out对象写到页面;

jsp原码不修改,对象就不变更,jsp就是一个后台Java程序;

9.1jsp注释(翻译成Java类丢弃):<%--  --%>

9.2jsp脚本(在里面写Java代码):
<% 
for(int i=0;i<10;i++){
out.write("aaa");
}
%>
因为jsp本身(继承)就是一个servlet,可以直接使用out内置对象;

9.3jsp表达式(原理:调用out.print( 这里面就是jsp表达式的内容,不要加分号);):
<%=(1+1+2) %>

9.4jsp声明(出现在service方法的外面,类内方法外的东西):

可以写成员变量声明。成员方法。

<%!
public int num=100;
public double show(){
 return num*Math.PI;
}

%>
<%=
show()
>
再次注意,jsp表达式不要加分号;

9.5jsp编译指令:
page编译指令(跟页面属性相关(自带那行就是,部分配错误页面:添加errorpage属性=''错误页面相对路径"; 同时错误页面(可以使用exception内置对象)配上 iserrorpage=true属性),导包(比如在Java脚本中使用类,需要导包,快捷键<%page import="java.util.Date"%>))
补充:全局错误页面:配置web.xml error-page   errorcode 500 location 错误页面

包含编译指令从(include包含编译指令)
静态包含:
把一个页面引过来(被包含的页面里,建议只出现要包含的内容
比如要包含一个div foot.jsp里只写 一个div);
<%@include file="foot.jsp" %>
这种情况下,不编译被包含文件为Java类;

动态包含:<jsp:include page="foot.jsp"></jsp:include>
效果一样,但是这种work目录下也编译被包含的foot.jsp
为Java文件;

导标签库编译指令(taglib导标签库编译指令)

9.6jsp动作指令:
动态包含就是;

10.复习
servlet:着重逻辑和跳转;
jsp:着重于显示;
servlet的继承体系(一个接口,两个抽象类)/生命周期/配置;
了解servletConfig对象,掌握servletContext对象;
请求和响应对象(
设置编码,获取请求参数,获取请求头信息;
设置响应头,
获取输出流输出,

域对象:
servletcontext(application)
session(通常在session域中共享数据)
request

jsp七个组成:
html
注释
脚本
表达式
声明
编译指令(page include)
动作指令(<jsp:>)

jsp工作原理

11.jsp内置对象和四大作用域:

jsp的九大内置对象,就是jsp转成servlet的java类后
出现在service方法里现成的一些对象;我么在jsp页面里
可以直接拿过来使用;
已经用过的:out exception

作用域:是一个范围
之前在后台servlet中用过 请求域
应用域,会话域;

jsp里又多了一个域:页面域pageContext
页面域仅在自己的页面起作用;

12.九大内置对象,是jsp页面被服务器,翻译为Java后出现在service方法里的对象
可以直接在页面使用;

pageContext:页面上下文,是服务器为为每一个页面创建的,以一敌八
request
session
application

以上四大作用域:get set remove

out
exception:只能用在错误页面里 iserrorpage
config:jsp相当于一个servlet,config相当于servletConfig,
可以取一些相关的配置;
page:翻译之后的Java类里的this指针;
response:意义不大,但在后台servlet有用

注意:pageContext。findAttribute(key)
将会自小到大的范围去作用域里去寻找属性;

13.el表达式(表达式语言) 使用条件:web版本高于2.5
el表达式(用来替代jsp脚本,表达式,行为):
从域中读属性,从对象中获取属性,也可以做一些简单的逻辑判断;

el表达式有11个内置对象;
requestScope :代表请求域里所有属性值对的集合;

<%
user u。。。
request。setattribute("user",u)
%>
${ 
requset。user。password
}
注意:el表达式原理,调用对象属性,默认调用getxxx方法;
${
user!=null
}
注意:当el表达式中的属性没指定作用域时,默认去调用pageContext的findAttribute(属性名)
当el表达式在四大作用域中,找不到时,不会报null;

项目名${pageContext.request.contextPath}

14.复习:
request.getparameter("name");
//1.表单组件,name属性是键 ,组件value是 值
//2.?k=v

request.getattribute()
//获取属性

15.jstl(jsp 标准标签库)
用来替代一部分的脚本和表达式
使用条件:导jar包(原理写好的Java类)

使用:先用jsp编译指令导入
<% @ taglib uri="  core" prefix="c" %>

prefix 简短字

补充:脚本是一些片段,最后都会出现在service方法里,单独用个脚本写大括号,可以的;

举例
<c:forEach begin end step ></c:forEach>

遍历集合 map 留补

16。

监听器:Listener 总共有八个监听域
监听域,是用来监听application域 session域 request域信息的;

监听的内容:有三个生命周期的监听,三个属性该改变的监听,
一个session的钝化和活化的监听,
一个对象的绑定;

使用:
实现对应接口;
httpSessionListener
servletRequestAttributeListener

可以通过重写方法,在方法里拿到时间对象,获取一些内容;

17
web info下的你登不登陆都不能直接访问,只能转过来
如果想自己弄一个访问权限(权限过滤),使用web info
过滤器 Filter,由容器管理;

作用:
//过滤器,是在请求到达服务器之前 和 响应到达客户端之前;
//请求和响应,在此被拦截,加上自己的业务逻辑,然后放行请求和响应;或者不放行;
1.可以拦截request/response,修改其中的头和数据

使用:实现Filter
接口重写方法 doFilter(){
//业务逻辑
chain.dofilter(request,response);
//将请求和响应继续往下传递;
};
配置:web.xml 
<Filter>
name 
class
</Filter>
<Filter-mapping>
name
<url-pattern>/*
</url-pattern>
</Filter-mapping>

或者 注解;
//敏感词汇过滤器:
先写一个敏感词汇文件
当前端textarea提交时,触发过滤器,初始化时将违规文字读入成员变量集合
过滤器内部实现一个包装类,包装request(将敏感词汇换成xx),
在过滤器的dofilter方法里,用包装request代替那个request;

18.cookie是键值对,通过响应响应回客户端浏览器,之后每次请求服务器都会携带cookie的请求头回到服务器;
cookie是服务器往浏览器所在硬盘上存储信息的手段
cookie是服务器让浏览器存放信息的技术;
session的实现,是依赖一个叫做JSESSIONID的cookie
session在禁用cookie的浏览器里,还可以使用URL重写的方式完成session

使用:
在服务器端通过响应对象,将cookie传给浏览器,之后浏览器每次访问该项目时,都会把cookie带回来;

可以使用jsp脚本 或者el表达式内置对象cookie

典型应用:记住用户名和密码
(登录时new一个用户名cookie ,一个密码cookie;
设置cookie的存活时间 setmaxAge();
将cookie加入到响应中,
response.addcookie

在页面中${cookie.Jssionid.value}获取cookie值
//其中cookie中建议不要使用中文,要使用的话要使用url编码;

中文cookie 创建cookie时,使用URLEncoding类编码,url编码 %f1%ed....
在使用时,进行解码;
,三十天免登录,完成session的传递;

19.
文件上传下载

文件上传:form表单的 属性必须是 encoding type:multipu。。。。。多组件的二进制
这样修改之后:在后台就无法使用request对象获取里面的任何参数 ;
编码更改了,就不能使用request.getParamter 来获取表单;
这时候可以使用阿帕奇的 file upload的jar包帮我们去转需要的请求格式;
工具类会把普通form 和文件上传 都解析为file item对象;
如果fileitem 文件组件,可以获取io流;
如果是普通组件,可以获取名和值;

//servlet后台 dopost(){
//创建硬盘文件项工厂
DiskFileItemFactory df=new DiskFileItemFactory ();
//获取文件上传对象
ServletFileUpload sfu=new ServletFileUpload (df);
//文件上传对象,解析二进制编码的表单数据;;
//得到fileItem对象集合,Fileitem对象可能是普通组件,也可能是文件上传组件;
List<FileItem> fis=sfu.parseRequest(req);
if(fileItem.isFormField){
fileitem.getfilename();//普通组件名
fileItem.getString("UTF-8");
}else{
//拿到服务器里部署之后myupload的真实路径;
this.getservletContext().getRealPath("/myupload");
//取上传的文件名 filename
fileItem.getName();
//UUID uid
UUID.randomUUID().ToString().replace("-","");
//新名字
String newName=realPath+File.separator+uid+filename;

//获取文件的输入流
fileItem.getInputStream();
outPutstream out=new  fileoutputstream(newname);
//阿帕奇
IOUtil.copy()
}
}

20.
文件下载:
                               //拿到请求参数里的fn参数,就是要下载的文件的名字
        String fname = request.getParameter("fn");
        System.out.println(fname);
        //找到myupload里这个名字的文件的对象
        //servletContext有getRealPath()  真实路径
        //request有 request.getContextPath()  项目名
        String realPath = this.getServletContext().getRealPath("/myupload");
        File file=new File(realPath+File.separator+fname);
        //设置下载头,浏览器解析这个头就知道,要下载文件的名字fname;如果是中文下载名字需要使用UrlRnconding先编码,再解码;
        response.setHeader("Content-Disposition", "attachment;filename="+fname);
        //设施下载的文件大小,这样可以在浏览器看到文件大小;
        response.setContentLengthLong(file.length());
        //使用流发回数据
        InputStream is=new FileInputStream(file);//获取服务器上这个文件到本程序的输入流;
        ServletOutputStream os = response.getOutputStream();//获取本文件到响应对象的输出流;
        
        IOUtils.copy(is, os);
        IOUtils.closeQuietly(is);
        
        IOUtils.closeQuietly(os);

21.

分页

22.

ajax 异步请求,局部刷新;

asynchoronous:异步的:
浏览器发送一个请求后,页面不会在服务器响应前卡在那里,二是可以继续操作浏览网页;

局部刷新:
我们可以使用两种方式实现部分刷新:
1.iframe 页面重新加载;

2.ajax实现方式:
JavaScript发送异步请求;
服务器端,查询数据库,返回数据;
服务器端返回response;
客户端根据返回的response,来使用JavaScript操作DOM;

ajax请求服务和响应原理,核心JavaScript对象,XMLHttpRequest对象,由于历史和浏览器厂家的原因;这个对象有多个叫法;
核心对象,会发送get/post请求,并拿到服务器的响应后,再操作界面;

我们不使用这种原生的ajax

使用jQuery方式(不用关心核心对象的创建)

$.ajax()
$.get()
$.post()

$ajax(
{
type:"POST",
url:"/login",
data:"username='zs'&password=''123",//传参数
dataType:"json",//服务器返回参数类型,一般写json或者不写;
success:function(msg){//当服务器真的响应回来时,调用这个函数,一般写dom操作;
//msg响应回来的形参;
}
}
);

23.mvc
v视图层:展示数据和收集数据; 主体:html/jsp
c控制层:”调度“,跳转资源; 主体:servlet,过滤器也可以重定向;
m模型层:接受控制层的调用/处理业务逻辑/包装数据; 主体:service层/javaBean(封装类)
                使用方式:service层接受控制层调用,并发起对dao层的调用。
                使用方式:JavaBean包装大量数据到某对象,在多层次之间的方法调用时,通过传递对象来传递大量数据;

dao层:Data access Object 数据访问对象。用来专门访问数据库表;
一般的dao层:接口编程,先定义接口,再写实现类
一个dao对应一张表的各种操作(curd),方法内部将操作数据库得到的数据库转为service层要用到的对象,或对象集合,或一般数据;
dao层里的方法:注重sql语句 和模板里的参数们;并且根据需要有将操作数据库得到的数据封装为对象的设计;

分层设计的好处:符合面向对象,单元测试,是的整体结构清晰;

如何分包:
域名倒写的方式:
项目名。模块。
com.baidu.web0301.user
com.baidu.web0301.user.control
com.baidu.web0301.user.service
com.baidu.web0301.bean
com.baidu.web0301.user.dao

编译器默认的 :project Explorer 项目浏览区
另外一种文件显示方式:window /Show View/navigator模式;

对于不具体属于某一个模块,通用的功能:
写在
com.baidu.web0301.commons.util
com.baidu.web0301.commons.factory

24.html的表单检验

require属性 :不能为空

h5的正则:

pattern:正则表达式

title: 里面写提示信息

js的正则

/js正则/.test(串)

25.注意:
Ajax请求只能响应,不能转发;

26.xml
xml和html的区别:
HTML:超文本标记语言;用来做展示。 h4 h5
xml:可拓展标记语言; 就一个版本,也可以用浏览器打开。数据存放/传输,尤其是存放树形结构的数据。在多平台或应用之间传递数据();
--- 补充,json:js对象表示法。  var stu={name:"zs",age:12}

都是标记语言<>
HTML:标记都是组织设计完全。有功能。
xml:标记来自自定义。没有功能。仅做数据表示。

xml的作用:
数据存放,传输。尤其是存放树形结构的数据。在多平台多应用。

xml的语法:
跟html对比:
都分为单标签和双标签。 建议使用双标签;
标签名 由字母数字下划线或一些符号组成。 数字和符号不开头,不能用xml的组合形式。
标签可以嵌套,不能交叉。
属性值用属性值引起来。
标签的属性和标签的子标签 表示的数据信息是一个效果;

<person name="zs"><person/>
<person>
    <name>zs<name>
<person/>
xml建议使用子元素的方式

大小写区别。
一个xml有且只有一个根元素;
对于一些特殊符号。有对应的实体&quot,我们也可以自定义实体:
自定义实体的格式:
<!DOCTYPE  根元素[
<!ENTITY 实体名 "实体内容">
]
>

CDATA节 类似于html里的pre标签,不解析
<![CDATA[
public static int add(int a,int b){
    return a+b;
}
]]>

处理指令:
首行文件声明;
引css文件;<?xml-stylesheet type="text/css" href="my.css">

xml的约束:一个格式良好的xml要有约束;
约束理解起来,如果xml是字符串的话,约束就可以理解为正则,来限制它的;

常见的约束两种:DTD / Schema
DTD文档声明及引用方式:
内部的:
<!DOCTYPE bear[
    <!ELEMENT bear(person,animal*)>
    <!ELEMENT person(name,sex)>
    <!ELEMENT name(#PCDATA)>
    <!ELEMENT sex(#PCDATA)>
    <!ELEMENT animal(aname)>
    <!ELEMENT aname(#PCDATA)>
    <!ATTLIST person pid CDATA #REQUIRED>
    <!ATTLIST person pid CDATA #FIXED "人物"><!--有固定值的属性  默认有,不显示-->
    <!ENTITY abc "abc的实体">
]>

外部的(外部dtd文件中的实体没有作用,需要单独再写):
<!DOCTYPE bear SYSTEM "mybear.dtd"[
    <!ENTITY abc "再写一遍">
]>
在新建的mybear.dtd的新文件里:
<!ELEMENT bear(person,animal*)>
    <!ELEMENT person(name,sex)>
    <!ELEMENT name(#PCDATA)>
    <!ELEMENT sex(#PCDATA)>
    <!ELEMENT animal(aname)>
    <!ELEMENT aname(#PCDATA)>
    <!ATTLIST person pid CDATA #REQUIRED>
    <!ATTLIST person pid CDATA #FIXED "人物"><!--有固定值的属性  默认有,不显示-->
    <!ENTITY abc "abc的实体">
网络上的:
<!DOCTYPE bear PUBLIC "mybear.dtd">

Schema
命名空间(namespace):一个命名空间可以理解为一个约束文档;
为什么要使用命名空间?
解决元素冲突问题,一个xml文档中,可以包含许多元素和属性,当我们使用xml文档的时候,就有可能碰到名称相同的元素,而这些名称相同的元素可能代表了不同的涵义;
简单来说:就是给不同的约束文档起一个唯一的URL标识。URL路径。
一个XML里就可以引入来自不同命名空间的多个约束文档。这多个约束文档可能出现相同的元素名。
xml里引用不同含义的name,想用某个元素或者属性,就要去引用这个元素或属性所在的约束文件(命名空间)
命名空间1:name 
命名空间2:name

Schema,与DTD要做的事情一样。都是用来校验xml文档的有效性。功能更为强大;
理解Schema的数据类型;
理解Schema的元素类型;
理解Schema的验证与约束;

Schema本身也是一个xml文件 
schema 是以schema文件为根元素 
<xs:schema xmlns:xs="http://www.w3.org/2001/XML Schema"<!-- 组织规定命名空间,最根的一个约束文件,他里面有你设计当前这个约束文档需要的一切元素和数据类型,用于构建schema文件元素和数据类型属于http://www.w3.org/2001/XML Schema这个命名空间 ,xs是简短字-->
targetNamespace="http://mynamespace/mychema"<!-- 目标命名空间,给自己写的这个schema文档加的命名空间 -->
elementFormDefault="qualified" <!-- qualified,在引用我写的 这个约束文件的时候,要在xml标签前面加上简短字标识,多个引用,通常最主要的那个是不带的 -->
>

</xs:scema>

元素(分为简易元素(只有文本的标签)和复杂元素(包含属性和其他元素))和属性
写一个student.xsd例子
<xs:schema xmlns:xs="http://www.w3.org/2001/XML Schema"<!-- 组织规定命名空间,最根的一个约束文件,他里面有你设计当前这个约束文档需要的一切元素和数据类型,用于构建schema文件元素和数据类型属于http://www.w3.org/2001/XML Schema这个命名空间 ,xs是简短字-->
targetNamespace="http://mynamespace/mychema"<!-- 目标命名空间,给自己写的这个schema文档加的命名空间 -->
xmlns="http://mynamespace/mychema"
elementFormDefault="qualified" <!-- qualified,在引用我写的 这个约束文件的时候,要在xml标签前面加上简短字标识,多个引用,通常最主要的那个是不带的 -->
>
    <xs:element name="student">
                  <xs:complexType>
         <xs:sequence>
                      <xs:element ref="student" minOccurs="1"></xs:element>
                    </xs:sequence>
      </xs:complexType>
    </xs:element>
    
                <xs:element name="student">
       <xs:complexType>
           <xs:sequence>
              <xs:element ref="name"></xs:element>
              <xs:element ref="sex"></xs:element>
              <xs:element ref="age"></xs:element>
                      </xs:sequence>
      </xs:complexType>
    </xs:element>

<xs:element name="name" type="xs:string">
                          <xs:simpleType>
                <xs:restriction base:"xs:string">
                  <xs:pattern value="[A-Z]{3,6}"></xs:pattern>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>

<xs:element name="sex" type="xs:string">
                          <xs:complexType>
                  <xs:attribute name="abc" type="xs:string" use="required">
                  </xs:attribute>
              </xs:complexType>
            </xs:element>

<xs:element name="age" type="xs:string">
                          <xs:complexType>
                  <xs:attribute name="bbc" type="xs:string" use="prohibited">
                  </xs:attribute>
              </xs:complexType>
            </xs:element>
</xs:scema>

xml的解析:
用Java的形式去读或者写xml文件;
DOM4J  去处理xml文档;
//sax解析器
SAXReader sr=new SAXReader();
//读xml获取一个Doc对象
Document doc=sr.read("birds.xml");
//获取根节点对象
Element root=doc.getRootElement();
syso( root.getName() );

Web 阶段梳理(2019.1.9)相关推荐

  1. 阿里云产品搭建web应用梳理

    阿里云搭建web应用梳理 要搭建web应用,主要需要准备两部分内容,一部分是域名,另一部分就是服务器.下面分别对在阿里如何准备这两部分内容做一个简要说明. 一.域名 提供域名服务的商家很多,以万网为例 ...

  2. 大数据WEB阶段 TransientDateAccessResourceException

    大数据WEB阶段 TransientDateAccessResourceException 一 . 分析 如果数据库保存的字段有时间 , 但是没有给该字段赋值时 ,则该字段默认是0000-00-00 ...

  3. 大数据WEB阶段(九)Servlet+Request

    Servlet与Request 一.概述 Servlet 是sun公司提供的一门用于开发动态web资源的技术 按照这套规范写出来的servlet可以放置在web应用中在servlet容器中运行 . 开 ...

  4. 黑马数据库html阶段考试,黑马web阶段web试题学生版.docx

    Web 阶段 Web 试题 1. 动态网站的开发技术有 (A) JSP HTML CSS JavaScript 下面哪个请求头信息可以实现防盗链 (C) Location Refresh Refere ...

  5. Web阶段--Servlet基础知识点

    Web阶段–Servlet基础知识点 一.静态页面与动态页面 1.静态页面 概念:在Web模型中,页面中的信息是在html文件中定义好的,数据不会改变,称为"静态页面",无法根据用 ...

  6. Java web阶段学习总结(华清远见)

    标题Java web阶段学习总结 经过web前端的学习之后,我们开启了Java web后端的学习. 学习一样新的东西首先要了解它的原理,以及所要具备的一些条件.对于Servlet 的开发步骤一般有:新 ...

  7. Web阶段--Oracle数据库基础知识点

    Web阶段–Oracle数据库基础知识点 一.数据库 1.定义 是一个数据存储管理的软件,全称rdbms(关系数据库管理系统),简称数据库(db) 2.为什么需要应用数据库? 1.现有文本文件存放数据 ...

  8. 渗透测试-WEB安全梳理-中间件(apache、IIS、tomcat、weblogic、websphere、jboos、nginx)

    渗透测试-WEB安全梳理-中间件(apache.IIS.tomcat.weblogic.websphere.jboos.nginx) WEB安全梳理-中间件(apache.IIS.tomcat.web ...

  9. 一文梳理2019年腾讯广告算法大赛冠军方案

    ‍‍ 点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 作为从本次比赛共157队伍中脱颖而出的冠军方案,评分达到87.9683,从数据清 ...

最新文章

  1. IEEE Fellow、AI大牛田奇加入华为云!他为何而来?“加速AI基础研究落地”
  2. LSD-SLAM 编译过程(Ubuntu 14.04 + ROS Indigo
  3. FreeImage加速保存图像
  4. Method threw 'java.lang.StackOverflowError' exception. Cannot evaluate 问题
  5. win7系统怎么查看服务器IP地址,win7系统的ip地址在哪 小编教你怎么查看
  6. 单行文字不断向上滚动特效
  7. AD管控下的弹性云桌面和文件共享最佳实践
  8. 人造肉真的上市了,这对养殖业会有什么影响?
  9. 第二部分:志愿录取标准
  10. axure 鼠标样式,Axure8-动态面板+简单鼠标事件实现单页面应用
  11. linux 下 mysql默认表_linux环境下mysql默认是区分表名大小写的
  12. findfirst_当心findFirst()和findAny()
  13. 高可用-软件heartbeat的入门介绍
  14. linux网络子系统分析(四)—— INET连接建立API分析之connect/accept
  15. 德州大学达拉斯分校计算机专业博士,德克萨斯大学达拉斯分校计算机科学理科硕士入学条件及实习就业...
  16. @生存技巧!程序员如何应对女朋友的“小脾气”(最后附女友靓照)
  17. 5.node.js中的事件循环
  18. 网站首页html静态化,网站首页怎么静态化
  19. 拉格朗日(Lagrange)乘子法超简说明
  20. HoloLens2的vuforia模型识别

热门文章

  1. 区块链六-Merkle Tree
  2. koajs 项目实战(二)
  3. HDU 4085 Peach Blossom Spring
  4. C的|、||、、、异或、~、!运算(转)
  5. 〖Linux〗svn log 每个日志记录只显示一行的方法
  6. java调用javascript函数_使用Java程序中的参数调用Javascript函数
  7. mysql 字符串特殊字符_转:MySQL数据入库时特殊字符处理
  8. java开源播放器_JavaFX/Java8开发的开源音乐播放器
  9. 二维观察---曲线的裁剪
  10. Android录音并输出为Mp4文件