zoukankan      html  css  js  c++  java
  • servlet路径跳转的学习

    Servlet的路径跳转有多种,今天就简单的列举一下。

    首先是使用超链接路径直接访问,其中分为相对路径和绝对路径。

    public class RecServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            out.println("-Post");
            System.out.println("Post...");
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            response.setContentType("text/html;charset = utf-8");
            PrintWriter out = response.getWriter();
            out.println("-Get");
            System.out.println("Get...");
        }
    }
       <servlet>
            <servlet-name>RecServlet</servlet-name>
            <servlet-class>servlet.RecServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>RecServlet</servlet-name>
            <url-pattern>/servlet/RecServlet</url-pattern>
        </servlet-mapping>

    这是简单的servlet代码和web.xml的配置文件代码。

    其中相对路径和绝对路径的跳转代码如下所示。这是直接对servlet的url访问,使用的都是doGet()。

      <a href="servlet/RecServlet">相对路径get链接</a><br><br>
      <a href="<%=path%>/servlet/RecServlet">绝对路径</a>

    另外还有用form表单进行跳转

     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            // 请求重定向
            //response.sendRedirect(request.getContextPath() + "test.jsp");
            //采用服务器内部跳转。目前是相对路径
            //request.getRequestDispatcher("test.jsp").forward(request,response);
            //这是绝对路径
            request.getRequestDispatcher("/test.jsp").forward(request,response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doPost(request,response);
        }
    <servlet>
            <servlet-name>Servlet</servlet-name>
            <servlet-class>servlet.Servlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>Servlet</servlet-name>
            <url-pattern>/servlet.do</url-pattern>
        </servlet-mapping>

    servlet的代码和配置代码如上。

    form表单的代码如下。

     <form method="post" action="servlet.do">
       <input type="submit">
     </form>

    form的跳转也是分相对路径和绝对路径的,如果知道servlet的具体配置和当前页面的关系,还是尽量使用绝对路径,简单页面两者基本都行,但如果在复杂页面中相对路径链接跳来跳去很容易弄乱,到时候报错也非常难找。

    如果需要跳转的页面在项目目录中,而当前页面在子项目中,可用下面的代码先寻找根目录再找想要跳转的链接。

    request.getRequestDispatcher("../test.jsp").forward(request,response);


    如果有遗漏欢迎来补充,我也算是新手,还要更加努力。
  • 相关阅读:
    函数与宏定义实验报告
    C语言作业3
    循环结构课后反思
    C语言作业2
    C程序设计实验报告
    百分制成绩五级分制输出--二次作业
    第九章 结构体与共用体
    第八章 指针实验
    第七章 数组实验
    第六章 函数和宏定义实验(2)
  • 原文地址:https://www.cnblogs.com/hou0907/p/9517166.html
Copyright © 2011-2022 走看看