servlet:
动态的web开发技术,本质就是一个类,运行在服务器端的一个java小程序
处理业务逻辑,生成动态web内容
编写一个servlet步骤:
1.编写一个类
a.继承HttpServlet
b.重写doGet或者doPost方法
2.编写配置文件(web-inf/web.xml)
a.注册servlet
b.绑定路径
3.访问
http://主机:端口号/项目名/路径
获取参数: 格式:key=value
Stingvalue=request.getParameter("key")
例如:http://localhost/day09/hello?username=tom
request.getParameter("username")就可以获取tom值
回写内容:
response.getWriter().print("success");
处理响应数据中文乱码:
response.setContentType("text/html;charset=utf-8");
servlet生命周期
voidinit(ServletConfig config):初始化
* 执行者:服务器
* 执行次数:一次
* 执行时机:默认第一次访问的时候
voidservice(ServletRequest request,ServletResponse response):服务
* 执行者:服务器
* 执行次数:请求一次执行一次
* 执行时机:请求来的时候
voiddestroy():销毁
* 执行者:服务器
* 执行次数:只执行一次
* 执行时机:当servlet被移除的时候或者服务器正常关闭的时候
serlvet是单实例多线程
默认第一次访问的时候,服务器创建servlet,并调用init实现初始化操作.
每当请求来的时候,服务器创建一个线程,调用service方法执行业务逻辑.
当serlvet关闭的时候,服务器调用destroy方法实现销毁操作.
在servlet标签有一个子标签 load-on-startup
作用:用来修改servlet的初始化时机
取值:正整数 值越大优先级越低
当我们的配置文件里面没有指定配置的话,会查找tomcat的web.xml里面的default配置
若文件名是index.html/jsp或者default.html/jsp,即使访问路径不写上也能自动访问
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
若复制一个项目再发布到tomcat服务器上,在此之前先
右键项目->properties->webproject settings->修改context root
ServletContext:
上下文(全局管理者)
当项目启动的时候,服务器为每一个web项目创建一个servletcontext对象.
当项目被移除的时候或者服务器关闭的时候servletcontext销毁
作用:
1.获取全局的初始化参数
2.共享资源(xxxAttribute)
3.获取文件资源
4.其他操作
获取servletcontext:
方式1:
getServletConfig().getServletContext()
方式2:
getServletContext()
常用方法:
1.
String getInitParameter(Stringkey):通过名称获取指定的参数值
EnumerationgetInitParameterNames() :获取所有的参数名称
在根标签下有一个 context-param子标签用来存放初始化参数
<context-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</context-param>
2.xxxAttribute
3.
StringgetRealPath(String path):获取文件部署到tomcat上的真实路径(带tomcat路径)
getRealPath("/"):D:\javaTools\apache-tomcat-7.0.52\webapps\day09\
InputStreamgetResourceAsStream(String path):以流的形式返回一个文件
4.获取文件的mime类型 大类型/小类型
xxxAttribute()
setAttribute(Stringkey,Object value)
ObjectgetAttribute(String key)
removeAttribute(Stringkey)