一、什么是Servlet
Servlet 是 Server+Applet,是服务器端的JAVA应用程序,但并不是所有的服务器端的JAVA应用程序都可以叫Servlet,只有当服务器端的程序使用leServlet API的时候,这个服务端的程序才能称为Servlet 。
Servlet 是 Server+Applet,是服务器端的JAVA应用程序,但并不是所有的服务器端的JAVA应用程序都可以叫Servlet,只有当服务器端的程序使用leServlet API的时候,这个服务端的程序才能称为Servlet 。
二、主要的Servlet API
1、javax.servlet.Servlet接口 所有的Java Servlet的基础接口类,规定了必须由Servlet具体类实现的方法集。
2、javax.servlet.GenericServlet类 这是Servlet的通用版本,是一种与协议无关的Servlet
3、javax.servlet.HttpServlet类 是在GenericServlet类基础上扩展的基于Http协议的Servlet
1、javax.servlet.Servlet接口 所有的Java Servlet的基础接口类,规定了必须由Servlet具体类实现的方法集。
2、javax.servlet.GenericServlet类 这是Servlet的通用版本,是一种与协议无关的Servlet
3、javax.servlet.HttpServlet类 是在GenericServlet类基础上扩展的基于Http协议的Servlet
三、创建Servlet的三种方式(针对Servlet API)
1、实现Servlet接口 需要实现所有方法(init,destroy,service....)
2、继承GenericServlet类 只需要重写一个方法(service,协议无关的处理方法)
3、继承HttpServlet(常用) 不需要重写任何方法(重写doGet和doPost,分别用于处理get和post请求)
1、实现Servlet接口 需要实现所有方法(init,destroy,service....)
2、继承GenericServlet类 只需要重写一个方法(service,协议无关的处理方法)
3、继承HttpServlet(常用) 不需要重写任何方法(重写doGet和doPost,分别用于处理get和post请求)
小提示:
1、每个JSP页面中包含的java代码最终也会生成一个对应的Servlet 。
2、init方法和destroy方法只会在Servlet创建后(初始化Servlet)和销毁前执行执行一次
1、每个JSP页面中包含的java代码最终也会生成一个对应的Servlet 。
2、init方法和destroy方法只会在Servlet创建后(初始化Servlet)和销毁前执行执行一次
四、Servlet生命周期(整个生命周期都是由Servlet容器负责)
1、加载和实例化
2、初始化
3、提供服务、请求处理(多线程响应)
4、销毁
1、加载和实例化
2、初始化
3、提供服务、请求处理(多线程响应)
4、销毁
五、使用Servlet的步骤:
1、采用继承HttpServlet类的方法建立一个Servlet类,重写其中的doGet和doPost方法 。分别对应get和post请求 。
2、配置Web.xml ,在Web.xml中添加以下配置:
<servlet>
<servlet-name>MyServlet</servlet-name> <!--自定义Servlet名字-->
<servlet-class>com.pb.servlet.MyServlet</servlet-class> <!--Servlet对应的全限定类名-->
<init-param> <!--初始化Servlet的参数,可以没有通过初始化方法中的ServletConfig类型参数的getInitParameter(String paramName)方法可以获得-->
<param-name>author</param-name>
<param-value>zzl</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name> <!--和上面的Servletname要对应-->
<url-pattern>/MyServlet</url-pattern> <!--以下是url-pattern的多种写法,可以同时存在,优先顺序是精确匹配到模糊匹配-->
</servlet-mapping>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/demo/MyServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/demo/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
3、启动tomcat,在地址栏上输入http://localhost:8080/ServletProject/MyServlet 即可调用调用对应的servlet进行处理,当然除了/MyServlet外,其它几种形式的url-pattern都是可以的 。
1、采用继承HttpServlet类的方法建立一个Servlet类,重写其中的doGet和doPost方法 。分别对应get和post请求 。
2、配置Web.xml ,在Web.xml中添加以下配置:
<servlet>
<servlet-name>MyServlet</servlet-name> <!--自定义Servlet名字-->
<servlet-class>com.pb.servlet.MyServlet</servlet-class> <!--Servlet对应的全限定类名-->
<init-param> <!--初始化Servlet的参数,可以没有通过初始化方法中的ServletConfig类型参数的getInitParameter(String paramName)方法可以获得-->
<param-name>author</param-name>
<param-value>zzl</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name> <!--和上面的Servletname要对应-->
<url-pattern>/MyServlet</url-pattern> <!--以下是url-pattern的多种写法,可以同时存在,优先顺序是精确匹配到模糊匹配-->
</servlet-mapping>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/demo/MyServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/demo/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
3、启动tomcat,在地址栏上输入http://localhost:8080/ServletProject/MyServlet 即可调用调用对应的servlet进行处理,当然除了/MyServlet外,其它几种形式的url-pattern都是可以的 。
六、Servlet类中如何获得页面参数和进行页面跳转
1、获得页面参数可以使用HttpServletRequest的getParameter(String paramName)来获得,paramName与页面中的元素的name要一致。
2、跳转页面可以使用HttpServletRequest对象的转发方法(getRequestDispatcher(String url))或者是HttpServletResponse对象的重定向方法(sendRedirect(String url))。
1、获得页面参数可以使用HttpServletRequest的getParameter(String paramName)来获得,paramName与页面中的元素的name要一致。
2、跳转页面可以使用HttpServletRequest对象的转发方法(getRequestDispatcher(String url))或者是HttpServletResponse对象的重定向方法(sendRedirect(String url))。