JSP怎么生成“动态URL”?
也不知道
“动态URL”
这种叫法对不对,反正这样的需求也还不会描述。
需求如下:
譬如
http://segmentfault.com/q/1010000002910984
这样的URL,URL中的一串数字(1010000002910984)对应一个问题详情页面,我们暂且认为这也是数据库中的
ID
,那在JSP怎么达到这样的效果?即,数据库里有很多条数据,以ID标识,希望就是通过一个包含记录的ID的URL来到达详情页面,使用的是JSP技术。其实这样的做法在很多网站都实现了。
现在在下能做到的程度只是一个个JSP页面跳转(每个页面都是写好了的),自己道行不够深,还没想到怎么实现这样的需求。
希望大神指点,先谢谢了。
我唔系男籽
10 years, 3 months ago
Answers
JSP就是servlet,比较好的方案写一个servlet来统一调度请求,起一个路由的作用。比如SpringMVC的入口是DispatcherServlet。
下面根据答主的问题进行回答,当然我的方式并不是最好的。
比如
http://segmentfault.com/q/1010000002910984
,使用一个servlet处理所有的
http://segmentfault.com/q/
下的请求
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 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
}
}
子兎Muki
answered 10 years, 3 months ago