【问题标题】:Servlet redirection issueServlet 重定向问题
【发布时间】:2015-12-19 11:12:37
【问题描述】:

我在 html 页面上有下拉列表。在提交表单时,我需要将值传递给 servlet。当我从下拉列表中选择红色时,提交表单的 url 框为, http://localhost:8080/sampleapp/%E2%80%9Dcolor.do%E2%80%9D?%94lb%94=%941%94

预期的网址 http://localhost:8080/sampleapp/color.do?color=1

Html 和 web.xml 条目如下所示。有人能找到解决此问题的方法吗?

home.html

<form action=”colors.do” method=”post”>
    Select the colors
    <p>         
        <select name=”color” size=”1” onchange='this.form.submit()'>
            <option value=”red”>1</option>
            <option value=”green”>2</option>
            <option value=”yellow”>3</option>

        </select> <br>
        <br>
    <button type="submit" value="Submit">Submit</button>            
</form>

web.xml

<servlet>
    <servlet-name>color App</servlet-name>
    <servlet-class>com.test.ColorServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>color App</servlet-name>
    <url-pattern>/colors.do</url-pattern>
</servlet-mapping>

<welcome-file-list>
    <welcome-file>home.html</welcome-file>
</welcome-file-list>

小服务程序

public class ColorServlet extends HttpServlet { 
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.getParameter("color"));     
    }
}

【问题讨论】:

    标签: servlets web.xml


    【解决方案1】:

    第一件事是你在你的 html 文件中使用了错误的字符“。将”替换为“。更改选项如下:

            <option value=”red”>1</option>
            <option value=”green”>2</option>
            <option value=”yellow”>3</option>
    

            <option value="1">red</option>
            <option value="2">green</option>
            <option value="3">yellow</option>
    

    所以正确的 html 文件应该是这样的:

    <form action="colors.do" method="post">
        Select the colors
        <p>         
            <select name="color" size="1" onchange='this.form.submit()'>
                <option value="1">red</option>
                <option value="2">green</option>
                <option value="3">yellow</option>
    
            </select> <br>
            <br>
        <button type="submit" value="Submit">Submit</button>            
    </form>
    

    【讨论】:

      【解决方案2】:

      有人能找到解决这个问题的方法吗?

      基本上你有两个问题

      1. 您将字符串颜色(而不是数字表示)作为值传递给选项标签

      2. 当您在 home.html 中提交表单时,此字符 会在 URL 中编码

      要解决此问题,请切换选项标签(绿色)中的值,并在必要时将双引号替换为正确的 "

      【讨论】:

        猜你喜欢
        • 2011-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-19
        • 1970-01-01
        • 2011-02-04
        相关资源
        最近更新 更多