1)sevlet是一个普通的java类,继承HttpServlet类。
2)其实实现了Servlet接口的java类,才是一个Servlet类。
3)servlet程序需要交给tomcat服务器运行
2 在tomcat 服务器内部配置了一个缺省路径 <url-pattern>/</url-pattern>, 这个缺省路径在 tomcat 服务器内部被一个缺省 Servlet ( DefaultServlet )匹配。缺省的这个 Servlet 的作用是 专门用于处理所有网站中的静态网页 。先找动态网页,再找静态网页。
3 Servlet生命周期
构造方法: 创建servlet对象时调用,只调用1次,证明了sevlet是单例的。
init方法: 创建完对象之后调用。只调用1次。
service方法: 在每次请求时调用,调用n次。入口。
destory方法:在servlet对象销毁之后调用。只调用1次。
4
1)尽量不要使用成员变量,或者静态成员变量。
2)必须要使用成员变量,要么给使用了成员变量的代码块加同步锁,
5 服务器启动时,自动创建对象:
在网站中web.xml 文件servlet中配置 <load-on-startup>1</load-on-startup>
6
HttpservletRequest对象: 请求对象
HttpServletResponse对象: 响应对象
ServletConfig对象: servlet配置对象
ServletContext对象: servlet的上下文对象
ServletContext的5大作用
1)获取web的上下文路径
java.lang.String getContextPath() //网站名称
2)获取全局参数
java.lang.String getInitParameter(java.lang.String name)
java.util.Enumeration getInitParameterNames()
3)和域对象相关的
void setAttribute(java.lang.String name, java.lang.Object object)
java.lang.Object getAttribute(java.lang.String name)
void removeAttribute(java.lang.String name)
4)请求转发的
RquestDispatcher getRequestDispatcher(java.lang.String path)
5)读取web项目的资源文件(根目录是网站)
java.lang.String getRealPath(java.lang.String path)
java.io.InputStream getResourceAsStream(java.lang.String path)
java.net.URL getResource(java.lang.String path)
7 Servlet三个域对象:
ServletContext
HttpServletRequest
HttpSession
8 重定向与转发的区别
请求重定向:(302+location)
1)地址栏会发送改变。
2)可以跳转到项目内的资源,也可以跳转项目外的资源(根目录是站点)
3)浏览器向服务器发出两次请求,那么就不能使用请求来作为域对象来共享数据。
请求转发:
1)地址栏不会改变。
2)只能跳转到项目内的资源,不能跳转到项目外的资源(根目录是网站)
3)浏览器向服务器发出一次请求,那么可以使用请求作为域对象共享数据。
9 URLDecoder.decode(str, "utf-8");
URLEncoder.encode(str, "utf-8");