带包的servlet在url中多次复制包

时间:2016-02-13 14:11:46

标签: jsp servlets

编辑:我第一次设置servlet时没有任何问题,一切正常,当我提交它时,正确加载结果。副本显示了如何设置xml和jsp,我以相同的方式设置它们。如果我没有填充它们,一旦我正常重试,但第二次不管它是否正确,网址变为...... / one / one / main,结果为404。 如果我将xml的url模式设置为没有包的类名(在示例 / servlet 中),则servlet甚至不会在第一次正确的尝试时启动。无论url模式和从表单引用,在url模式上我都有 / one / Main ,在表单 one / Main 上。在副本中,我尝试的任何形式的示例都会在提交后生成404。 我试图删除xml servlet配置并使用servlet中的@WebServlet( @WebServlet(description =“Main”,urlPatterns = {“/ one / Main”})),我有同样的问题,第一次工作,第二次尝试它是一个/一个/主要在网址

在这个简单的servlet中,每当我使用一个包时,当我第二次不填充两个输入文本字段时,它会将URL更改为 ../ one / one / Main

public void doPost(HttpServletRequest request
        , HttpServletResponse response) throws ServletException, IOException{

    String action = request.getParameter("action");
    String url = "/index.jsp";
    if(action==null)
        action="join";

    if(action.equals("join"))
        url="/index.jsp";
    else if(action.equals("ok")){
        String fName = request.getParameter("firstName");
        String sName = request.getParameter("secondName");
        if(fName==null||sName==null||fName.equals("")||sName.equals("")){
            url = "/index.jsp";
            request.getSession().setAttribute("message"
                    , "Please fill all the fields");
        }
        else{
            url = "/thanks.jsp";
            request.getSession().setAttribute("user"
                    , new User(fName, sName));
        }
    }
    getServletContext().getRequestDispatcher(url)
        .forward(request, response);
}

jsp表单部分

<form action="one/Main" method="post">..</form>

xml servlet mapping

<servlet>
  <servlet-name>Main</servlet-name>
  <servlet-class>one.Main</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>Main</servlet-name>
  <url-pattern>/one/Main</url-pattern>
</servlet-mapping>

我试图复制 one 包之外的类,并相应地重新配置表单标签和xml,此时它完美地工作,我可以错过填写字段我想要多少次,它将继续使用消息重新加载正确的页面,但是当我运行时,一旦servlet和用户 javabean在一个包内并错过输入两次,网址更改为双包/主,我有一个404。

0 个答案:

没有答案