servlet是运行在Web服务器中的小型Java程序,服务器端的小应用程序。servlet同城通过HTTP协议接收和响应来自Web客户端的请求。
servlet类
package servlet; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class ServletDemo1 implements Servlet{ @Override public void destroy() { // TODO Auto-generated method stub } @Override public ServletConfig getServletConfig() { // TODO Auto-generated method stub return null; } @Override public String getServletInfo() { // TODO Auto-generated method stub return null; } @Override public void init(ServletConfig arg0) throws ServletException { // TODO Auto-generated method stub } @Override public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { System.out.println("service"); } }
web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <!-- 创建一个servlet实例 --> <servlet> <servlet-name>ServletDemo1</servlet-name> <servlet-class>servlet.ServletDemo1</servlet-class> <!-- servlet在服务器启动时候就创建 --> <load-on-startup>2</load-on-startup> <!-- 数字越小优先级越高,0默认配置了一个 --> </servlet> <!-- 给servlet提供(映射)一个可供客户端访问的URI --> <servlet-mapping> <servlet-name>ServletDemo1</servlet-name> <url-pattern>/demo1</url-pattern> </servlet-mapping> <!-- 欢迎页面 --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
输入:http://localhost:8080/learn/demo1
servlet类运行过程
servlet生命周期(为请求服务器的方法和从服务器移除servlet方法。)
实例化-->初始化-->服务-->销毁
出生:(实例化-->初始化)(默认情况下)第一次访问就出生
活着:(服务)应用活着,servlet就活着
死亡:(销毁)应用卸载了,servlet就销毁
1.构造servlet类,然后私有init方法将其初始化
2.处理来自客户端的对service方法的所有调用。
3.从服务器中取出servlet,然后使用destory方法销毁它,最后进行垃圾回收并终止它。
除了生命周期方法,接口还提供了getServletConfig()和getServletInfo方法,servlet可使用前一种方法获得任何启动信息,而后一种方法允许servlet返回有关其子孙的基本信息,比如作者,版权和版本
代码:
package servlet; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class ServletDemo1 implements Servlet{ //实例化 public ServletDemo1() { System.out.println("ServletDemo1"); } //销毁 @Override public void destroy() { System.out.println("destroy"); } @Override public ServletConfig getServletConfig() { // TODO Auto-generated method stub return null; } // @Override public String getServletInfo() { // TODO Auto-generated method stub return null; } //初始化 @Override public void init(ServletConfig arg0) throws ServletException { System.out.println("init"); } //服务 @Override public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { System.out.println("service"); } //运行结果:首次启动:ServletDemo1、init、service //以后:service,多线程,创建一个实例,每次运行则开启一个servlet线程 }
servlet应用卸载:
http://loaclhost:8080 --> Manager App --> 身份验证(连接) --> 找到应用 --> undeploy
设置用户名密码:
apache-tomcat7.0.52/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<user username="admin" password="123456" roles="manager-gui"/>
重启服务器