简单易懂的Servlet路径问题
关于servlet路径,我看了一下网上别人的博客园,发现都有一个通病,讲的太专业了,又抓不住关键部分,往往看一眼就不想看第二眼.所以我特地准备了初学者所通识的servlet路径问题.
1.标识符
/jsp 表示回到根目录,这个指的不是你创建的项目的根目录,而是Tomcat中存放你web项目的文件夹目录,慎用!
../jsp 表示退回上一层目录,
2.JSP之间的跳转
例:你webContent目录下又一个文件夹(假设它叫JSP),你要找到webContent下另一个文件夹(假设为test)中的一个JSP(test.jsp)文件,路径你便可以这么写
../test/test.jsp
3.JSP跳转到Servlet中
例:你webContent目录下又一个文件夹(假设它叫JSP),你要找到src中名为com.test包下的一个servlet(假设为TestServlet)文件,你得先配置一下:
Web.xml文件中(复制改名即可)
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>com.test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
JSP中(web.xml中的url-pattern就是为路径服务的,相当于一个别名。应为其在文件夹JSP下,所有要跳出一层;
表单提交:<form action=”../login”><form> 超链接:<a href=”../login”></a>
4.Servlet跳转到另一个Servlet中不需要配置路径啦(跨包,参数直接就是所要传的Servlet的名称)
(注意)传参时以下三个条件必备
request.setCharacterEncoding(“utf-8”);
response.setCharacterEncoding(“utf-8”);
response.setContentType(“text/html;charset=utf-8”);
5.Servlet跳转到JSP中也不需要配置路径,(跨包,参数直接就是所要传的JSP的名称)
例子:传参到author包下的Login.jsp中
request.getRequestDispatcher(“Login.jsp”).forward(request,response);