-
开发安全应用程序(二)——开发用于进行表单登录处理的 servlet 过滤器
2008-05-03 00:55:00开发用于进行表单登录处理的 servlet 过滤器可以使用基于表单的登录机制来控制登录屏幕的外观。...Servlet 过滤器可用来动态地拦截请求和响应以转换或使用包含在请求或响应中的信息。可以将一个或多开发用于进行表单登录处理的 servlet 过滤器
可以使用基于表单的登录机制来控制登录屏幕的外观。使用基于表单的登录,可以指定要显示的用于检索用户标识和密码信息的登录页面。还可以指定认证失败时要显示的错误页面。
如 果需要在认证之前和之后进行附加的认证或附加的处理,则可以使用 servlet 过滤器。Servlet 过滤器可用来动态地拦截请求和响应以转换或使用包含在请求或响应中的信息。可以将一个或多个 servlet 过滤器连接到一个 servlet 或一组 servlet。也可以将 servlet 过滤器连接到 JSP 和 HTML 页面。在调用 servlet 之前将调用所有与该 servlet 相连接的 servlet 过滤器。
任何与 Servlet 2.3 规范相符的 Web 容器都同时支持基于表单的登录和 servlet 过滤器。表单登录 servlet 执行认证,而 servlet 过滤器可用来执行附加的认证或审计或者记录信息。
要 使用 servlet 过滤器来执行登录前操作和登录后操作,可以为表单登录页面或为 /j_security_check URL 配置 servlet 过滤器。带有 j_username 参数(它包含用户名)和 j_password 参数(它包含密码)的表单登录页面公布 j_security_check。这样,servlet 过滤器就可使用用户名和密码信息来执行更多认证或其它处理。有关示例,参见示例:Servlet 过滤器。Copy code
示例:Servlet 过滤器
此示例说明在表单登录期间使用 servlet 过滤器来执行登录前及登录后处理的一种方法。有关此代码示例的法律信息,参见代码示例不保证声明。
// Servlet Filter source code: LoginFilter.java
/**
* A Servlet filter example: This example filters j_security_check and
* performs pre-login action to determine if the user trying to log in
* is in the revoked list. If the user is in revoked list, an error is
* sent back to the browser.
*
* This filter reads the revoked list file name from the FilterConfig
* passed in the init() method. Reads the revoked user list file and
* creates a revokedUsers list.
*
* When doFilter method is called, the user being logged in is checked
* to make sure that the user is not in the revoked User list.
*
*/
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class LoginFilter implements Filter {
protected FilterConfig filterConfig;
java.util.List revokeList;
/**
* init() : init() method called when the filter is instantiated. This
* filter is instantiated first time j_security_check is invoked for the
* application (when a protected servlet in the application is accessed).
*/
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
// read revoked user list
revokeList = new java.util.ArrayList();
readConfig();
}
/**
* destroy() : destroy() method called when the filter is taken out of service.
*/
public void destroy() {
this.filterConfig = null;
revokeList = null;
}
/**
* doFilter() : doFilter() method called before the servlet that this filter
* is mapped is invoked. Since this filter is mapped to j_security_check,
* this method is called before j_security_check action is posted.
*/
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws java.io.IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response;
// pre login action
// get username
String username = req.getParameter("j_username");
// if user is in revoked list send error
if ( revokeList.contains(username) ) {
res.sendError(javax.servlet.http.HttpServletResponse.SC_UNAUTHORIZED);
return;
}
// call next filter in the chain : let j_security_check authenticate user
chain.doFilter(request, response);
// post login action
}
/**
* readConfig() : Reads revoked user list file and creates a revoked user list.
*/
private void readConfig() {
if ( filterConfig != null ) {
// get the revoked user list file and open it.
BufferedReader in;
try {
String filename = filterConfig.getInitParameter("RevokedUsers");
in = new BufferedReader( new FileReader(filename));
}
catch (FileNotFoundException fnfe) {
return;
}
// read all the revoked users and add to revokeList.
String userName;
try {
while ( (userName = in.readLine()) != null ) {
revokeList.add(userName);
}
}
catch (IOException ioe) {
}
}
}
}
此示例显示应用程序部署描述符(web.xml)的一部分,此部分列示了 LoginFilter 配置以及指向 j_security_check 的映射:
<filter id="Filter_1">
<filter-name>LoginFilter</filter-name>
<filter-class>LoginFilter</filter-class>
<description>Performs pre-login and post-login operation</description>
<init-param>
<param-name>RevokedUsers</param-name>
<param-value>
/QIBM/UserData/WebAS5/Base/instance/installedApps/application/revokedUsers.lst
</param-value>
</init-param>
</filter-id>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/j_security_check</url-pattern>
</filter-mapping>
下面是所取消的用户列表文件的示例:
user1
cn=user1,o=ibm,c=us
user99
cn=user99,o=ibm,c=us
Servlet 过滤器应该实现 javax.servlet.Filter 类。下面是 Filter 类中需要实现的方法:
init(javax.servlet.FilterConfig cfg)
当开始使用 servlet 过滤器服务时,容器调用此方法一次。传送给此方法的 FilterConfig 参数包含 servlet 过滤器的初始化参数。在使用“应用程序汇编工具”进行配置期间,可对 servlet 过滤器指定初始化参数。
destroy()
当不再使用 servlet 过滤器服务时,容器调用此方法。
doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
容 器为每个映射至此过滤器的 servlet 请求调用此方法,然后才调用该 servlet 本身。传送至此方法的 FilterChain 参数可用来调用过滤器链中的下一个过滤器。当链中的最后一个过滤器调用 chain.doFilter() 方法时,将运行最初请求的 servlet。因此,所有过滤器都应该调用 chain.doFilter() 方法。如果过滤器代码中的附加认证检查导致故障,则不需要将原始 servlet 实例化。在这种情况下,不需要调用 chain.doFilter() 方法,相反,可将其重定向至其它一些错误页面。
如果 servlet 映射至许多 servlet 过滤器,则按照应用程序的部署描述符(web.xml)中的列示次序来调用 servlet 过滤器。
下面显示了 servlet 过滤器的示例:此“登陆过滤器”可映射至 /j_security_check 以执行登录前操作和登录后操作。
import javax.servlet.*;
public class LoginFilter implements Filter {
protected FilterConfig filterConfig;
// Called once when this filter is instantiated. If this is mapped to
// j_security_check, called very first time j_security_check is invoked.
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void destroy() {
this.filterConfig = null;
}
// Called for every request that is mapped to this filter. If mapped to
// j_security_check, called for every j_security_check action
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws java.io.IOException, ServletException {
// perform pre-login action here
// calls the next filter in chain. j_security_check if
// this filter is mapped to j_security_check.
chain.doFilter(request, response);
// perform post-login action here.
}
}
应该将 servlet 过滤器类文件放在应用程序的 WEB-INF/classes 目录中。
配置 servlet 过滤器
可使用 WebSphere Application Development Studio 或“应用程序汇编工具”(AAT)来配置 servlet 过滤器。执行下列步骤:
配置 servlet 过滤器
在此步骤中,可以对 servlet 过滤器指定名称,并可以将相应的实现类指定给 servlet 过滤器。(可选)还可指定传送至 servlet 过滤器的 init() 方法的初始化参数。
在配置 servlet 过滤器之后,应用程序部署描述符(web.xml)包含类似于以下的 servlet 过滤器配置:
<filter id="Filter_1">
<filter-name>LoginFilter</filter-name>
<filter-class>LoginFilter</filter-class>
<description>Performs pre-login and post-login operation</description>
<init-param>// optional
<param-name>ParamName</param-name>
<param-value>ParamValue</param-value>
</init-param>
</filter>
将 servlet 过滤器映射至 URL 或 servlet
在此步骤中,可以将 servlet 或 URL 模式映射至 servlet 过滤器。在将 servlet 过滤器映射至 servlet 或 URL 之后,应用程序部署描述符(web.xml)包含类似于以下的 servlet 映射:
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/j_security_check</url-pattern> // can be servlet
<servlet>servletName</servlet>
</filter-mapping>
Servlet 过滤器可用来替换 CustomLoginServlet。Servlet 过滤器还可以用来执行附加的认证、审计和记录。 -
开发安全应用程序(二)--开发用于进行表单登录处理的 servlet 过滤器
2007-07-26 16:57:00开发用于进行表单登录处理的 servlet 过滤器可以使用基于表单的登录机制来控制登录屏幕的外观。...Servlet 过滤器可用来动态地拦截请求和响应以转换或使用包含在请求或响应中的信息。可以将一个或多开发用于进行表单登录处理的 servlet 过滤器
可以使用基于表单的登录机制来控制登录屏幕的外观。使用基于表单的登录,可以指定要显示的用于检索用户标识和密码信息的登录页面。还可以指定认证失败时要显示的错误页面。
如 果需要在认证之前和之后进行附加的认证或附加的处理,则可以使用 servlet 过滤器。Servlet 过滤器可用来动态地拦截请求和响应以转换或使用包含在请求或响应中的信息。可以将一个或多个 servlet 过滤器连接到一个 servlet 或一组 servlet。也可以将 servlet 过滤器连接到 JSP 和 HTML 页面。在调用 servlet 之前将调用所有与该 servlet 相连接的 servlet 过滤器。
任何与 Servlet 2.3 规范相符的 Web 容器都同时支持基于表单的登录和 servlet 过滤器。表单登录 servlet 执行认证,而 servlet 过滤器可用来执行附加的认证或审计或者记录信息。
要 使用 servlet 过滤器来执行登录前操作和登录后操作,可以为表单登录页面或为 /j_security_check URL 配置 servlet 过滤器。带有 j_username 参数(它包含用户名)和 j_password 参数(它包含密码)的表单登录页面公布 j_security_check。这样,servlet 过滤器就可使用用户名和密码信息来执行更多认证或其它处理。有关示例,参见示例:Servlet 过滤器。Copy code
示例:Servlet 过滤器
此示例说明在表单登录期间使用 servlet 过滤器来执行登录前及登录后处理的一种方法。有关此代码示例的法律信息,参见代码示例不保证声明。
// Servlet Filter source code: LoginFilter.java
/**
* A Servlet filter example: This example filters j_security_check and
* performs pre-login action to determine if the user trying to log in
* is in the revoked list. If the user is in revoked list, an error is
* sent back to the browser.
*
* This filter reads the revoked list file name from the FilterConfig
* passed in the init() method. Reads the revoked user list file and
* creates a revokedUsers list.
*
* When doFilter method is called, the user being logged in is checked
* to make sure that the user is not in the revoked User list.
*
*/
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class LoginFilter implements Filter {
protected FilterConfig filterConfig;
java.util.List revokeList;
/**
* init() : init() method called when the filter is instantiated. This
* filter is instantiated first time j_security_check is invoked for the
* application (when a protected servlet in the application is accessed).
*/
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
// read revoked user list
revokeList = new java.util.ArrayList();
readConfig();
}
/**
* destroy() : destroy() method called when the filter is taken out of service.
*/
public void destroy() {
this.filterConfig = null;
revokeList = null;
}
/**
* doFilter() : doFilter() method called before the servlet that this filter
* is mapped is invoked. Since this filter is mapped to j_security_check,
* this method is called before j_security_check action is posted.
*/
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws java.io.IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response;
// pre login action
// get username
String username = req.getParameter("j_username");
// if user is in revoked list send error
if ( revokeList.contains(username) ) {
res.sendError(javax.servlet.http.HttpServletResponse.SC_UNAUTHORIZED);
return;
}
// call next filter in the chain : let j_security_check authenticate user
chain.doFilter(request, response);
// post login action
}
/**
* readConfig() : Reads revoked user list file and creates a revoked user list.
*/
private void readConfig() {
if ( filterConfig != null ) {
// get the revoked user list file and open it.
BufferedReader in;
try {
String filename = filterConfig.getInitParameter("RevokedUsers");
in = new BufferedReader( new FileReader(filename));
}
catch (FileNotFoundException fnfe) {
return;
}
// read all the revoked users and add to revokeList.
String userName;
try {
while ( (userName = in.readLine()) != null ) {
revokeList.add(userName);
}
}
catch (IOException ioe) {
}
}
}
}
此示例显示应用程序部署描述符(web.xml)的一部分,此部分列示了 LoginFilter 配置以及指向 j_security_check 的映射:
<filter id="Filter_1">
<filter-name>LoginFilter</filter-name>
<filter-class>LoginFilter</filter-class>
<description>Performs pre-login and post-login operation</description>
<init-param>
<param-name>RevokedUsers</param-name>
<param-value>
/QIBM/UserData/WebAS5/Base/instance/installedApps/application/revokedUsers.lst
</param-value>
</init-param>
</filter-id>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/j_security_check</url-pattern>
</filter-mapping>
下面是所取消的用户列表文件的示例:
user1
cn=user1,o=ibm,c=us
user99
cn=user99,o=ibm,c=us
Servlet 过滤器应该实现 javax.servlet.Filter 类。下面是 Filter 类中需要实现的方法:
init(javax.servlet.FilterConfig cfg)
当开始使用 servlet 过滤器服务时,容器调用此方法一次。传送给此方法的 FilterConfig 参数包含 servlet 过滤器的初始化参数。在使用“应用程序汇编工具”进行配置期间,可对 servlet 过滤器指定初始化参数。
destroy()
当不再使用 servlet 过滤器服务时,容器调用此方法。
doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
容 器为每个映射至此过滤器的 servlet 请求调用此方法,然后才调用该 servlet 本身。传送至此方法的 FilterChain 参数可用来调用过滤器链中的下一个过滤器。当链中的最后一个过滤器调用 chain.doFilter() 方法时,将运行最初请求的 servlet。因此,所有过滤器都应该调用 chain.doFilter() 方法。如果过滤器代码中的附加认证检查导致故障,则不需要将原始 servlet 实例化。在这种情况下,不需要调用 chain.doFilter() 方法,相反,可将其重定向至其它一些错误页面。
如果 servlet 映射至许多 servlet 过滤器,则按照应用程序的部署描述符(web.xml)中的列示次序来调用 servlet 过滤器。
下面显示了 servlet 过滤器的示例:此“登陆过滤器”可映射至 /j_security_check 以执行登录前操作和登录后操作。
import javax.servlet.*;
public class LoginFilter implements Filter {
protected FilterConfig filterConfig;
// Called once when this filter is instantiated. If this is mapped to
// j_security_check, called very first time j_security_check is invoked.
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void destroy() {
this.filterConfig = null;
}
// Called for every request that is mapped to this filter. If mapped to
// j_security_check, called for every j_security_check action
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws java.io.IOException, ServletException {
// perform pre-login action here
// calls the next filter in chain. j_security_check if
// this filter is mapped to j_security_check.
chain.doFilter(request, response);
// perform post-login action here.
}
}
应该将 servlet 过滤器类文件放在应用程序的 WEB-INF/classes 目录中。
配置 servlet 过滤器
可使用 WebSphere Application Development Studio 或“应用程序汇编工具”(AAT)来配置 servlet 过滤器。执行下列步骤:
配置 servlet 过滤器
在此步骤中,可以对 servlet 过滤器指定名称,并可以将相应的实现类指定给 servlet 过滤器。(可选)还可指定传送至 servlet 过滤器的 init() 方法的初始化参数。
在配置 servlet 过滤器之后,应用程序部署描述符(web.xml)包含类似于以下的 servlet 过滤器配置:
<filter id="Filter_1">
<filter-name>LoginFilter</filter-name>
<filter-class>LoginFilter</filter-class>
<description>Performs pre-login and post-login operation</description>
<init-param>// optional
<param-name>ParamName</param-name>
<param-value>ParamValue</param-value>
</init-param>
</filter>
将 servlet 过滤器映射至 URL 或 servlet
在此步骤中,可以将 servlet 或 URL 模式映射至 servlet 过滤器。在将 servlet 过滤器映射至 servlet 或 URL 之后,应用程序部署描述符(web.xml)包含类似于以下的 servlet 映射:
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/j_security_check</url-pattern> // can be servlet
<servlet>servletName</servlet>
</filter-mapping>
Servlet 过滤器可用来替换 CustomLoginServlet。Servlet 过滤器还可以用来执行附加的认证、审计和记录。 -
小结HTTP状态码
2020-12-09 08:59:23该状态码是响应客户端<code>Upgrade标头发送的,并且指示服务器也正在切换协议。</li><li><strong>103 Early Hints</strong>:主要用于与<code>Link链接头一起使用,以允许用户代理在服务器仍在... -
简述http状态码的含义(200,302,404,500)?
2019-06-22 10:40:081.简述http状态码的含义(200,302,404,500)? 200:服务器已成功的处理了请求。请求所希望的响应头或数据将随之返回。 302:请求的资源现在从不同的url响应请求。...浏览器的同源策略是浏览器为了安全性考虑实施的非...1.简述http状态码的含义(200,302,404,500)?
200:服务器已成功的处理了请求。请求所希望的响应头或数据将随之返回。
302:请求的资源现在从不同的url响应请求。
404:请求失败,请求所希望的得到的资源未在服务器上发现。
500: 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。2.跨域问题的原因以及解决方法?
浏览器的同源策略是浏览器为了安全性考虑实施的非常重要的安全策略。
从一个域上加载的脚本不允许访问另外一个域的文档属性。
举个例子:比如一个恶意网站的页面通过iframe嵌入了银行的登录页面(二者不同源),
如果没有同源限制,恶意网页上的javascript脚本就可以在用户登录银行的时候获取用户名和密码。
何谓同源:URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示它们同源。
在浏览器中,克服跨域限制的方法有(实践中后两种最常用,所以重点介绍):
(1)通过jsonp跨域
(2)通过修改document.domain来跨子域
(3)使用window.name来进行跨域
(4)使用HTML5中新引进的window.postMessage方法来跨域传送数据
(5)使用代理服务器,使用代理方式跨域更加直接,因为同源限制是浏览器实现的。如果请求不是从浏览器发起的,就不存在跨域问题了。3.谈谈js中this的指向?
事件: 如onclick this->发生事件的对象
构造函数 this->new 出来的object
call/apply 改变this -
白帽子讲浏览器安全.钱文祥(带详细书签).pdf
2019-03-08 16:34:353.3 响应数据的安全检查——XSS过滤器 52 3.3.1 IE XSS Filter的实现原理 53 3.3.2 Chrome XSSAuditor的工作原理 55 3.4 文档的预处理 56 3.4.1 浏览器对HTML文档的标准化 56 3.4.2 设置兼容模式 57 3.5 处理... -
SQL查询安全性及性能优化
2012-03-07 20:51:39系统响应变慢,软件开发中的8秒定律,当打开一个软件或网页超过8秒时间还没有显示,则响应太慢。 死锁,当不同用户都访问某些资源的时候SQL语句不当导致死锁 客户失去信心,软件失败 低效SQL低效在哪里? ... -
用python比较两个数大的_python - 比较两个非常大的数字时Python不一致的错误 - 堆栈内存溢出...
2020-12-20 19:56:58我是python的新手,我正在编写一个安全的ftp服务器/客户端来处理文件的基本上传/下载(但加密)。为确保客户端具有密钥,我加密并发送随机的32字节数。 客户端必须解密该号码,添加一个,重新加密,然后将其返回给...我是python的新手,我正在编写一个安全的ftp服务器/客户端来处理文件的基本上传/下载(但加密)。
为确保客户端具有密钥,我加密并发送随机的32字节数。 客户端必须解密该号码,添加一个,重新加密,然后将其返回给服务器。 服务器检查响应是否为随机数+ 1,然后在它们等效的情况下继续连接。 问题是这种方式在90%的情况下起作用,但有时会失败(即使客户端发送了良好的响应)。
if int.from_bytes(challenge, "big") + 1 == int.from_bytes(response, "big"):
print("Good\nExpected: {0}\nReceived: {0}".format(
int.from_bytes(challenge, "big") + 1,
int.from_bytes(response, "big")))
else:
print("Bad\nExpected: {0}\nReceived: {0}".format(
int.from_bytes(challenge, "big") + 1,
int.from_bytes(response, "big")))
10次中的9次,这进入True状态,但有时会失败。 这些是失败时的例子:
Bad
Expected:
65159048323870645118410560973513118036375130115063959378348917255680432299875
Received:
65159048323870645118410560973513118036375130115063959378348917255680432299875
Bad
Expected:
94602782648778784750235610259612519850690550920952731294858863927077528757933
Received:
94602782648778784750235610259612519850690550920952731294858863927077528757933
请注意,上述预期和收到的每一个实际上都是相同的。
以下是一些成功的数字示例:
Good
Expected:
91751260209520864629218443027060768890746721638897648279482154562044918570881
Received:
91751260209520864629218443027060768890746721638897648279482154562044918570881
Good
Expected:
104504930179798203375748204555227260444250367405369759767776407892919812999121
Received:
104504930179798203375748204555227260444250367405369759767776407892919812999121
知道发生了什么事吗? 谢谢你的时间。 编辑:代码段:
服务器端:
challenge = os.urandom(32)
socket.send_msg(challenge, encrypt=True)
response = socket.recv_msg(32, decrypt=True)
if int.from_bytes(challenge, "big") + 1 != int.from_bytes(response, "big"):
print("Expected: {0}\nReceived: {0}".format(int.from_bytes(challenge, "big") + 1, int.from_bytes(response, "big")))
客户端:
challenge = self._socket.recv_raw(32, decrypt=True)
challenge = int.from_bytes(challenge, "big") + 1
self.sckt.send_msg(challenge.to_bytes(32, "big"), encrypt=True)
请注意,我已经彻底测试了加密代码和套接字消息传递协议,这些都不是问题。
-
spring security 参考手册中文版
2018-02-01 17:05:1814.4.1认证成功与失败的应用流程 125 15. Servlet API集成 127 15.1 Servlet 2.5+集成 127 15.1.1 HttpServletRequest.getRemoteUser() 127 15.1.2 HttpServletRequest.getUserPrincipal() 127 15.1.3 ... -
Windows 系统错误代码简单分析
2010-04-14 11:21:571053 服务没有及时地响应启动或控制请求。 1054 无法为该服务创建线程。 1055 服务数据库已锁定。 1056 该服务的实例已在运行。 1057 帐户名无效或者不存在,或者指定帐户名的密码无效。 1058... -
求问C# 怎么开发这个协议,从来没做过,求个demo
2016-12-27 09:42:26用途 保证系统安全性。作为辨别本系统成员身份的识别码。 格式 3字节,十六进制,高字节在前 举例 系统识别码为123456时,填入0x12 0x34 0x56 2.1.2 整帧长度 用途 从系统识别码部分到帧校验部分整个帧所有... -
phpBB v3.2.2 正體中文.zip
2019-07-07 23:27:47[PHPBB3-13214] - 联系我们页面textarea在响应模式下看起来很窄; [PHPBB3-14629] - acp全球快速回复将无法正确启用快速回复; [PHPBB3-14857] - dateformat中的序号后缀不能在翻译中处理; [PHPBB3-15041] - ... -
电脑常见问题与故障1000例(高清PDF中文版)
2011-05-30 07:13:3662.主板散热不良的故障处理 63.计算机启动后找不到PCI声卡 64.主板PS/2口供电不足 65.主板与鼠标不兼容导致启动异常 66.病毒防护导致不能安装操作系统 67.硬件中断冲突 68.手动调节中断 69.启动时系统提示... -
失败则返回失败信息。 主要用到的数据结构是ArrayList负责组合各种信息,并且转换为JSON格式数据返回。数据需要排序的时候,用到的是快速排序,负责排列热门商品等的信息,并且返回数据到前端页面进行显示。 3 ...
-
JavaScript学习指南.pdf
2013-01-22 15:52:13本书遵循已被验证的学习法则,帮助读者逐步理解各种概念,使读者掌握在各种浏览器中创建强大的、快速响应的应用程序的方法。 “无论你是初学者还是有经验的程序员,当你学习一门新语言时,我都会强烈建议你阅读... -
JavaScript学习指南
2011-08-18 09:59:11快速响应的应用程序的方法。 媒体推荐 “无论你是初学者还是有经验的程序员,当你学习一门新语言时,我都会强烈建议你阅读《JavaScript学习指南(第2版)》。Shelley所采用的直观易懂的教学方法,能够帮助你掌 握该... -
//添加响应拦截器,响应拦截器会在then/catch处理之前执行 fly.interceptors.response.use( (response) => { //只将请求结果的data字段返回 return response.data }, (err) => { //发生网络错误后会走到...
-
Serv-U最新注册版
2009-03-19 00:21:09+ 更改了 Windows 链接支持,从而当遇到 Windows .LNK 文件时,对于 SIZE 命令和传输操作,将其作为列表显示时所引用的文件处理。 + 删除了 -L LIST 和 NLST 选项,因为它们会与其他设置冲突。 + 在辅助线程执行所有... -
金蝶K3日常问题解决手册
2009-11-26 15:40:502.25 K3不在域环境,登录主控台时并没有设该账套的用户为NT安全认证,为什么还是可以用域用户身份登录。 21 2.26 K3客户端运行,提示:该数据正在被修改,无法编辑。 22 2.27 K310.2生成凭证时,网络控制出现大量的... -
C#微软培训教材(高清PDF)
2009-07-30 08:51:178.4 异常处理语句 .95 8.5 小 结 .100 第三部分 面向对象的 C#.101 第九章 面向对象的程序设计 .101 9.1 面向对象的基本概念.101 9.2 对象的模型技术 .103 9.3 面向对象的分析 .105 9.4 面向对象的设计... -
基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)
2011-03-12 10:44:33在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足信息处理的需求。 2、 系统的开放性和系统的可扩充性:系统在开发过程中,应该充分考虑以后的可扩充性。... -
C#微软培训资料
2014-01-22 14:10:178.4 异常处理语句 .95 8.5 小 结 .100 第三部分 面向对象的 C#.101 第九章 面向对象的程序设计 .101 9.1 面向对象的基本概念.101 9.2 对象的模型技术 .103 9.3 面向对象的分析 .105 9.4 面向对象的设计... -
最新 3.93烈火破解 winRaR
2010-06-23 23:18:05联菜单中控制自解压文件的处理。 例如, 如果你在较慢的网络磁盘上频繁地使用鼠标右键单击 ".exe" 文件, 在显示关 联菜单前, 你可以关闭“网络磁盘”选项为最小延迟。 7. 如果你在 WinRAR 外壳的文件列表中按名称... -
三、气体安全管理系统 (一)、功能特点 采集数据端口,支持串口端口+网络端口,串口支持自由设置串口号+波特率,网络支持自由设置IP地址+通讯端口,每个端口支持采集周期,默认1秒钟一个地址,支持设置通讯超时...
-
oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串
2017-05-06 20:26:52Access 微软 Access是一种桌面数据库,只适合数据量少的应用,在处理少量 数据和单机访问的数据库时是很好的,效率也很高 小型企业 三、 Oracle数据库概述 ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以... -
彩虹UDA软件狗工具带硬复制工具
2010-11-23 15:53:11在原有加密方式基础上,新增 C 语言高强度动态库加密方式,并有效运用动态库认证安全机制,确保动态库调用具有无与伦比的安全可靠性。 支持 ActiveX 控件 开发商可以在网页中或 VB 、 VC 中使用 ActiveX 控件对... -
cmd操作命令和linux命令大全收集
2012-04-24 11:58:23arp 查看和处理ARP缓存,ARP是名字解析的意思,负责把一个IP解析成一个物理性的MAC地址。arp -a将显示出全部信息 start 程序名或命令 /max 或/min 新开一个新窗口并最大化(最小化)运行某程序或命令 mem 查看cpu... -
Access 2000数据库系统设计(PDF)---001
2006-02-23 15:31:04搜索 139第7章 链接、导入和导出表 1417.1 从其他应用或者向其他应用移动数据 1417.2 理解Access如何处理其他数据库文件 格式的表 1427.2.1 识别PC数据库文件格式 1437.2.2 链接和导入外部 ISAM表 1437.2.3 用ODBC... -
Access 2000数据库系统设计(PDF)---031
2006-02-23 15:31:041417.1 从其他应用或者向其他应用移动数据 1417.2 理解Access如何处理其他数据库文件格式的表 1427.2.1 识别PC数据库文件格式 1437.2.2 链接和导入外部 ISAM表 1437.2.3 用ODBC链接Visual FoxPro表 1457.2.4 处理... -
Access 2000数据库系统设计(PDF)---016
2006-02-23 15:31:041417.1 从其他应用或者向其他应用移动数据 1417.2 理解Access如何处理其他数据库文件格式的表 1427.2.1 识别PC数据库文件格式 1437.2.2 链接和导入外部 ISAM表 1437.2.3 用ODBC链接Visual FoxPro表 1457.2.4 处理... -
Access 2000数据库系统设计(PDF)---011
2006-02-23 15:31:041417.1 从其他应用或者向其他应用移动数据 1417.2 理解Access如何处理其他数据库文件格式的表 1427.2.1 识别PC数据库文件格式 1437.2.2 链接和导入外部 ISAM表 1437.2.3 用ODBC链接Visual FoxPro表 1457.2.4 处理...
-
2021 年该学的 CSS 框架 Tailwind CSS 实战视频
-
【Python-随到随学】FLask第二周
-
在高密度软件定义的WiFi网络中实现负载平衡
-
沿RF锁相辅助的光纤环路链路上任意中间点的精确时延感测和工作台频率分配
-
阿里架构师,讲述基于微服务的软件架构模式
-
小程序的全栈开发新时代
-
深究字符编码的奥秘,与乱码说再见
-
数据仓库多维数据模型设计
-
两种新的具有最优修复的2位奇偶校验MDS阵列代码
-
Jsplumb从入门到实战
-
微博时间格式转换
-
工程制图 AutoCAD 2012 从二维到三维
-
Springboot进行前后端数据传递格式json字符串的简单理解
-
jz2440-----Ubuntu与开发板之间互传文件(三)
-
C++11 14 17 20 多线程从原理到线程池实战
-
使用容器的正确方式,Docker在雪球的技术实践
-
UL 859:2017 Household Electric Personal Grooming Appliances(个人护理)-完整英文版(192页)
-
射影级双缝光子晶体光机腔设计
-
龙芯实训平台应用实战(希云)
-
使用Dom4j操作XML