开发者社区> 问答> 正文

JSP怎么生成“动态URL”?

也不知道“动态URL”这种叫法对不对,反正这样的需求也还不会描述。

需求如下:
譬如 http://segmentfault.com/q/1010000002910984 这样的URL,URL中的一串数字(1010000002910984)对应一个问题详情页面,我们暂且认为这也是数据库中的ID,那在JSP怎么达到这样的效果?即,数据库里有很多条数据,以ID标识,希望就是通过一个包含记录的ID的URL来到达详情页面,使用的是JSP技术。其实这样的做法在很多网站都实现了。
现在在下能做到的程度只是一个个JSP页面跳转(每个页面都是写好了的),自己道行不够深,还没想到怎么实现这样的需求。

展开
收起
蛮大人123 2016-02-25 18:35:35 2920 0
2 条回答
写回答
取消 提交回答
  • 可以通过正则表达式配置处理请求的server。 @WebServlet(name = "URLServlet",urlPatterns = "/q/*") 然后传入能够匹配到的链接去处理。 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取请求的地址 String id = request.getRequestURI(); //do something }
    2019-07-17 18:47:52
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    JSP就是servlet,比较好的方案写一个servlet来统一调度请求,起一个路由的作用。比如SpringMVC的入口是DispatcherServlet。
    下面根据答主的问题进行回答,当然我的方式并不是最好的。
    比如 http://segmentfault.com/q/1010000002910984,使用一个servlet处理所有的http://segmentfault.com/q/下的请求

    /**
     * Created by reeco_000 on 2015/6/16.
     */
    @WebServlet(name = "URLServlet",urlPatterns = "/q/*")
    public class URLServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //获取请求的地址
            String id = request.getRequestURI();
    
            //do something
        }
    }
    2019-07-17 18:47:52
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关课程

更多

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载