由于本人的逻辑能力与学习能力较差,这一个多月学习servlet+jquery_ajax学的一塌糊涂,以后会定期每个星期的周六周日整理笔记发布出去,希望跟我一样的兄弟姐妹们加油,为了未来,这是我看了黑马的几段视频整理出来的一些笔记,希望能有所帮助,也希望一些大佬,教教想我这样学得慢记性不好的小白,本人在此谢过。
servlet 本质:是一个接口 定义了一个java 类 被浏览器访问到的类
快速入门:
1.创建web或者JavaEE项目
2.定义一个类 实现servlet 接口
3.实现接口中的抽象方法
4.配置servlet
5.在web.xml写 :
<servlet> <servlet-name>dome1</servlet-name> <servlet-class>com.yyq.servlet.servletDome1</servlet-class> </servlet> <servlet-mapping> <servlet-name>dome1</servlet-name> <url-pattern>/dome1</url-pattern> </servlet-mapping>
servlet 执行原理:
1.当服务器接收到客户端浏览器的请求后 会解析请求的URL路径 获取访问的servlet的资源路径
2.当查找web.xml文件 是否有对赢得<url-pattern>标签体内容
3.如果有 则找到对于的<servlet-class>的类全名
4.tomcat会将字节码加载进内存 并创建其对
5.调用其方法
servlet中的声明周期:
1.被创建 2.提供服务 3.销毁方法
1.init 初始化方法 只执行一次
public void init(ServletConfig servletConfig) throws ServletException { System.out.println("init ...."); }
2.
//提供方法 //每一次 servlet被访问时 执行 执行多次 @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("servlet"); }
3.销毁方法:
//销毁方法 //在serlvet被杀死时执行 //在服务器正常关闭时 执行 执行一次 @Override public void destroy() { System.out.println("destory...."); }
4.
//获取servlet的一些信息 列如:版本 ,作者 @Override public String getServletInfo() { return null; }
5.
//获取servletConfig对象 //servletConfig: Servlet 的配置配置 @Override public ServletConfig getServletConfig() { return null; }
声明周期的特点:
1.servlet什么时候被创建:
1.默认情况下,第一次被访问时,servlet被创建 在<web.xml>下的<servlrt>标签中 输入<load-on-startup>-5</load-on-startup>标签 当 <load-on-startup></load-on-startup> 的标签为负数时 servlet被创建
2.在服务器启动时 servlet被创建
<web.xml>标签下 <servlet> 标签里 <load-on-startup></load-on-startup> 的值 若为 正整数 则 servlet被创建
3.servlet的init方法 只执行一次 说明 servlet中 只有一个对象 ,servlet时单例的
多个用户访问时,可能存在线程安全问题
解决方式:尽量 不要在servlet中定义成员变量。即使定义了成员变量,也不要对其修改值
4,被销毁:执行destroy 只执行一次
在servlet销毁之前执行,一般用于释放资源
servlet4.0;
好处:
1,支持注解 可以不需要web.xml
2.步骤
1.在创建javaEE项目,选择servlet本版本3.0以上,可以不创建web.xml
2.定义一个类,实现servlet接口
3.复写方法
4.在类上使用@WebServlet 注解 ,进行配置
@WebServlet(urlPatterns="/day1") servlet的资源路径
上边有很多都是剽窃 黑马程序员 教程的截图,笔记,也希望黑马的大哥哥大姐姐放过小弟一马,这是属于笔记共享,也希望一些学习能力不太好的同学可以去看黑马的视频教程,讲的很细节