Servlet入门 代码

1. 第一个Servlet程序

package com.allanlxf.serv.basic;
import javax.servlet.*;
import java.io.*;
public class TimeServlet implements Servlet
{
    private ServletConfig config;
    
    public TimeServlet()
    {
        System.out.println("TimeServlet()");
    }
    
    public void init(ServletConfig config) throws ServletException
    {
        this.config = config;
        System.out.println("init(" + config + ")");
    }
    
    public void service(ServletRequest request, ServletResponse response)
                    throws ServletException, IOException
    {
        System.out.println(this);
        System.out.println("service(" + request + "," + response + ")");
        getServletConfig();
        PrintWriter out = response.getWriter();
        out.println("<h1>");
        out.println(new java.util.Date());
        out.println("</h1>");
        out.close();
    }
    
    public void destroy()
    {
        System.out.println("destroy");
    }
    
    public String getServletInfo()
    {
        return "time servlet by allan version 1.0";
    }
    
    public ServletConfig getServletConfig()
    {
        return config;
    }  
}


2. 编写及布署Servlet类

(1)编写一个类继承自HttpServlet

package com.allanlxf.serv.basic;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HttpTimeServlet extends HttpServlet
{
    public void doGet(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, IOException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        
        out.println("<html>");
        out.println("<head>");
        out.println("<title>currentTime</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h3 align=\"center\">Current Time is</h3>");
        out.println("<hr>");
        out.println(new java.util.Date());
        out.println("</body>");
        out.println("</html>");
        out.close();
    }
    
    public void doPost(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, IOException
    {
        doGet(request, response);
    }
}


(2)在Tomcat中布署一个myFirst-app web应用

---Tomcat

---webapps

---myFirst-app

---WEB-INF

---classes

---web.xml

---shoppingCart

(3)配置Web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
    
<servlet> 
      <servlet-name>ActionServlet</servlet-name>
      <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
    </servlet>  
     
   
  <servlet>
    <servlet-name>time</servlet-name>
    <servlet-class>com.allanlxf.serv.basic.TimeServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
    <servlet-name>HttpTimeServlet</servlet-name>
    <servlet-class>com.allanlxf.serv.basic.HttpTimeServlet</servlet-class>
  </servlet>
 <servlet-mapping> 
      <servlet-name>ActionServlet</servlet-name>
      <url-pattern>*.do</url-pattern>
    </servlet-mapping>
  
  <servlet-mapping>
    <servlet-name>time</servlet-name>
    <url-pattern>/basic/time</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>HttpTimeServlet</servlet-name>
    <url-pattern>/basic/http/time</url-pattern>
  </servlet-mapping>
<listener>
     <listener-class>com.chu.shoppingCart.web.shoppingCartListner</listener-class>
    </listener>
</web-app>


3. 常用类介绍

(1)Filter类

public class CharacterEncodingFilter implements Filter
{
    private FilterConfig config;
    
    public void init(FilterConfig config) throws ServletException
    {        
        this.config = config;
    }
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
    {
        String encoding = config.getInitParameter("encoding");
        if(encoding == null)
        {
            encoding = "gbk";
        }
        
        request.setCharacterEncoding(encoding);
        response.setCharacterEncoding(encoding);
        
        chain.doFilter(request, response);
    }
    public void destroy()
    {
    }
}





原文地址:https://www.cnblogs.com/smileallen/p/3391571.html