servlet 是运行在 Web 服务器中的小型 Java 程序(即:服务器端的小应用程序)。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。
1.1、编写一个servlet程序:
a、写一个java类,实现servlet接口
b、修改web.xml文件,给servlet提供一个可访问的URI地址
c、部署应用到tomcat服务器
D、测试:http://locahost:8080/day08_servlet/demo1
出生:(实例化-->初始化)第一次访问Servlet就出生(默认情况下)
活着:(服务)应用活着,servlet就活着
死亡:(销毁)应用卸载了servlet就销毁。
小知识:
如何让servlet在服务器启动时就创建。
(开发中常用方式)重写doXXX()
重写doget和dopost方法
因为httpservlet中没有service方法,所以找父类(genericservlet)的service方法
Service参数造型加协议,再执行service方法(自身的)
因为重写了该方法,执行重写的方法
Tomcat执行相当于:
servlet s = new servletDemo3();
S.service(); 中的s==>servletDemo3==>httpservlet==>genericservlet
Servlet --> GenericServlet --> HttpServlet (继承HttpServlet)
曾祖父 爷爷 爸爸 孙子
小技巧:使生成的servlet更清新一些
找到:MyEclipse\Common\plugins目录
把com.genuitec.eclipse.wizards_9.0.0.me201108091322.jar复制到上面目录
servet映射细节:
servet映射细节1:
servet映射细节2: 通配符* 代表任意字符串
url-pattern: *.do 以*.字符串的请求都可以访问 注:不要加/
url-pattern: /* 任意字符串都可以访问
url-pattern: /action/* 以/action开头的请求都可以访问
匹配规则:
优先级:从高到低
绝对匹配--> /开头匹配 --> 扩展名方式匹配
如果url-pattern的值是/,表示执行默认映射。所有资源都是servlet
单实例:每次访问多线程
解决线程安全问题的最佳办法,不要写全局变量,而应该写局部变量。
即获取<init-param>中<param-name><param-value>
使用getInitParameter()方法
方式1:使用 继承自genericservlet中的init(servletconfig config)
先在init方法中得到servletconfig对象,再使用getInitParameter()方法
根据config.getInitParameter(“参数”),获得值(value)
方式2:使用 继承自servlet中的getServletConfig() 与getInitParameter
this.getServletConfig().getInitParameter(“参数”)
方式3:使用 继承自genericservlet中的getInitParameter(String name)
this.getInitParameter(“参数”)
ServletContext: 代表的是整个应用。一个应用只有一个ServletContext对象。单实例。
作用:
常用方法:
void setAttribute(String name,object value);//向ServletContext对象的map中添加数据
Object getAttribute(String name);//从ServletContext对象的map中取数据
void removeAttribute(String name);//根据name去移除数据
ServletContext对象中维护一个map集合
Servletdemo1
Servletdemo2
修改web.xml文件:
getInitParameter(String name) //根据配置文件中的key得到value |
String getRealPath(String path);//根据资源名称得到资源的绝对路径.
可以得到当前应用任何位置的任何资源。
RequestDispatcher getRequestDispatcher(String path) ;//参数表示要跳转到哪去
Servlet1办不了转给servlet2,servlet2办完了返回给servlet1,servlet1将结果给浏览器
原文:http://www.cnblogs.com/xydy1024/p/6705557.html