1、HTTP和HTTPS的区别:
http:
- 无状态,一次请求要三至四次握手。
- 数据不加密。安全性差
- 不能区别是否已经响应过请求------无辨识度
https:
- 通过ssl/tls协议加密
- 身份验证
- 保护数据完整度
- 内容加密
2、多线程的运用环境:
从用户的角度考虑,就是为了得到更好的系统服务;从程序自身的角度考虑,就是使目标任务能够尽快的完成,更有效的利用系统资源。综合考虑,一般一下场景使用多线程:
- 程序包含复杂的计算任务时(花费很多时间),主要是利用多线程获取更多的CPU时间
- 处理速度较慢的外围设备,比如打印时,网络程序、设计数据包的收发,时间因素不定。(为了等待网络,文件系统、用户或其他IO响应而耗费大量的执行时间)使用独立的线程处理这些任务,可使程序无需专门等待结果。
- 程序设计自身的需求,WINDOWS系统是基于消息循环的抢占式多任务系统,为使消息循环系统不至于阻塞,程序需要多个线程来共同完成某些任务。
3、break、return、continue区别
- break:多用于循环中,仅退出当前循环
- return:从当前的方法中退出,返回到该调用的方法的语句处,继续执行
当try-catch中涉及到return时:https://blog.csdn.net/qq_30816657/article/details/80297646
- continue:终止当前循环,但是不跳出循环(再循环中continue后面的语句是不会执行了),继续往下根据循环条件执行循环。
4、Filter
介绍:filter过滤器对web服务器管理的所有web资源,例如JSP、Servlet、静态文件等进行拦截。从而实现URL级别的权限控制、过滤敏感词汇、压缩响应信息等一些高级功能。
实现方式:implement Filter接口,重写doFilter方法。
package me.gacl.web.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* @ClassName: FilterDemo01
* @Description:filter的三种典型应用:
* 1、可以在filter中根据条件决定是否调用chain.doFilter(request, response)方法,
* 即是否让目标资源执行
* 2、在让目标资源执行之前,可以对request\response作预处理,再让目标资源执行
* 3、在目标资源执行之后,可以捕获目标资源的执行结果,从而实现一些特殊的功能
* @author: 孤傲苍狼
* @date: 2014-8-31 下午10:09:24
*/
public class FilterDemo01 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("----过滤器初始化----");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//对request和response进行一些预处理
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
System.out.println("FilterDemo01执行前!!!");
chain.doFilter(request, response); //让目标资源执行,放行
System.out.println("FilterDemo01执行后!!!");
}
@Override
public void destroy() {
System.out.println("----过滤器销毁----");
}
}
在web.xml中配置filter
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!--配置过滤器-->
<filter>
<filter-name>FilterDemo01</filter-name>
<filter-class>me.gacl.web.filter.FilterDemo01</filter-class>
<!--配置FilterDemo02过滤器的初始化参数-->
<init-param>
<description>配置FilterDemo01过滤器的初始化参数</description>
<param-name>name</param-name>
<param-value>gacl</param-value>
</init-param>
</filter>
<!--映射过滤器-->
<filter-mapping>
<filter-name>FilterDemo01</filter-name>
<!--“/*”表示拦截所有的请求 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>