Home Web Front-end HTML Tutorial Form.action value transfer problem

Form.action value transfer problem

Aug 31, 2016 am 08:41 AM

When you enter the url through the browser address bar and request resources through ?, the parameter after ? is called the "query string", which will trigger the doGet() of the background Servlet, because the direct access method through the browser address bar is the GET method .


Let’s take a look at the impact of form’s method attribute on parameter passing.

Original form:








The first case:
When the action attribute of the form above is not written, directly clicking the "Submit" button will trigger the submit event of the form. This At this time, you can find through the console of Firefox browser:
The message header contains the following key information: (1) The request address is followed by '?' to pass parameters (2) The request method is GET




Parameter information: Query string




When specifying the method attribute of the form:







Second case:
The message header contains the following key information: (1) Behind the request address No parameters are passed (2) The request method is POST



Parameter information: Form data




The response of the above two methods is to display the current page after refreshing. Because the form does not specify the action attribute, the default submitted address is the current page.

Now access the Servlet by specifying the action attribute to learn more about the method attribute.

TestServlet.java core source code:

@WebServlet("/servlet/TestServlet")
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Servlet Exception , IOException {
response.getWriter().print("doGet()");
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().print("doPost( )");
}

}


The third case: method="get" action="/test/servlet/TestServlet"







The above message header and parameters are the same as the first case, but the background responds with a doGet().





The fourth case: method="post" action="/test/servlet/TestServlet"





< /form>

The above message header and parameters are the same as the first case, but the background responds with a doPost().





TestServlet.java Add the code to get parameters:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String param = request.getParameter("type");
response.getWriter().print ("doGet() get type="+param);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String param = request.getParameter("type");
response.getWriter( ).print("doPost() get type="+param);
}


The fifth case, method="get" passes the parameter action = "/servlet/TestServlet?type=01" after the action, and at the same time Get the parameters in the background Servlet

The browser address bar at this time: http://localhost:8080/test/servlet/TestServlet?username=



It can be found that the doGet() in the background cannot obtain the parameter type.
At the same time, it is found that the type parameter is not added to the "query string"






The sixth case, method="post" passes the parameter action = "/servlet/TestServlet?type=01" after the action, and obtains the parameters in the background Servlet at the same time




You can find that the doPost() in the background can get the parameter type.
At the same time, the parameter column is a little different from before:
There is both "query string" and "form data"




So the above gives us a revelation, that is, when passing parameters after the action of the form, we need to manually specify the method="post" of the form, otherwise we will not be able to get the parameters behind the ?;
Thinking Misunderstanding: Previously we passed parameters through the URL in the browser address bar, also through? To achieve this, it ultimately calls the doGet() method, so we think that the action in the form (default method="get") can be passed? Come and pass on the ginseng.


Final reason: (Personal summary) When submitting form data in the get method, the URL will be reorganized. It will only assemble the form data into a "query string" and submit it to the URL specified in the action of the form, so the original The parameters passed in the ? method will not be submitted because the URL is lost after reorganization.

But when the form is submitted in post mode, it will save the form data and the parameters after ? separately, and submit them together to the url specified by the action in the form.

(reference resource) HTML Form: why action can't have get value in it?
http://stackoverflow.com/questions/3548795/html-form-why-action-cant-have-get-value-in -it




Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Is HTML easy to learn for beginners? Is HTML easy to learn for beginners? Apr 07, 2025 am 12:11 AM

HTML is suitable for beginners because it is simple and easy to learn and can quickly see results. 1) The learning curve of HTML is smooth and easy to get started. 2) Just master the basic tags to start creating web pages. 3) High flexibility and can be used in combination with CSS and JavaScript. 4) Rich learning resources and modern tools support the learning process.

The Roles of HTML, CSS, and JavaScript: Core Responsibilities The Roles of HTML, CSS, and JavaScript: Core Responsibilities Apr 08, 2025 pm 07:05 PM

HTML defines the web structure, CSS is responsible for style and layout, and JavaScript gives dynamic interaction. The three perform their duties in web development and jointly build a colorful website.

Understanding HTML, CSS, and JavaScript: A Beginner's Guide Understanding HTML, CSS, and JavaScript: A Beginner's Guide Apr 12, 2025 am 12:02 AM

WebdevelopmentreliesonHTML,CSS,andJavaScript:1)HTMLstructurescontent,2)CSSstylesit,and3)JavaScriptaddsinteractivity,formingthebasisofmodernwebexperiences.

Gitee Pages static website deployment failed: How to troubleshoot and resolve single file 404 errors? Gitee Pages static website deployment failed: How to troubleshoot and resolve single file 404 errors? Apr 04, 2025 pm 11:54 PM

GiteePages static website deployment failed: 404 error troubleshooting and resolution when using Gitee...

What is an example of a starting tag in HTML? What is an example of a starting tag in HTML? Apr 06, 2025 am 12:04 AM

AnexampleofastartingtaginHTMLis,whichbeginsaparagraph.StartingtagsareessentialinHTMLastheyinitiateelements,definetheirtypes,andarecrucialforstructuringwebpagesandconstructingtheDOM.

How to use CSS3 and JavaScript to achieve the effect of scattering and enlarging the surrounding pictures after clicking? How to use CSS3 and JavaScript to achieve the effect of scattering and enlarging the surrounding pictures after clicking? Apr 05, 2025 am 06:15 AM

To achieve the effect of scattering and enlarging the surrounding images after clicking on the image, many web designs need to achieve an interactive effect: click on a certain image to make the surrounding...

HTML, CSS, and JavaScript: Essential Tools for Web Developers HTML, CSS, and JavaScript: Essential Tools for Web Developers Apr 09, 2025 am 12:12 AM

HTML, CSS and JavaScript are the three pillars of web development. 1. HTML defines the web page structure and uses tags such as, etc. 2. CSS controls the web page style, using selectors and attributes such as color, font-size, etc. 3. JavaScript realizes dynamic effects and interaction, through event monitoring and DOM operations.

How to implement adaptive layout of Y-axis position in web annotation? How to implement adaptive layout of Y-axis position in web annotation? Apr 04, 2025 pm 11:30 PM

The Y-axis position adaptive algorithm for web annotation function This article will explore how to implement annotation functions similar to Word documents, especially how to deal with the interval between annotations...

See all articles