Java WEB 多个servlet的web.xml配置



Java WEB 多个servlet的web.xml配置

先贴上三个servlet java类 :

复制代码
package mypack;

import java.io.IOException;

import javax.servlet.GenericServlet;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class DispatchServlet
 */
public class DispatchServlet extends GenericServlet {
    private static final long serialVersionUID = 1L;
    private String target="/hello.jsp";
    @Override
    public void service(ServletRequest request, ServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        String username=request.getParameter("username");
        String password=request.getParameter("password");

        request.setAttribute("USER", username);
        request.setAttribute("PASSWORD", password);

        ServletContext context=getServletContext();
        RequestDispatcher dispatcher=context.getRequestDispatcher(target);
        dispatcher.forward(request, response);
    }

}
复制代码

上面这个类在java web第一篇文章中出现了.

复制代码
package mypack;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorld extends HttpServlet {

     private String message;

      public void init() throws ServletException
      {
          // Do required initialization
          message = "Hello World";
      }

      public void doGet(HttpServletRequest request,
                        HttpServletResponse response)
                throws ServletException, IOException
      {
          // Set response content type
          response.setContentType("text/html");

          // Actual logic goes here.
          PrintWriter out = response.getWriter();
          out.println("<h1>" + message + "</h1>");
      }

      public void destroy()
      {
          // do nothing.
      }

}
复制代码

 

复制代码
package mypack;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ResInfoServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub

        response.setContentType("text/html;charset=GB2312");

        PrintWriter out=response.getWriter();
        out.println("<html><head><title>ResInfoServlet</title></head>");
        out.println("<body>");
        out.println("<br>LocalAddr : " + request.getLocalAddr());
        out.println("<br>LocalName : " + request.getLocalName());

        out.println("<br>username : "+request.getParameter("username"));
        out.println("</body></html>");

        out.close();

    }

}
复制代码

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" id="WebApp_ID" version="2.5">
  <display-name>helloapp</display-name>
  <welcome-file-list>
    <welcome-file>login.html</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>DispatchServlet</display-name>
    <servlet-name>DispatchServlet</servlet-name>
    <servlet-class>mypack.DispatchServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>DispatchServlet</servlet-name>
    <url-pattern>/DispatchServlet</url-pattern>
  </servlet-mapping>

  <servlet>
    <description></description>
    <display-name>ResInfoServlet</display-name>
    <servlet-name>ResInfoServlet</servlet-name>
    <servlet-class>mypack.ResInfoServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ResInfoServlet</servlet-name>
    <url-pattern>/ResInfoServlet</url-pattern>
  </servlet-mapping>

  <servlet>
        <servlet-name>HelloWorld</servlet-name>
        <servlet-class>mypack.HelloWorld</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloWorld</servlet-name>
        <url-pattern>/HelloWorld</url-pattern>
    </servlet-mapping>

</web-app>
复制代码

 

在浏览器中输入:


http://localhost:8080/helloapp/info?username=TOM
http://localhost:8080/helloapp/HelloWorld

 

需要注意几个细节:

<1> : extends HttpServlet 需要注意:重写doGet等方法时,需要全部去掉super.doGet(~~~)之类的,这在上一篇文中解释.

<2> : <url-pattern>/info</url-pattern> : http://localhost:8080/helloapp/info?username=TOM 隐蔽了真实的名.