JavaWeb之第一個Servlet程序


我使用的編輯器是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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM