給一個(gè)客戶做的一個(gè)小項(xiàng)目,需求就是輸入類似一個(gè)短網(wǎng)址http://dd.yy/xxxx然后跳轉(zhuǎn)到另外一個(gè)域名下的圖書(shū)文件。(實(shí)際很多短網(wǎng)址站都提供API供調(diào)用吧,不過(guò)客戶需求是他自己建立一個(gè)短網(wǎng)址服務(wù)然后跳轉(zhuǎn)到服務(wù)器上另外一個(gè)網(wǎng)站下載相應(yīng)圖書(shū))
以前沒(méi)單獨(dú)用spring開(kāi)發(fā)的經(jīng)驗(yàn),實(shí)際用java的經(jīng)驗(yàn)也比較少,所以記錄下開(kāi)發(fā)過(guò)程中遇到的問(wèn)題以及有價(jià)值的知識(shí)點(diǎn)記錄下供自己和后來(lái)者備忘吧。有些地方理解或者寫(xiě)的可能有不對(duì)的地方,應(yīng)急用的,先求保持功能可用即可。再深入的研究以提升JAVA開(kāi)發(fā)技能。
下面的一些配置基本是根據(jù)看的一個(gè)視頻邊看邊做的。
配置:1.web.xml
主要配置引入spring servelet的一段如下:
<servlet> <servlet-name>shorturl</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> <!-- 加載springmvc.xml --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> </servlet>
2.springmvc.xml
參考視頻使用的注解開(kāi)發(fā)模式,相關(guān)配置如下:
<context:component-scan base-package="ren.kss.web.controller"></context:component-scan> <!-- 注解映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" /> <!-- 注解適配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" /> <!-- 視圖解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean>依賴包
按照視頻把里面提到的一些jar放入建立的一個(gè)文件夾lib中,把lib加入build path,
東拼西湊的一些jar包,版本沒(méi)有按照視頻里面的,可能有些不需要的jar包
亂碼問(wèn)題:讀取MySQL中圖書(shū)地址并跳轉(zhuǎn)到相應(yīng)圖書(shū)文件供下載,路徑即為圖書(shū)的虛擬目錄,如[http://domain.com/book/分享/大數(shù)據(jù)時(shí)代_生活,工作與思維的大變革 (湛廬文化•財(cái)富匯) - 維克托•邁爾-舍恩伯格 & 肯尼思•庫(kù)克耶.mobi],按以前的經(jīng)驗(yàn)使用URLEncoder.encode(url,"utf-8"),對(duì)不包括一些特殊字符如"().-"在里面的可以正常下載,但是有特殊字符的也給轉(zhuǎn)成%xx之類的就出錯(cuò)了。直接讀取數(shù)據(jù)庫(kù)路徑然后轉(zhuǎn)成url也會(huì)出錯(cuò),最終解決辦法是downloadUrl=new String(downloadUrl.getBytes("UTF-8"),"ISO8859-1");
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注