我不能在Servlet网址模式中添加任何目录路径吗?

时间:2019-07-01 12:16:42

标签: java servlets

我当前正在使用/ Main作为默认的url模式。 可以用/ Main2或其他字词替换它,但是我想添加一个目录,例如/ Project / Main。

/ Project路径不是真正存在的,而只是希望/ Main和/ Project / Main以相同的方式工作。

换句话说,希望所描述的路由将调用一个servlet。有办法吗?

ex)172.0.0.1/Project/Main = 172.0.0.1/Main

=>结果:Main_servlet

1 个答案:

答案 0 :(得分:0)

据我所知,您只能以String格式传递给主要知识。这是因为传递给main方法的内容来自System.in,它是通过随机用户输入或诸如管道之类的东西来进行的,从而可以将Strings从一个Java程序传递到另一个Java程序。

话虽如此,您可以做的是在对象类中创建一个方法来解析该对象的String形式,以重新创建该对象的原始版本。

例如:

public class myRectangle
{
     private int length;
     private int width;

     public myRectangle(int inLength, int inWidth)
     {
         this.length = inLength;
         this.width = inWidth;
     }

     // the rest of your class
     public String toString()
     {
          return "[" + length + ", " + width + "]";
     }

     public static Rectangle parseString(String input)
     {
          int firstBracketIndex;
          int commaIndex;
          int lastBracketIndex;

          firstBracketIndex = 0;
          commaIndex = input.indexOf(",");
          lastBracketIndex = input.length() - 1;

          String aWidth = input.substring(firstBracketIndex, (commaIndex - 1));
          String aLength = input.substring((commaIndex + 2), lastBracketIndex);

          return new Rectangle(Integer.parseInt(aWidth), Integer.parseInt(aLength));
      }

 }

类似的事情可以解决您的问题。 (我的代码中可能会有一些错误,而且我写的时间很长,所以很明显,但是您明白了!)

关键是要创建一个与toString方法相反的解析方法,以便可以从命令行中删除类的副本。