使用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]再去访问果然没问题了,