在servlet中读取表单数据.使用post方法和servlet发布的数据用?q = test1调用

vin*_*nit 8 java post servlets

嘿我正在尝试读取使用post方法发送的servlet中的表单数据.并且servlet被称为OnlineExam?q=saveQuestion.现在servlet正在工作:

public class OnlineExam extends HttpServlet {
protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
if(request.getParameter("q").equals("saveQuestion")){
                /*
                 * Save the question provided with the form as well as save the uploaded file if any.
                 */
                saveQuestion(request);
            }
}

protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
//      doGet(request, response);
        saveQuestion(request);
    }
public String saveQuestion(HttpServletRequest request){         
        System.out.println(request.getParameter("question"));

        return "";

    }       
}
Run Code Online (Sandbox Code Playgroud)

HTML表单:

<form action="OnlineExam?q=saveQuestion" method="post">
        <fieldset>
        <legend>Question</legend>
        <textarea class="questionArea" id="question" name="question">Enter Question.</textarea>
        <br class="clearFormatting"/>               
        <input class="optionsInput" value="optionA" name="optionA" onfocus = "clearValues('optionA')" onblur = "setValues('optionA')"/>
        <br class="clearFormatting"/>

        <input class="optionsInput" value="optionB" name="optionB" onfocus = "clearValues('optionB')" onblur = "setValues('optionB')"/>
        <br class="clearFormatting"/>

        <input class="optionsInput" value="optionC" name="optionC" onfocus = "clearValues('optionC')" onblur = "setValues('optionC')"/>
        <br class="clearFormatting"/>

        <input class="optionsInput" value="optionD" name="optionD" onfocus = "clearValues('optionD')" onblur = "setValues('optionD')"/>
        <br/>
        <input class="optionsInput" value="answer" name="answer" onfocus="clearValues('answer')" onblur="setValues('answer')"/>     
        <input type="submit" value="Save" />
        <input type="reset" value="Cancel" />
        <button style="display: none" onclick="return deleteQuestion()" >Delete</button>
        </fieldset>
        </form>
Run Code Online (Sandbox Code Playgroud)

所以任何人都可以说明如何实际调用servlet.我的意思是控制流是什么,即这个servlet中的东西是如何工作的.

我怎么能在servlet中读取param1.

ps:我不想用get方法发布表单.

ace*_*ace 5

你应该得到的价值q在你doPost不在你doGet.因为你method="post"在servlet中使用then,那doPost就是那个不调用的doGet.删除您的代码,doGet然后将其插入doPost.你doPost必须像下面的代码一样.

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    if(request.getParameter("q").equals("saveQuestion")){
        saveQuestion(request);
    }
}
Run Code Online (Sandbox Code Playgroud)


Jig*_*shi 3

如果您将数据 POST 到 servlet。 doPost将被调用。

在里面doPost()你可以访问请求参数,例如

request.getParameter("param1");
Run Code Online (Sandbox Code Playgroud)