文章41
标签12
分类3

JavaEE01

Servlet

Servlet

Servlet一般指任何实现了这个接口的类。一般来说,由javax.servlet.GenericServlet实现Servlet接口,也可以通过使用或继承这个类来实现通用Servlet应用,如:javax.servlet.http.HttpServlet继承自GenericServlet类,实现了专门用于响应HTTP请求的Servlet,提供了响应对应HTTP标准请求的doGet()、doPost()等方法。

Servlet运行于支持Java的应用服务器中,俗称Servlet容器,比如最常用的Tomcat就是一种Servlet容器,其他例如:Jetty等容器也支持运行Servlet

生命周期:Tomcat容器启动时不会加载Servlet,当第一个用户调用该Servlet时,才会加载这个Servlet。先实例化再初始化,然后执行service方法,下一个用户调用该Servlet,无需实例化和初始化,直接调用service方法。当容器关闭或Servlet改动时,会调用destroy方法。

为实现Servlet的类提供处理请求和发送响应的功能的作用。因为Servlet是接口,所以也是为实现提供处理请求和发送响应的功能提供了一套规范。

前后台交互常用三种方法

form表单提交
a标签(超链接标签)[默认是get方式请求]
ajax静态局部页面提交

Get与Post的区别

1.form和a标签默认提交方式是get
2.get方式提交会用?把参数拼接再url地址后面,多个参数用&连接,信息不安全
3.post提交数据会把参数放在请求体中,安全性高
4.get请求的url长度有限制,post没有
5.get请求仅支持ascii码,post无限制

Servlet跳转页面的两种方式

  • 重定向
resp.sendRedirect("https://greedring.com");
  • 转发
req.getRequestDispatcher("/WEB-INF/Success.html").forward(req, resp);

区别:

  1. 转发是由request调用;重定向由response调用
  2. 转发网址不会改变;重定向改变网站
  3. 转发只能访问 项目内 网页;重定向可以访问 第三方 网址
  4. 转发可以访问 WEB-INF 下的网页;重定向不行
  5. 转发会携带request作用域,可以携带参数;重定向不行

JS跳转页面

  • 原生JS跳转
window.location.href = "Test.html";
  • Jquery跳转
$(location).prop("href","Test.html");

Ajax静态布局页面提交

1.Get

$.get("/login", function(data)){
    alert(data)
})

2.Post

$.post("/login", {name:"aa", pwd:"123"}), function
(data){
    alert(data)
})

过滤器

一般指任何实现了Filter接口的类,用来拦截发往servlet的请求

生命周期:Tomcat容器启动时,Filter就会实例化和初始化,Filter拦截到请求,需要调用doFilter方法进行放行。请求会经过多个过滤器,先从范围大开始过滤。当Tomcat容器销毁或者Filter改变时,会调用destroy方法

1.在浏览器端保存用户数据,下次请求就会携带cookie访问

2.创建cookie,发送到浏览器

Cookie cookie = new Cookie("name","jack");
cookie.setMaxAge(30 * 24 * 60 * 60);//cookie保存1个月
resp.addCookie(cookie);

3.获取请求中的cookie

if (cookies != null){
    for (Cookie cookie : cookies) {
        System.out.println("key:"+cookie.getName());
        System.out.println("value:"+cookie.getValue());
    }
}
本文作者:GreedRing
本文链接:http://greedring.com/2019/10/25/JavaEE01/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可