Methods of the ServletRequest interface.

创建好Servlet项目后

编写index.html

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <form action="data">
            <table border="0">
                    <tbody>
                        <tr>
                            <td>
                                Enter Your First Name: 
                            </td>
                            <td>
                                <input type="text" name="txtFirstName" required>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Enter Your Family Name: 
                            </td>
                            <td>
                                <input type="text" name="txtFamilyName" required>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Enter Your Email: 
                            </td>
                            <td>
                                <input type="email" name="Email" required>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Enter Your Phone:
                            </td>
                            <td>
                                <input type="tel" name="Phone" required>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Choose Your Hobbies:
                            </td>
                            <td>
                                <input type="checkbox" name="Hobbies" value="Reading">Reading
                                <input type="checkbox" name="Hobbies" value="Dancing">Dancing
                                <br>
                                <input type="checkbox" name="Hobbies" value="Singing">Singing
                                <input type="checkbox" name="Hobbies" value="Swimming">Swimming
                            </td>
                        </tr>
                        <tr>
                            <td  colspan="2" style="text-align: center"><input type="submit" value="Register" /></td>
                        </tr>
                    </tbody>
            </table>
        </form>
    </body>
</html> 

运行结果如下图:

 

编写servletpkg包下面的MyServlet.java ,如下:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package servletpkg;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author 小罗
 */
public class MyServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            PrintWriter out = response.getWriter();
            response.setContentType("text/html");
            
            //Use getParameter()
            String firstname = request.getParameter("txtFirstName");
            String familyname = request.getParameter("txtFamilyName");
            String email = request.getParameter("Email");
            String phone = request.getParameter("Phone");
            
            //Use getParameterValues()
            String[] hobbies = request.getParameterValues("Hobbies");
            
            out.println("<h3>Use getParameter()</h3>");
            out.println("Name : " + firstname + " " + familyname);
            out.println("<br>Email : " + email);
            out.println("<br>Phone : " + phone);
            
            out.println("<h3>Use getParameterValues()</h3>");
            out.println("<br>Hobbies : ");
            for(int i = 0; i < hobbies.length; i++){
                out.println(" " + hobbies[i]);
            }
            
            
            //Use getParameterNames()
            out.println("<h3>Use getParameterNames()</h3>");
            Enumeration en = request.getParameterNames();
            while(en.hasMoreElements()){
                String param = (String)en.nextElement();
                
                out.println("<br>Parameter Name : "+param);
                out.println("Parameter Value : "+request.getParameter(param));
            }


            out.println("<h3>Reading client address</h3>");
            out.println("Address:"+request.getRemoteAddr());
            out.println("<br>Client:"+request.getRemoteHost());
            out.println("<br>User:"+request.getRemoteUser());
           
            
            out.println("<h3>Reading server address</h3>");
            out.println("<br>Address:"+request.getLocalAddr());
            out.println("<br>Server:"+request.getLocalName());

    }

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

}

 运行完index.html文件后,填写信息,点击注册,跳转如下:

讲解: 

(一)、index.html部分

     1. form表单中的action属性:将form表单中的数据提交到MyServlet,之后servlet通过requset 域对象来获取对应的参数值。

     2. 关于form表单的method属性

          method属性的主要作用是设置表单数据的提交方式,method 的属性值有get和 post

          <form action="data" method="get">  /  <form action="data" method="post">

          method默认值是get,没写也是默认为get。

     3. 关于复选框checkbox实现多选框的效果,而且选中后再次点击可以取消。

(二)、MyServlet.java部分

1. (首先前面form表单的方法是get,所以在doGet里面写)

2. request.getParameter(String paramName),即参数名称

3. String[ ] getParameterValues(String paramName)

4. 因为 hobbies 是一个数组,所以输出的使用需要是使用循环。注意 i < hobbies.length 这里,不能等于,因为 i 是从 0 开始的。

5. hasMoreElements()方法:用于检查是否存在更多元素。

    nextElement()方法:如果还有更多的元素,则取出枚举的下一个元素。

    因为 en.nextElement() 返回的是对象,所以得进行类型转换,转换为 String 类型,即     (String) en.nextElement 。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值