Servlet笔记
来源:互联网 发布:java web书籍推荐 编辑:程序博客网 时间:2024/05/21 03:58
一,什么是servlet
①servlet是一个运行在web服务器中的一个java小程序,可以理解为一个java类
②可以通过HTTP协议接收和响应来自web客户端的请求
1.1编写servlet小程序的步骤 ①创建一个java类实现servlet接口 ②在web.xml配置文件中,通过<servlet>和<servlet-mapping>两个标签来配置访问小程序的路径 配置方法: <servlet> <servlet-name>标识名</servlet-name> <servlet-class>包名.类名</servlet-class> </servlet> <servlet-mapping> <servlet-name>标识名</servlet-name> <url-pattern>/访问地址名</url-pattern> </servlet-mapping> 访问步骤: ①在浏览器地址栏中输入访问地址时,会调用web-info文件夹下的web.xml配置文件来获得一系列配置信息 ②在servlet-mapping标签验证"访问地址名",从而获得对应的"标识名" ③获得标识名后,在sevlet标签中验证"标识名",从而获得服务器中存在的类的字节码文件,并将类实例化(调用servlet中的构造方法) ④调用servlet类中的init()方法 ⑤调用servlet类中的service()方法处理业务 ⑥将信息响应给浏览器客户端 ⑦调用destroy()方法结束servlet类 访问流程图如下: ![servlet程序运行流程图](http://img.blog.csdn.net/20170223151339563?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjYyMDUyOTM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) ③部署到服务器中 ④测试访问
二,生命周期
实例化对象->init()->service()->destroy()小知识点: 如何让servlet小程序在服务器加载时就运行? 在servler标签中加入<loading-on-startup>2</loading-on-startup>标签
三,servlet的三种创建方式
①继承Servlet接口 重写5个方法②继承GenericServlet类(适配器模式) 重写service()方法③继承HttpServlet类(模板方法设计模式) 重写doGet()方法和doPost()方法
四,servlet的线程安全问题
最佳办法:不写全局变量,写局部变量
五,使用ServletConfig获取配置信息
1,获取对象的方式 该对象由服务器创建,在调用init(ServletConfig config)方法时可以获取到 ServletConfig config; init(ServeletConfig config){ this.config=config; }2,作用 ①,获取sevlet配置信息 serrvlet配置信息的位置 <servlet> <servlet-name></servlet-name> <servlet-class></servlet-class> <init-param> <param-name>encoding</param-name> <param-value>gbk</param-value> </init-param> </servlet> 方式一: 先在init方法中获取到config对象 config.getInitParameter("encoding");//配置文件中配置的名字 方式二: this.getServletConfig().getInitParameter("encoding");//通过父类中的对象来调用方法 方式三: this.getInitParameter();//通过继承下来方法去找对象来调用方法 ②,获取ServletContext对象
六,ServeletContext方法(重要)
①是什么? ServletContext对象代表整个应用 单实例,只有一个对象②如何获得对象? ServletConfig sc=this.getServletConfig(); ServletContext sc=this.getServletContext();③作用是什么 1,域对象:在当前应用中,让多个Servlet共享数据 setAttribute(String name,Object value)//设置键值对 getAttribute(String name)//通过键,获取值 removeAttribute(String name)//通过键,删除键值对 数据存储示意图如下: ![数据存储示意](http://img.blog.csdn.net/20170223163419970?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjYyMDUyOTM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 2,获取全局配置信息 I,web.xml中的配置信息 <content-param> <param-name>encoding</param-name> <param-value>utf8</param-value> </content-param> II,通过ServletContext对象中的方法去获取配置信息 sc.getInitParameter(String name)//根据配置名去获取配置值 3,获取资源路径 作用:可以得到当前应用中任何位置的任何资源 String path=sc.getRealPath("/WEB-INF/...."); 小知识点: 依赖:通过参数获取的对象 关联:通过方法获得的对象
七,转发与重定向
①转发 //dispatcher:发报机 //先获取一个请求发报机对象,定位要发送请求的位置 RequestDispatcher rd = new RequestDispatcher("Demo2");//另一个Servlet的位置 //利用发报机发送请求和等待的回应过去 rd.foward(request,respond); ②定向
0 0
- 【servlet】servlet 笔记
- servlet 理解 --servlet笔记
- servlet笔记
- Servlet笔记
- Servlet笔记
- Servlet笔记
- Servlet 笔记
- servlet笔记
- Servlet笔记
- servlet 笔记
- servlet笔记
- servlet笔记
- Servlet笔记
- servlet笔记
- Servlet笔记
- servlet笔记
- Servlet笔记
- servlet 笔记
- 第四十章 SpringBoot AOP
- Canvas 实现时钟
- Java并发编程的艺术(十)——线程池(1)
- HTTPS 为什么更安全
- FIRST TOUCH
- Servlet笔记
- android studio 混淆打包
- 算法学习之显著性检测
- 数据库端口3306被占用
- tomcat的域名以及多域名配置
- requirejs入门
- python进阶12:单下划线与双下划线(私有和保护)
- Android事件传递机制
- 第四十一章 SpringBoot SpringMVC配置