⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 servlettest.java

📁 是离开的肌肤了卡机是离开的就富利卡及是了的开发及拉考试及的福利科技阿斯利康的肌肤莱卡及时的离开福建阿斯顿发
💻 JAVA
字号:
//========================================================================//Copyright 2004-2008 Mort Bay Consulting Pty. Ltd.//------------------------------------------------------------------------//Licensed under the Apache License, Version 2.0 (the "License");//you may not use this file except in compliance with the License.//You may obtain a copy of the License at //http://www.apache.org/licenses/LICENSE-2.0//Unless required by applicable law or agreed to in writing, software//distributed under the License is distributed on an "AS IS" BASIS,//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.//See the License for the specific language governing permissions and//limitations under the License.//========================================================================import java.io.IOException;import java.net.URL;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import junit.framework.TestCase;import org.mortbay.io.ByteArrayBuffer;import org.mortbay.jetty.testing.HttpTester;import org.mortbay.jetty.testing.ServletTester;import org.mortbay.util.IO;public class ServletTest extends TestCase{    ServletTester tester;            /* ------------------------------------------------------------ */    protected void setUp() throws Exception    {        super.setUp();        tester=new ServletTester();        tester.setContextPath("/context");        tester.addServlet(TestServlet.class, "/servlet/*");        tester.addServlet(HelloServlet.class, "/hello/*");        tester.addServlet("org.mortbay.jetty.servlet.DefaultServlet", "/");        tester.start();    }    /* ------------------------------------------------------------ */    protected void tearDown() throws Exception    {        tester.stop();        tester=null;        super.tearDown();    }    /* ------------------------------------------------------------ */    public void testServletTesterRaw() throws Exception    {        // Raw HTTP test requests        String requests=            "GET /context/servlet/info?query=foo HTTP/1.1\r\n"+            "Host: tester\r\n"+            "\r\n"+            "GET /context/hello HTTP/1.1\r\n"+            "Host: tester\r\n"+            "\r\n";        String responses = tester.getResponses(requests);        String expected=            "HTTP/1.1 200 OK\r\n"+            "Content-Type: text/html; charset=iso-8859-1\r\n"+            "Content-Length: 21\r\n"+            "\r\n"+            "<h1>Test Servlet</h1>" +            "HTTP/1.1 200 OK\r\n"+            "Content-Type: text/html; charset=iso-8859-1\r\n"+            "Content-Length: 22\r\n"+            "\r\n"+            "<h1>Hello Servlet</h1>";        assertEquals(expected,responses);    }    /* ------------------------------------------------------------ */    public void testServletTesterClient() throws Exception    {        String base_url=tester.createSocketConnector(true);                URL url = new URL(base_url+"/context/hello/info");        String result = IO.toString(url.openStream());        assertEquals("<h1>Hello Servlet</h1>",result);    }    /* ------------------------------------------------------------ */    public void testHttpTester() throws Exception    {        // generated and parsed test        HttpTester request = new HttpTester();        HttpTester response = new HttpTester();                // test GET        request.setMethod("GET");        request.setVersion("HTTP/1.0");        request.setHeader("Host","tester");        request.setURI("/context/hello/info");        response.parse(tester.getResponses(request.generate()));        assertTrue(response.getMethod()==null);        assertEquals(200,response.getStatus());        assertEquals("<h1>Hello Servlet</h1>",response.getContent());        // test GET with content        request.setMethod("POST");        request.setContent("<pre>Some Test Content</pre>");        request.setHeader("Content-Type","text/html");        response.parse(tester.getResponses(request.generate()));        assertTrue(response.getMethod()==null);        assertEquals(200,response.getStatus());        assertEquals("<h1>Hello Servlet</h1><pre>Some Test Content</pre>",response.getContent());                // test redirection        request.setMethod("GET");        request.setURI("/context");        request.setContent(null);        response.parse(tester.getResponses(request.generate()));        assertEquals(302,response.getStatus());        assertEquals("http://tester/context/",response.getHeader("location"));        // test not found        request.setURI("/context/xxxx");        response.parse(tester.getResponses(request.generate()));        assertEquals(404,response.getStatus());            }    /* ------------------------------------------------------------ */    public void testBigPost() throws Exception    {        // generated and parsed test        HttpTester request = new HttpTester();        HttpTester response = new HttpTester();                String content = "0123456789abcdef";        content+=content;        content+=content;        content+=content;        content+=content;        content+=content;        content+=content;        content+=content;        content+=content;        content+=content;        content+=content;        content+=content;        content+=content;        content+="!";                request.setMethod("POST");        request.setVersion("HTTP/1.1");        request.setURI("/context/hello/info");        request.setHeader("Host","tester");        request.setHeader("Content-Type","text/plain");        request.setContent(content);        String r=request.generate();        r = tester.getResponses(r);        response.parse(r);        assertTrue(response.getMethod()==null);        assertEquals(200,response.getStatus());        assertEquals("<h1>Hello Servlet</h1>"+content,response.getContent());                    }        /* ------------------------------------------------------------ */    public void testCharset()        throws Exception    {        byte[] content_iso_8859_1="abcd=1234&AAA=xxx".getBytes("iso8859-1");        byte[] content_utf_8="abcd=1234&AAA=xxx".getBytes("utf-8");        byte[] content_utf_16="abcd=1234&AAA=xxx".getBytes("utf-16");        String request_iso_8859_1=            "POST /context/servlet/post HTTP/1.1\r\n"+            "Host: whatever\r\n"+            "Content-Type: application/x-www-form-urlencoded\r\n"+            "Content-Length: "+content_iso_8859_1.length+"\r\n"+            "\r\n";        String request_utf_8=            "POST /context/servlet/post HTTP/1.1\r\n"+            "Host: whatever\r\n"+            "Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n"+            "Content-Length: "+content_utf_8.length+"\r\n"+            "\r\n";        String request_utf_16=            "POST /context/servlet/post HTTP/1.1\r\n"+            "Host: whatever\r\n"+            "Content-Type: application/x-www-form-urlencoded; charset=utf-16\r\n"+            "Content-Length: "+content_utf_16.length+"\r\n"+            "Connection: close\r\n"+            "\r\n";                ByteArrayBuffer out = new ByteArrayBuffer(4096);        out.put(request_iso_8859_1.getBytes("iso8859-1"));        out.put(content_iso_8859_1);        out.put(request_utf_8.getBytes("iso8859-1"));        out.put(content_utf_8);        out.put(request_utf_16.getBytes("iso8859-1"));        out.put(content_utf_16);        ByteArrayBuffer responses = tester.getResponses(out);                String expected=            "HTTP/1.1 200 OK\r\n"+            "Content-Type: text/html; charset=iso-8859-1\r\n"+            "Content-Length: 21\r\n"+            "\r\n"+            "<h1>Test Servlet</h1>"+            "HTTP/1.1 200 OK\r\n"+            "Content-Type: text/html; charset=iso-8859-1\r\n"+            "Content-Length: 21\r\n"+            "\r\n"+            "<h1>Test Servlet</h1>"+            "HTTP/1.1 200 OK\r\n"+            "Content-Type: text/html; charset=iso-8859-1\r\n"+            "Connection: close\r\n"+            "\r\n"+            "<h1>Test Servlet</h1>";                assertEquals(expected,responses.toString());    }        /* ------------------------------------------------------------ */    public static class HelloServlet extends HttpServlet    {        private static final long serialVersionUID=2779906630657190712L;        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException        {            doGet(request,response);        }        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException        {            response.setContentType("text/html");            response.getWriter().print("<h1>Hello Servlet</h1>");            if (request.getContentLength()>0)                response.getWriter().write(IO.toString(request.getInputStream()));        }    }        public static class TestServlet extends HttpServlet    {        private static final long serialVersionUID=2779906630657190712L;        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException        {            assertEquals("/context",request.getContextPath());            assertEquals("/servlet",request.getServletPath());            assertEquals("/post",request.getPathInfo());            assertEquals(2,request.getParameterMap().size());            assertEquals("1234",request.getParameter("abcd"));            assertEquals("xxx",request.getParameter("AAA"));                        response.setContentType("text/html");            response.setStatus(HttpServletResponse.SC_OK);            response.getWriter().print("<h1>Test Servlet</h1>");        }                protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException        {            assertEquals("/context",request.getContextPath());            assertEquals("/servlet",request.getServletPath());            assertEquals("/info",request.getPathInfo());            assertEquals("query=foo",request.getQueryString());            assertEquals(1,request.getParameterMap().size());            assertEquals(1,request.getParameterValues("query").length);            assertEquals("foo",request.getParameter("query"));                        response.setContentType("text/html");            response.setStatus(HttpServletResponse.SC_OK);            response.getWriter().print("<h1>Test Servlet</h1>");        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -