关于servlet和jsp路径表达方式的不同
来源:互联网 发布:电信4g是什么网络模式 编辑:程序博客网 时间:2024/05/16 01:09
在用servlet+jsp开发中,不管是服务器端跳转、客户端跳转还是表单请求路径,在servlet和jsp中路径的表达是不同的。
声明:
1、项目名为zzzz,端口号改为默认(80)
2 <servlet-mapping>
<servlet-name>X</servlet-name>
<url-pattern>/servlet/X</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>n</servlet-name>
<url-pattern>/servlet/n</url-pattern>
</servlet-mapping>
3、jsp页面全部在WebRoot(根)目录下
4、绝对路径指的是和当前页(jsp或者servlet)相对位置,例如下列表单请求A:中的相对路径表示index1.jsp和index.jsp在同一个(物理)位置
一、在jsp中
1、表单请求
A:在index.jsp请求index1.jsp
用相对路径:<form action="index1.jsp">
用绝对路径:<form action="/zzzz/index1.jsp">
B:在index.jsp请求servlet
用相对路径:<form action="servlet/n">
用绝对路径:<form action="/zzzz/servlet/n">
2、客户端跳转
A:超链接
相对路径:<a href="index1.jsp">跳转</a>或者<a href="servlet/n">跳转</a>
绝对路径:<a href="/zzzz/index1.jsp">跳转</a>或者<a href="/zzzz/servlet/n">跳转</a>
B:sendRedirect方法
相对路径:response.sendRedirect("index1.jsp")或者response.sendRedirect("servlet/n");
绝对路径:response.sendRedirect("/zzzz/index1.jsp")或者response.sendRedirect("/zzzz/servlet/n");
3、服务器端跳转
相对路径:request.getRequestDispatcher("index1.jsp").forward(request,response);
request.getRequestDispatcher("servlet/n").forward(request,response);
绝对路径:request.getRequestDispatcher("/index1.jsp").forward(request,response)注意:不是request.getRequestDispatcher("/zzzz/index1.jsp").forward(request,response);
request.getRequestDispatcher("/servlet/n").forward(request,response);
this.getServletContext().getRequestDispatcher("/index1.jsp").forward(request,response);
总结:除了服务器端跳转外,相对路径比绝对路径多了/zzzz
二、在servlet中
1、客户端跳转
A:超链接
相对路径:PrintWriter out=response.getWriter();
out.println("<a href='../index.jsp'>跳转</a>");
或者
PrintWriter out=response.getWriter();
out.println("<a href='X'>跳转</a>");
绝对路径:PrintWriter out=response.getWriter();
out.println("<a href='/zzzz/index.jsp'>跳转</a>");
或者
PrintWriter out=response.getWriter();
out.println("<a href='/zzzz/servlet/X'>跳转</a>");
B:sendRedirect方法
相对路径:response.sendRedirect("../index1.jsp")或者response.sendRedirect("X");
绝对路径:response.sendRedirect("/zzzz/index1.jsp")或者response.sendRedirect("/zzzz/servlet/X");
2、服务器端跳转
相对路径:request.getRequestDispatcher("../index.jsp").forward(request,response);
request.getRequestDispatcher("X").forward(request,response);
request.getRequestDispatcher("./X").forward(request,response);
绝对路径:request.getRequestDispatcher("/index.jsp").forward(request,response)注意:(不是request.getRequestDispatcher("/zzzz/index.jsp").forward(request,response);)
request.getRequestDispatcher("/servlet/X").forward(request,response);
this.getServletContext().getRequestDispatcher("/index.jsp").forward(request,response);
总结:
1、 绝对路径
无论是在jsp亦或在servlet中,除了服务器端跳转的绝对路径不用写上/zzzz(项目名)外都是正常的绝对路径
2、相对路径
无论是jsp还是servlet中,都是正常的相对路径
3、有意思的是,在jsp中的服务器端跳转时,路径index1.jsp,./index1.jsp,/index1.jsp的效果是一样,前两个是相对路径,第三个是绝对路径
4、注意,这里所说的服务器端跳转不仅仅是用request.getRequestDispatcher().forward()方法,也可以是<jsp:forward page=""></jsp:forward>
- 关于servlet和jsp路径表达方式的不同
- 颜色的不同表达方式
- servlet和jsp路径
- J2ee关于Servlet与JSP的路径问题
- 关于servlet中转发jsp的路径问题
- 关于java servlet和jsp的区别
- 关于Servlet和JSP技术的概述
- 关于jsp和servlet的区别
- 关于jsp servlet和jfinal的基础知识
- servlet 和 jsp 服务器端和客户端的相对路径
- JSP和servlet之间的相对路径和绝对路径
- Servlet和jsp对外访问路径的配置的…
- html和jsp的相对路径不同【注意】
- jsp 和 Servlet中获取路径的各种方法总结
- Jsp和Servlet的一些获得路径方法
- 关于不同的Servlet配置
- JSP、Servlet中的相对路径和绝对路径
- JSP、Servlet中的相对路径和绝对路径
- 10.1中SOE新特性
- 2012年总结与2013年计划
- Java中的RTTI和反射机制
- Your First Step to the Silverlight Voice/Video Chatting Client/Server
- 三年规划(2012-2014年)
- 关于servlet和jsp路径表达方式的不同
- set intersection问题求解(python版)
- android in practice_Preparing for configuration changes(MyMovies project)
- hdu 2492
- 基于jQuery的一个简单聊天室
- soj 1162. Sudoku[Special judge] 1317. Sudoku
- 解决lein在Administrator目录的方法
- without base relocation /fixed:no
- Keil中预定义的字符串