jsp文件中标签属性中加入的超链接是url一部分
对应xml文件中的url-pattern
也会有一个对应servlet-name>标签(同在servlet-mapping>里面)
之后会通过这个servlet-name>标签找到相同的一个在servlet>标签里面对应的,从而找到这个servlet-class>,这个servlet-class>里面的内容就是所对应的java类(servlet)所在的位置了。
之后就是执行servlet里面的方法了,服务器能够根据你点击的是超链接而知道提交的请求是get请求,所以执行doGet请求;同样的,如果你提交的是一个表单(在jsp文件当中的一个form>标签),那么服务器就知道这个是一个post请求,所以执行的是doPost方法了。
servlet文件中保留的方法
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
System.out.println("service"/*+name*/);
super.service(arg0, arg1);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet");
response.getWriter().append("Served at: ").append(request.getContextPath());
}
发布成功
控制台输出语句
页面跳转连接
f12打开编辑器,查看network,后退再次演示此过程,会看到请求网址和请求方法
Tomcat会以项目名为间隔,截取最后的文件名 /ZZServlet,截取到以后就会到web.xml中寻找,找一个url-partan一样的,然后得到servlet-name,然后拿servlet-name标签中的内容到servlet标签中另外一个与之匹配的servlet-name
然后就找到了对应的servlet类.
需要注意的是,如果servlet-mapping中的servlet-name改变,不与servlet标签中的servlet-name内容一致,就会报错(此处不做演示)
servlet类中的service方法起分工的作用,客户所有的请求无论是get还是post,都会先交由service方法处理,根据发送请求的方式不同,调用对应的方法
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
System.out.println("service"/*+name*/);
super.service(arg0, arg1);
}
super调用父类的方法