Servlet-请求和相应的路径
示例:
- 创建一个web工程,在web工程目录下面创建一个包,在包下面创建一个Class类来继承javax.servlet.http.HttpServlet,重写doGet与doPost方法。
package com.zkk;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class req_demo extends HttpServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//用来判断通过html访问Servelt,访问到了的话就在输出窗口打印出doGet被访问
System.out.println("doGet被访问了");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
- 在WebRoot创建dir1文件夹,在其下创建一个1.html和在WebRoot下创建一个2.html。通过使用
<a href=""></a>
来访问Servelt来学习相对路径和绝对路径。
1.HTML
<h1>相对路径</h1>
<a href="">HelloServlet</a>
2.HTML
<h1>相对路径</h1>
<a href="">HelloServlet</a>
- web,xml的配置
<servlet>
<servlet-name>req_demo</servlet-name>
<servlet-class>com.zkk.req_demo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>req_demo</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
1.客户端请求和相应的路径的访问
- 通过访问 1.html 来访问 Servlet
1.直接访问 1.html 与 Servlet
Servelt 访问路径
1.html 访问路径
通过访问 Servlet 与 1.html 的路径可以看出 http://localhost:8080/reqresp_demo/ 这部分是相同的。由此可以看出要想通过 1.html 中的 a 标签 来访问 Servlet 的话,就需要将 dir1/1.html 转换成 hello。
- 通过访问2.html 来访问 Servlet
1.直接访问 2.html 与 Servlet
Servelt 访问路径
2.html 访问路径
通过访问 Servlet 与 2.html 的路径可以看出 http://localhost:8080/reqresp_demo/ 这部分是相同的。由此可以看出要想通过 2.html 中的 a 标签 来访问 Servlet 的话,就需要将 2.html 转换成 hello。
- 根据当前资源路径 与 目标资源路径,寻找相对位置关系,通过 . (当前目录) 和 … (上一级目录) 访问目标资源。
2.服务器端请求和相应的路径的访问
1.html的绝对路径的访问和 2.html的绝对路径的访问
这样访问的弊端是端口固定了,如果我们换个端口进行访问的话就访问不了。
这样访问的好处是不固定端口,可以改变端口来进行访问。
- 服务器端跳转,通过访问 2.html 跳转到 1.html页面
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("doGet被访问了");
//http://localhost:8080/reqresp_demo/dir1/1.html
request.getRequestDispatcher("/dir1/1.html").forward(request, response);
}