servlet总结
1.Servlet负责用来在服务器端处理用户的请求,当客户端发送一个请求给服务器,服务器通过web.xml配置文件找到相应的Servlet,从而处理这个请求。一个servlet要和URL绑定在一起,用户通过访问URL访问servlet。
2.实现servlet的三种方式
Java.servlet.Sertvlet类
Java.servlet.GenericServlet类
Java.servlet.HttpServlet类
3.servlet接口中的方法
//初始化
void init (ServletConfig config)
void service(ServletRequest request,ServletResponse response)
//销毁
void destroy()
String getServletInfo()
ServletConfig getServletConfig()
客户端发出一个请求,服务器会通过URL找到相应的Servlet,如果这个Servlet对象不存在,服务器会创建Servlet对象
创建对象之后,服务器立刻调用init(ServletConfig config)完成初始化工作,之后服务器调用
Servlet的service(ServletRequest req, ServletResponse res)方法,这时需要给它传递参数request和response。
当客户端再次访问这个Servlet时,因为Servlet对象已经存在,就不会在创建它了。Servlet是单例的。
(备注:单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。)
当服务器需要销毁Servlet对象时,会首先调用destroy()完成一些资源的释放工作,然后销毁对象
4.在web.xml中配置servlet
<servlet>
<servlet-name>
HelloWorldServlet
</servlet-name>
<servlet-class>
cn.edu.aynu.rjxy.servlet.HelloWorldServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
HelloWorldServlet
</servlet-name>
<url-pattern>
/helloWorld
</url-pattern>
</servlet-mapping>
配置就是让URL和Serlvet绑定在一起,当用户访问时就会找到相应的Servlet完成请求处理。
5.ServletConfig: init()方法的参数,它表示Servlet配置对象,它对应的Servlet的配置信息,
其实配置信息就是web.xml文件中的<servlet>元素。
<servlet>
<servlet-name>
HelloServlet
</servlet-name>
<servlet-class> cn.edu.aynu.rjxy.servlet.HelloServlet
</servlet-class>
</servlet>
ServletConfig对象是由服务器创建的,当服务器调用init()方法时当做实参传递给方法init(),
我们就可以在init()方法中使用它。
(1)String getInitParameter(String name):用来获取在web.xml中配置的初始化参数,通过参数名获取参数值。
(2)Enumeration getInitParameterNames():用来获取在web.xml中配置的所有初始化参数名。
(3)ServletContext getServletContext():用来返回ServletContext对象
(4)String getServletName():用来返回Servlet在web.xml中配置名称,即<servlet-name>元素指定的名称
<init-param>
<param-name>school</param-name>
<param-value>aysfxy</param-value>
</init-param>
<init-param>
<param-name>major</param-name>
<param-value>java</param-value>
</init-param>
<init-param>
<param-name>class1</param-name>
<param-value>2</param-value>
</init-param>
运行结果:
对象已经创建,立刻完成初始化
school=aysfxy
major=java
class1=2
school=aysfxy
class1=2
major=java
school=aysfxy
major=java
class1=2
school=aysfxy
class1=2
major=java
6. GenericServlet:它是一个实现了javax.servlet.Servlet接口的抽象类,继承这个类也可以实现Servlet.
类中的getServletContext()、getInitParameter()等方法可以直接使用,如果想做一些初始化参数的工作,
不要去重写方法init(ServletConfig config),而是要去重写方法 init()
HttpServlet:它是一个专门用于处理Http协议请求的Servlet类,我们可以通过继承HttpServlet实现Servlet
这是一种最简单的方式,我们今后都这样做,因为客户端发送来的请求只有get和post两种方式.因此我们只需要重写这两个方式即可。
7.HttpServlet:它是一个专门用于处理Http协议请求的Servlet类,我们可以通过继承HttpServlet实现Servlet
这是一种最简单的方式,我们今后都这样做,因为客户端发送来的请求只有get和post两种方式
因此我们只需要重写这两个方式即可。