基于url参数重定向/转发

时间:2015-06-14 17:19:30

标签: java jsp

我设计了3个jsp页面。

index.jsp,login.jsp和newUser。 JSP

的index.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Ho there!</title>
</head>
<body>

This is authorization page.
<br>
<a href="/AgileScrumBoard/index.jsp?action=new">Create a new account</a>
<br>
<a href="/AgileScrumBoard/index.jsp?action=login">Login with the existing</a>
</body>
</html>

newUser和login只是普通的jsp页面。

这里是servlet的方法doGet:

String action=request.getParameter("action");
        if(action.equals("new")){
            response.sendRedirect("/newUser.jsp");
        }else if(action.equals("login")){
            request.getRequestDispatcher("/login.jsp").forward(request, response);
        }else{
            request.getRequestDispatcher("/login.jsp").forward(request, response);
            }       
    }

问题是:为什么当我按下链接时请求调度员没有;转发我/将我重定向到指定的jsp页面?

PS:web.xml

<servlet>
        <servlet-name>Index</servlet-name>
        <jsp-file>/index.jsp</jsp-file>
    </servlet>
    <servlet-mapping>
        <servlet-name>Index</servlet-name>
        <url-pattern>/index.jsp</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>MainController</servlet-name>
        <servlet-class>controller.MainController</servlet-class>
    </servlet>  
    <servlet-mapping>
        <servlet-name>MainController</servlet-name>
        <url-pattern>/index</url-pattern>
    </servlet-mapping>

当我在Tomcat运行我的应用程序时: At_tomcat

2 个答案:

答案 0 :(得分:0)

两个链接都重定向到index.jsp,这是您已经在的页面。而不是/AgileScrumBoard/index.jsp添加您的servlet名称。链接应重定向到servlet,然后servlet将重定向到login.jsp或newUser.jsp

答案 1 :(得分:0)

这是你的index.jsp代码所说的:

<a href="/AgileScrumBoard/index.jsp?action=new">Create a new account</a>
<br>
<a href="/AgileScrumBoard/index.jsp?action=login">Login with the existing</a>
</body>

两个链接都重定向到/AgileScrumBoard/index.jsp 我认为代码应该是:

<a href="yourservleturl?action=new">Create a new account</a>
<br>
<a href="yourservleturl?action=login">Login with the existing</a>
</body>