短链接跳转时不加项目名无法跳转问题

使用Filter过滤器实现短链接跳转

数据库对应的是baidu-->https://www.baidu.com

下面是Filter一段代码

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {

String requestURI = request.getRequestURI();
String[] shortUrl = requestURI.split("/");
String shor = shortUrl[2];
//去数据库校验
log.info("准备去数据库校验");
ShortUrlDao sud =new ShortUrlDao();

String longurl = sud.selectUrl(shor);
log.info("获得已经返回的长连接");
//System.out.println(shor);
//重定向
log.info("准备重定向");
response.sendRedirect(longurl);

正常情况下,我访问localhost:8080/项目名/baidu是能跳转到百度界面

但是当我把这个项目部署到云服务器想实现的是这样:访问:http://myskb.com/baidu  能直接查询数据库然后跳转到百度页面

当我访问的时候就报错了,角标越界异常,想了好久才想明白问题在哪,

那不就是你访问带项目名的时候Split切割成三段,所以拿最后一段字符串去数据库校验是没问题的

可是云部署是只有两部分,所以需要改一下源代码,把上面代码的String shor = shortUrl[2]改成String shor = shortUrl[1]再去访问果然没问题了,



你可能感兴趣的:(功能实现,filter)