Servlet

1.Servlet

​ 是javaweb三大组件(filter,listener)之一,

​ ·接收数据请求

​ ·处理请求

​ ·响应浏览器端

 

2.servlet和jsp的关系,区别?

​ 1.jsp 翻译之后变成servlet

​ (jsp本质就是servlet,jvm只能识别java代码,不能直接识别jsp代码,web容器将jsp先翻译成java代码)

​ 2.jsp 注重的是视图(页面,界面),servlet 注重的是逻辑控制

servlet 对象的创建是由web容器创建,并且由容器来调用方法,我们定义好类,方法体就可以。

 

3.servlet 的生命周期方法

@WebServlet(value = "/demo",loadOnStartup = 1)
public class Demo extends HttpServlet {
    /*
        每请求一次,就会执行一次,会执行多次
     */
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("service....");
    }

    /*
       只执行一次,在销毁之前执行
     */
    @Override
    public void destroy() {
        System.out.println("destroy....");
    }

    /*
        只执行一次,在servlet对象创建后执行
     */
    @Override
    public void init() throws ServletException {
        System.out.println("init....");
    }


}    

//loadOnStartup  设置servlet 实例是否在容器启动是创建
    //负数:在容器启动时不创建
    //0或正数,会创建,值越小,优先级越高

4.servlet 单例多线程

单例:一个类只有一个对象

1.当web服务器启动时(客户端发送请求)会创建servlet实例(只创建一个)

2.当用户请求服务器时,容器通过调度线程来处理请求。处理结束 后,把线程放回到线程池。

尽量避免使用实例变量。

 

5.filter 过滤器

生命周期方法

destroy()
init()
doFilter()  //拦截

​ 用户 角色 用户角色表 资源表 角色资源表 (shiro)

应用场景:基于url的权限拦截

​ 判断访问的路径是否在访问权限之内。

 

6.ajax (局部刷新 异步)  (js代码)

$.post("/ajaxServlet",{"age":100},function(data){
    alert(data.g1.gname);
},"json");
//$.get(....)  和post写法一样,就是请求方式不一样

$.ajax({
    url:"/ajaxServlet",
    async:true,//是否异步
    data:{"age":120},//传到后台的数据
    dataType:"json",//返回的数据格式
    success:function(val){
        alert("hi######");
    },//成功的回调函数
    error:function(){
        alert("error");
    }//失败的回调函数
});
alert("hello----");

 

7.json: 数据格式

//js对象
  var user = {username:"zhangsan",age:12,sex:"男"};
  //json格式的js对象
  var us = {"username":"zhangsan","age":12,"sex":"男"};

  //alert(us.age);
  //json  是 一种数据格式
  //json格式的字符串
  var str = '{"username":"zhangsan","age":12,"sex":"男"}';

  //将字符串转成json对象
  var uu = JSON.parse(str);
  //alert(uu.username);

  //将json对象转成字符串
  var ss = JSON.stringify(us);
  alert(ss);

fastjson-xxxx.jar

​ 用于将java对象转为json字符串,也可以将json字符串转为java对象(属阿里)

 

 

原文地址:https://www.cnblogs.com/lin02/p/11234215.html