惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
D
Docker
Blog — PlanetScale
Blog — PlanetScale
罗磊的独立博客
美团技术团队
V
V2EX
Last Week in AI
Last Week in AI
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
Microsoft Security Blog
Microsoft Security Blog
Microsoft Azure Blog
Microsoft Azure Blog
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
P
Proofpoint News Feed
B
Blog RSS Feed
博客园_首页
B
Blog
博客园 - 叶小钗
I
InfoQ
WordPress大学
WordPress大学
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
The Register - Security
The Register - Security
MyScale Blog
MyScale Blog
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
Latest news
Latest news
W
WeLiveSecurity
T
The Exploit Database - CXSecurity.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
Cyberwarzone
Cyberwarzone
Scott Helme
Scott Helme
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CERT Recently Published Vulnerability Notes
C
CXSECURITY Database RSS Feed - CXSecurity.com
Recent Commits to openclaw:main
Recent Commits to openclaw:main
N
News and Events Feed by Topic
S
Secure Thoughts
The Hacker News
The Hacker News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News

博客园 - s1ihome

弹框居中的方法 如何 clone git 项目到一个非空目录 Uiautomatorviewer报错:Unexpected error while obtaining UI hierarchy java.lang.reflect.InvocationTargetException 常见银行卡号账号长度参考表 TP5.0 数据库查询is not null vscode 中sftp配置 移动端H5上传图片并压缩上传 Thinkphp关联模型使用 centos 7 pdo thinkphp 5 where 组合条件map数组or [转]处理上百万条的数据库如何提高处理查询速度 连接oracle读取数据 SQL SERVER批量修改表名前缀 php导出excel java开发微信公众平台备忘 AngularJS小试牛刀 微信公众平台项目中遇到的小问题40016,Invalid button size Dynamic Virtual Channels 木马的隐藏方式
spring mvc开发过程知识点记录
s1ihome · 2015-05-25 · via 博客园 - s1ihome

给一个客户做的一个小项目,需求就是输入类似一个短网址http://dd.yy/xxxx然后跳转到另外一个域名下的图书文件。(实际很多短网址站都提供API供调用吧,不过客户需求是他自己建立一个短网址服务然后跳转到服务器上另外一个网站下载相应图书)

以前没单独用spring开发的经验,实际用java的经验也比较少,所以记录下开发过程中遇到的问题以及有价值的知识点记录下供自己和后来者备忘吧。有些地方理解或者写的可能有不对的地方,应急用的,先求保持功能可用即可。再深入的研究以提升JAVA开发技能。

下面的一些配置基本是根据看的一个视频边看边做的。

 配置:

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

参考视频使用的注解开发模式,相关配置如下:

    <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放入建立的一个文件夹lib中,把lib加入build path,

东拼西凑的一些jar包,版本没有按照视频里面的,可能有些不需要的jar包

乱码问题:

读取MYSQL中图书地址并跳转到相应图书文件供下载,路径即为图书的虚拟目录,如[http://domain.com/book/分享/大数据时代_生活,工作与思维的大变革 (湛庐文化•财富汇) - 维克托•迈尔-舍恩伯格 & 肯尼思•库克耶.mobi],按以前的经验使用URLEncoder.encode(url,"utf-8"),对不包括一些特殊字符如"().-"在里面的可以正常下载,但是有特殊字符的也给转成%xx之类的就出错了。直接读取数据库路径然后转成url也会出错,最终解决办法是downloadUrl=new String(downloadUrl.getBytes("UTF-8"),"ISO8859-1");