javaweb

day01

  1. 简述servlet的主要作用
    1. 读取客户发送的所有数据
    2. 查询 HTTP 请求中包含的任何其他请求信息
    3. 处理数据并生成结果
    4. 设置合适的 HTTP 响应参数
    5. 将响应信息回送给客户端
  2. 自己创建一个servlet需要继承哪个类
    1. javax.servlet:定义了所有Servlet类都必须实现或继承的通用接口和类。 此包下有一个GenericServlet抽象类。它是一个通用的协议无关的Servlet。 继承自GenericServlet的Servlet应该要覆盖service()方法。
    2. javax.servlet.http包:定义了采用HTTP协议通信的HttpServlet类。 此包下有HttpServlet抽象类。它继承自GenericServlet。能够处理HTTP请求的Servlet, 它在原有Servlet接口上添加了对HTTP协议的处理,它比Servlet接口的功能更为强大
  3. 指定servlet访问路径的注解是什么
    @WebServlet
  4. 如何设置请求编码
    request.setCharacterEncoding(“utf-8”);
  5. 如何设置响应编码
    //使客户端浏览器并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。
    response.setContentType(“text/html;charset=utf-8”);
    //设置响应信息的字符编码(必须在创建响应输出流之前进行设置)
    response.setCharacterEncoding(“utf-8”);
  6. 如何获取请求参数
    使用HttpServletRequest对象中的getParameter方法获取客户端提交参数
  7. 简述servlet的生命周期
    1. Servlet 容器创建 Servlet 的实例(下面会详述Servlet实例创建时机)
    2. Servlet 通过调用 init () 方法进行初始化(只调用一次)。
    3. Servlet 调用 service() 方法来处理客户端的请求(每一次请求都要调用一次)。
      service() 方法会自动调用doGet或doPost。
    4. Servlet 通过调用 destroy() 方法终止(只调用一次)。
  8. servlet的创建时机使用哪个属性设置
    Servlet对象由Web服务器负责创建,创建的时机可以使用loadOnStartup属性进行配置
    1. loadOnStartup属性的值必须是一个整数,表示servlet应该被载入的顺序
    2. 当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;
    3. 当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。
    4. 正数的值越小,该servlet的优先级越高,应用启动时就越先加载。
    5. 当值相同时,容器就会自己选择顺序来加载。
    6. 取值1,2,3,4,5代表的是优先级,而非启动延迟时间。
  9. servlet初始化参数用哪个注解指定
    @WebInitParam
    例如:
    @WebServlet(urlPatterns=“/hello”,initParams={
    @WebInitParam(name=“setChar”,value=“utf-8”)
    })
  10. HTTP状态码有哪些
    1xx:消息。这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。
    2xx:成功。代表请求已成功被服务器接收、理解、并接受。比如:
    ● 200:请求已成功。出现此状态码是表示正常状态。
    3xx:重定向。代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。
    4xx:请求错误。代表客户端请求发生错误。比如:
    ● 404:找不到请求的资源
    ● 405:服务器端处理请求方法不被允许。
    5xx:服务器错误。代表服务器端出现错误。 比如:
    ● 500:服务器端代码错误。
    ● 503:服务器异常(通常重启服务器即可解决)。
  11. 如何将java代码中的对象转为json格式字符串
    Servlet中使用Jackson将java对象或集合转换为json对象或数组
    具体如下:
    //使用Jackson的jar包中的ObjectMapper进行java对象与jose数据的转换
    ObjectMapper om = new ObjectMapper();
    //使用writeValueAsString方法将java对象转换为json格式字符串
    out.print(om.writeValueAsString(list));
  12. 如何设置后台跨域访问
    CORS跨域设置:response.setHeader(“Access-Control-Allow-Origin”, “*”);
    或者
    response.setHeader(“Access-Control-Allow-Origin”, “http://localhost:8081”);

day 02

  1. 什么是会话
    客户端访问服务端发生的一系列请求和响应过程称之为会话。 通俗的说:从打开浏览器向服务器端发送请求开始,到客户端关闭浏览器结束访问为止,就是一个会话。
  2. 什么是会话跟踪技术
    会话跟踪技术,就是一种在客户端与服务器间保持HTTP状态的解决方案,管理浏览器客户端和服务器端之间会话过程中产生的会话数据。
  3. Cookie的缺点
    1.cookie安全性不够高;
    2.cookie可能被禁用;
    3.cookie存储空间很小(只有4–10KB左右)
  4. 简述Session原理
    1.当第一次请求时,在服务器端创建一个Session对象,并且为此对象生成一个sessionId。
    2.同时,使用Cookie将此sessionId返回给客户端,并存储在客户端的Cookie中。
    3.当客户端发起下一次请求时,必须携带此sessionId发送给服务器端。
    4.服务器端根据接收的sessionId,就能找回Session对象,从而获取了上一次请求的信息。
  5. 使用ajax 访问时,会将sessionid写入到Cookie中,返回给客户端。但是需要哪些设置?
    1.服务器端设置:response.setHeader(“Access-Control-Allow-Credentials”, “true”); 用于设置跨域时允许发送Cookie。
    2.服务器端设置:response.setHeader(“Access-Control-Allow-Origin”, “http://127.0.0.1:8848”); 如果允许发送Cookie,那么允许跨域的url就不能为 “*”。
    3.如果是使用Axios框架,那么需要设置:axios.defaults.withCredentials = true; 用于设置允许Axios发送Cookie。
  6. getSession()与getSession(boolean)的区别
    a. getSession() 没有参数:如果存在一个Session对象,就使用此对象;否则就创建新的Session对象。
    b. getSession(boolean) 有一个布尔类型参数:
    true:等同于 getSession()
    false:如果不存在一个Session对象,就返回null
  7. Session对象的主动销毁的方式
    session.invalidate();
  8. 简述javaEE三大作用域对象
    1.HttpServletRequest作用域对象:作用范围是一个请求响应范围(从一个请求开始,到响应结束)。
    2.HttpSession作用域对象:作用范围是一个会话范围(从浏览器发送请求访问服务器开始,到浏览器关闭为止; 在此期间,不论发送了多少次请求响应,都是一个session范围)。
    3.ServletContext作用域对象:作用范围是一个应用程序范围(从服务器启动开始,到服务器关闭为止)。
  9. 过滤器的特点
    1.过滤器可以检查和修改ServletRequest和ServletResponse对象。
    2.过滤器可以被指定和特定的URL关联,只有当客户请求访问该URL时,才会触发过滤器。
    3.过滤器可以被串联在一起,形成过滤器链,协同修改请求和响应对象。
    4.过滤器是Servlet的一种特殊用法,主要用来完成一些通用的操作。
  10. 创建过滤器须实现哪个接口
    javax.servlet.Filter
  11. doFilter方法的作用
    doFilter(ServletRequest reg,ServletResponse res,FilterChain chain) 用于进行过滤操作,该方法的第一个参数为ServletRequest对象, 此对象给过滤器提供了对请求信息访问;第二个参数为ServletResponse,用于 响应使用ServletRequest对象访问的信息,通常在简单的过滤器中忽略此参数;最后一个参数为 FilterChain,该参数用来调用过滤器链中的下一个资源。

你可能感兴趣的:(java,servlet)