15、编写一个由servlet和多个Web文档组成的Web应用程序。文档index.html或index.htm是用户看到的第一个文档。该文档中包含其他网页的超链接。点击该文档时,每个超链接使用带page参数的get请求来调用servlet。Servlet应该获得参数page,并将请求重定向到合适的文档。index.htm
=======================================================================
<html>
<head>
<title>index</index>
</head>
<body>
<a href="/servlet/Redirect?page=a.html">Link a</a>
<a href="/servlet/Redirect?page=b.html">Link b</a>
<a href="/servlet/Redirect?page=c.html">Link c</a>
<a href="/servlet/Redirect?page=d.html">Link d</a>
</body>
</html>a.html
=======================================================================
<html>
<head>
<title>index</index>
</head>
<body>
Page A
</body>
</html>b.html
=======================================================================
<html>
<head>
<title>index</index>
</head>
<body>
Page B
</body>
</html>c.html
=======================================================================
<html>
<head>
<title>index</index>
</head>
<body>
Page C
</body>
</html>d.html
=======================================================================
<html>
<head>
<title>index</index>
</head>
<body>
page d
</body>
</html>Redirect.java
=======================================================================
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;public class Redirect extends HttpServlet {
private String referrer;
private String target;
public void init() throws ServletException {
super.init();
} protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
try
{
getURLs(request);
}
catch (Exception e)
{
response.sendError(500,"Target parameter not specified");
return;
}
response.sendRedirect(target);
} protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
this.doGet(request, response);
}
public void getURLs(HttpServletRequest request)
{
referrer = request.getParameter("referrer");
if (referrer == null || 0 == referrer.length())
{
referrer = new String("");
}
target = request.getParameter("target"); // If no target specified, raise an error
if (target == null || target.equals(""))
{
throw new IllegalArgumentException();
}
}
}
=======================================================================
<html>
<head>
<title>index</index>
</head>
<body>
<a href="/servlet/Redirect?page=a.html">Link a</a>
<a href="/servlet/Redirect?page=b.html">Link b</a>
<a href="/servlet/Redirect?page=c.html">Link c</a>
<a href="/servlet/Redirect?page=d.html">Link d</a>
</body>
</html>a.html
=======================================================================
<html>
<head>
<title>index</index>
</head>
<body>
Page A
</body>
</html>b.html
=======================================================================
<html>
<head>
<title>index</index>
</head>
<body>
Page B
</body>
</html>c.html
=======================================================================
<html>
<head>
<title>index</index>
</head>
<body>
Page C
</body>
</html>d.html
=======================================================================
<html>
<head>
<title>index</index>
</head>
<body>
page d
</body>
</html>Redirect.java
=======================================================================
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;public class Redirect extends HttpServlet {
private String referrer;
private String target;
public void init() throws ServletException {
super.init();
} protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
try
{
getURLs(request);
}
catch (Exception e)
{
response.sendError(500,"Target parameter not specified");
return;
}
response.sendRedirect(target);
} protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
this.doGet(request, response);
}
public void getURLs(HttpServletRequest request)
{
referrer = request.getParameter("referrer");
if (referrer == null || 0 == referrer.length())
{
referrer = new String("");
}
target = request.getParameter("target"); // If no target specified, raise an error
if (target == null || target.equals(""))
{
throw new IllegalArgumentException();
}
}
}
=======================================================================
<html>
<head>
<title>index</index>
</head>
<body>
<a href="/servlet/Redirect?referrer=a.html">Link a</a>
<a href="/servlet/Redirect?referrer=b.html">Link b</a>
<a href="/servlet/Redirect?referrer=c.html">Link c</a>
<a href="/servlet/Redirect?referrer=d.html">Link d</a>
</body>
</html>
<Tomcat dir>/common/lib/servlet.jar copy the .class file to <Tomcat dir>/webapps/examples/WEB-INF/classes