【Head First Servlets and JSP】迷你MVC:JarDownload的完整實現

來源:互聯網
上載者:User

標籤:download   etc   .com   htm   ext   code   for   set   exception   

1、首先,寫一個download.html放至D:\apache-tomcat-7.0.77\webapps\JarDownload-v1。

<!DOCTYPE HTML><html>    <body>        <form action="JarDownload.do" method="get">            <br />            提取碼:<input type="text" name="passwd" /><br />            <br />            <input type="submit" />        </form>                <br />        <p>提取碼為123456。</p>    </body></html>

 

2、啟動tomcat,並通過瀏覽器測試頁面。

先執行命令列指令D:\apache-tomcat-7.0.77\bin>startup.sh

然後開啟瀏覽器,輸入URL:http://localhost:8080/JarDownload-v1/download.html

 

3、編寫web.xml並測試,放至D:\apache-tomcat-7.0.77\webapps\JarDownload-v1\WEB-INF,最好重啟一下tomcat。

<?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>Test</servlet-name>        <servlet-class>com.example.web.JarDownload</servlet-class>    </servlet>    <servlet-mapping>        <servlet-name>Test</servlet-name>        <url-pattern>/JarDownload.do</url-pattern>    </servlet-mapping></web-app>

 

4、準備一個測試Jar包,放在D:\apache-tomcat-7.0.77\webapps\JarDownload-v1

 

5、編寫全名為com.example.web.JarDownload的Servlet,編譯成.class檔案後部署到D:\apache-tomcat-7.0.77\webapps\JarDownload-v1\WEB-INF\classes\com\example\web

package com.example.web;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;public class JarDownload extends HttpServlet {    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {        resp.setContentType("application/jar"); // 想讓瀏覽器知道的事情        ServletContext ctx = getServletContext();        InputStream is = ctx.getResourceAsStream("/hello.jar");        int read = 0;        byte[] bytes = new byte[1024];        OutputStream os = resp.getOutputStream();        while ((read = is.read(bytes)) != -1) {            os.write(bytes, 0, read);        } // 把JAR包先讀到記憶體裡再轉寫到輸出資料流中。        os.flush();        os.close();    }}

 

6、最後,測試一下能否通過網頁下載這個Jar包。

 

7、經過檢查,發現JarDownload.do的的確是hello.jar(只是名稱不同罷了),但是檔案名稱卻是url-pattern,修改一下html和web.xml就可以了。

這裡體現了把邏輯名映射到servlet檔案的好處。

【Head First Servlets and JSP】迷你MVC:JarDownload的完整實現

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.