象这样的链接是如何实现的?http://www.qqq.com/adsclick?oid=23423&siteid=123456
象这样的链接是如何实现的?http://www.qqq.com/adsclick?oid=23423&siteid=123456
我们平时就用一般是一些带扩展名的文件,如adsclick.php?oid=1132&w=32
上面的adsclick是一个文件吗?还是其它的?有这方面的资料吗?
问题点数:10、回复次数:2Top
1 楼rsallen()回复于 2006-06-04 00:29:22 得分 0
这里adsclick是一个servlet类啊,你可以大概去了解一下MVC,这里把oid跟siteid的值传递给adsclick这个类处理,这个类继承HTTPservlet类。servlet类中一般是在doGet()方法里写这样一段代码。。假如之前那个网址是http://www.qqq.com/cservlet?flag=summit 这个网址转向一个注册页面,这里的cservlet是一个servlet类,之中会有这样一段代码:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
String flag = request.getParameter("flag");//得到网址中flag的值
class_name sm = new class_name();
//(class_name)类名,就是一个你自己定义的一个累的名称,里面包括了很多
//方法,是属于控制层面的。比如里面可以包括一个显示用户信息的方法,可以包括提交用户信息
//到数据库的方法等。
if (flag==null){
forward("/index.jsp",request,response);
}else if(flag.equals("summit")){
forward("/incomemain.jsp",request,response);
}else if(flag.equals("show_info")){
ArrayList list = class_name.show_info();//class_name这个类里的show_info()方法
//用来显示一些信息,比如一条用户信息: 用户名 密码 E-MAIL 性别 年龄 。。
request.setAttribute("show_info",list);//把信息传到服务器,然后可以从浏览器取
//得信息,show_info 是名字 list代表值。
forward("/show_info.jsp",request,response);
}
}
当然其中的forward()方法是自己定义的,用来转到其他页面
public void forward(String path, HttpServletRequest request,
HttpServletResponse response) throws
ServletException, IOException {
request.getRequestDispatcher(path).forward(request, response);
}Top
2 楼loveyt(咆哮的独角兽^大家都在长大)回复于 2006-06-04 01:06:21 得分 0
纠正一下
adsclick并不是一个Servlet类,而是在web.xml内对一个HttpServlet类的path定义,确切的说它是一个虚拟路径,通过这个路径到web.xml内找到其描述对应的class,并且执行这个class内部的编码逻辑。Top




