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对象(属阿里)
bug怎么这么多!