WAP建站入门教程
来源:yesky
被读3031次
转载请注明出处-中国设计秀-cnwebshow.com
十、用户代理检
介绍了如何检测用户浏览器的类型。
User-Agent在URL申请头中有着重要的意义。可以用来判断用户代理的类型。通过检测用户代理,就可以针对不同的用户代理发送最适合的信息。在这里将要介绍一个Servlet小工具用来检测User-Agent,以及几种有特点的用户代理。当然该工具也适合于检测其他类型的HTTP头,源程序如下:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Snoop extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/vnd.wap.wml");
PrintWriter out = response.getWriter();
out.println("<?xml version="1.0"?>");
out.println("<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">");
String check=request.getParameter("check");
out.println("<wml>");
out.println(" <card id="check" title="" + check + "">");
out.println(" <p>");
if(check.equals("Method"))
{
out.println(request.getMethod());
}
else if(check.equals("URL"))
{
out.println(request.getRequestURL());
}
else if(check.equals("Protocol"))
{
out.println(request.getProtocol());
}
else if(check.equals("ServletPath"))
{
out.println(request.getServletPath());
}
else if(check.equals("PathInfo"))
{
out.println(request.getPathInfo());
}
else if(check.equals("PathTranslated"))
{
out.println(request.getPathTranslated());
}
else if(check.equals("QueryString"))
{
out.println(request.getQueryString());
}
else if(check.equals("ContentLength"))
{
out.println(request.getContentLength());
}
else if(check.equals("ServerName"))
{
out.println(request.getServerName());
}
else if(check.equals("ServerPort"))
{
out.println(request.getRemoteUser());
}
else if(check.equals("RemoteUser"))
{
out.println(request.getRemoteAddr());
}
else if(check.equals("RemoteHost"))
{
out.println(request.getRemoteHost());
}
else if(check.equals("AuthType"))
{
out.println(request.getAuthType());
}
else
{
out.println(request.getHeader(check));
}
out.println(" </p>");
out.println(" </card>");
out.println("</wml>");
}
}
import javax.servlet.*;
import javax.servlet.http.*;
public class Snoop extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/vnd.wap.wml");
PrintWriter out = response.getWriter();
out.println("<?xml version="1.0"?>");
out.println("<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">");
String check=request.getParameter("check");
out.println("<wml>");
out.println(" <card id="check" title="" + check + "">");
out.println(" <p>");
if(check.equals("Method"))
{
out.println(request.getMethod());
}
else if(check.equals("URL"))
{
out.println(request.getRequestURL());
}
else if(check.equals("Protocol"))
{
out.println(request.getProtocol());
}
else if(check.equals("ServletPath"))
{
out.println(request.getServletPath());
}
else if(check.equals("PathInfo"))
{
out.println(request.getPathInfo());
}
else if(check.equals("PathTranslated"))
{
out.println(request.getPathTranslated());
}
else if(check.equals("QueryString"))
{
out.println(request.getQueryString());
}
else if(check.equals("ContentLength"))
{
out.println(request.getContentLength());
}
else if(check.equals("ServerName"))
{
out.println(request.getServerName());
}
else if(check.equals("ServerPort"))
{
out.println(request.getRemoteUser());
}
else if(check.equals("RemoteUser"))
{
out.println(request.getRemoteAddr());
}
else if(check.equals("RemoteHost"))
{
out.println(request.getRemoteHost());
}
else if(check.equals("AuthType"))
{
out.println(request.getAuthType());
}
else
{
out.println(request.getHeader(check));
}
out.println(" </p>");
out.println(" </card>");
out.println("</wml>");
}
}
我在Catalina Server下调试通过。程序根据你选择的不同check选择项返回不同的信息。这个小工具对于在程序调试的时候是十分有用的。你可以在你的form中间加入一个check选择项,将action指向snoop就可以知道用户代理发送给服务器的所有内容,方便吧!
当你输入check=User-Agent的时候,那么返回的就是User-Agent的值。m3Gate只能在使用IE的时候才可以启动。UpPhone传回的数据最长。Nokia WAP Toolkit 1.2相比之下就比较简单。ccWAP居然就只有:WML Browser。其他类型的User-Agent值你可以在“浏览器列表”中找到!
当你输入check=User-Agent的时候,那么返回的就是User-Agent的值。m3Gate只能在使用IE的时候才可以启动。UpPhone传回的数据最长。Nokia WAP Toolkit 1.2相比之下就比较简单。ccWAP居然就只有:WML Browser。其他类型的User-Agent值你可以在“浏览器列表”中找到!