我使用的編輯器是Intellj Idea,並且配置maven插件,無論是Intellj還是eclipse,重要的是編程思想,無所謂編輯器。
1. 編寫一個Servlet實現類:HelloServlet:
import javax.servlet.*; import java.io.IOException; public class HelloServlet implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException { System.out.println("int..."); } @Override public ServletConfig getServletConfig() { System.out.println("config..."); return null; } @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("service..."); } @Override public String getServletInfo() { System.out.println("servletInfo..."); return null; } @Override public void destroy() { System.out.println("destory..."); } }
2.在web.xml文件中注冊servlet實現類:
<servlet>
<!-- servlet注冊的名字 -->
<servlet-name>HelloServlet</servlet-name>
<!-- servlet的全類名 -->
<servlet-class>com.yding.web.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<!-- servlet的名字 -->
<servlet-name>HelloServlet</servlet-name>
<!-- servlet的映射 -->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
3.啟動tomcat,將web項目部署到tomcat中,第一次訪問http://localhost:8080/JavaWeb/hello時,servlet初始化,調用init()方法,並調用service方法,
在以后訪問此鏈接時,都會調用service()方法,當服務器關閉時,會調用destroy()方法。
int... service... service...
destory...
4. <load-on-startup>參數,可以控制servlet的加載時間,1表示加載tomcat同時加載servlet
<servlet> <!-- servlet注冊的名字 --> <servlet-name>HelloServlet</servlet-name> <!-- servlet的全類名 --> <servlet-class>com.yding.web.HelloServlet</servlet-class> <!-- 可以指定servlet的創建時間 1 表示啟動tomcat時就加載此servlet --> <load-on-startup>1</load-on-startup> </servlet>
5.servlet可以匹配多個映射:
<servlet-mapping> <!-- servlet的名字 --> <servlet-name>HelloServlet</servlet-name> <!-- servlet的映射 --> <url-pattern>/hello</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello2</url-pattern> </servlet-mapping>
6.serlet的URL通配符
通配符只可以有兩種形式: 第一種形式: .action 或.html等 第二種形式:/* 不可以 /*.action
7.servletConfig,這是servlet的參數
<servlet> <!-- servlet注冊的名字 --> <servlet-name>HelloServlet</servlet-name> <!-- servlet的全類名 --> <servlet-class>com.yding.web.HelloServlet</servlet-class>
<init-param> <param-name>username</param-name> <param-value>root</param-value> </init-param> <init-param> <param-name>password</param-name> <param-value>lfdy</param-value> </init-param>
<!-- 可以指定servlet的創建時間 1 表示啟動tomcat時就加載此servlet --> <load-on-startup>1</load-on-startup> </servlet>
public void init(ServletConfig servletConfig) throws ServletException { String username = servletConfig.getInitParameter("username"); System.out.println(username); String password = servletConfig.getInitParameter("password"); System.out.println(password); System.out.println("int..."); Enumeration<String> enumeration = servletConfig.getInitParameterNames(); while(enumeration.hasMoreElements()){ String name = enumeration.nextElement(); String value = servletConfig.getInitParameter(name); System.out.println(name+": "+value); } }
結果:
root lfdy int... password: lfdy username: root