servlet_04 servlet表单

Servlet表单数据:

有些时候,需要将数据从浏览器传递给web服务器,最终传递给后台程序。浏览器使用两种方法将数据传递给web服务器,GET方法和POST方法。


GET方法:

GET方法向页面请求发送已编码的用户信息。页面和编码信息间用?隔开   格式如:

http://www.text.com/hello?key1=value1&key2=value2

GET方法是默认的从浏览器向服务器传递信息的方法。它会产生一个很长的字符串,出现在浏览器的地址栏中。如果您要向服务器传递的是密码或其他的敏感信息,请不要使用 GET 方法。GET 方法有大小限制:请求字符串中最多只能有 1024 个字符。

Servlet使用doGet()方法处理GET请求。

POST方法:

POST 方法打包信息的方式与 GET 方法基本相同,但是 POST 方法不是把信息作为 URL 中 ? 字符后的文本字符串进行发送,而是把这些信息作为一个单独的消息。消息以标准输出的形式传到后台程序,您可以解析和使用这些标准输出。Servlet 使用 doPost() 方法处理这种类型的请求。


使用Servlet读取表单的数据:

getParameter(String);   调用request.getParameter(String)获取表单参数的值

getParameterValues();  如果参数出现一次以上,则调用该方法,并返回参数的多个值,例如复选框

getParameterNames(); 获取当前请求中参数的所有列表


使用URL的GET方法实例:

使用 GET 方法向 HelloForm 程序传递两个值。

http://localhost:8080/TomcatTest/HelloForm?name=百度一下&url=www.baidu.com

package MyServlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.io.IOException;

/**
 * Created by 1192126986 on 2017/1/14.
 */
@WebServlet(name = "HelloForm")
public class HelloForm extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public HelloForm(){
        super();
    }
         //处理POST请求方法
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);

    }
         //处理GET请求方法
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置响应文档类型为文本文档HTML
        response.setContentType("text/html");
        //获取文本输出流打印对象,用于向响应文档打印响应信息
        PrintWriter out=response.getWriter();

        String title="使用GET方法处理表单";
        //处理中文
        //(1)就是将字符集改成UTF-8的形式
        //(2)字符编码转换...因为tomcat容器默认采用了..iso-8859-1的编码方式
        String name=new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8");
        String docType="<!DOCTYPE html> \n";
        out.println(docType +
                "<html>\n" +
                "<head><title>" + title + "</title></head>\n" +
                //bgcolor背景颜色。text文本颜色
                "<body bgcolor=\"#f0f0f0\">\n" +
                //align 属性规定标题的水平对齐方式
                "<h1 align=\"center\">" + title + "</h1>\n" +
                "<ul>\n" +
                // <ul> 标签定义无序列表 <li> 标签定义列表项目 <b> 标签规定粗体文本
                "  <li><b>站点名</b>:"
                + name + "\n" +
                "  <li><b>网址</b>:"
                + request.getParameter("url") + "\n" +
                "</ul>\n" +
                "</body></html>");

    }
}


在web.xml创建:

<?xml version="1.0" encoding="UTF-8"?>
<web-app >
    
    <servlet>
        <servlet-name>HelloForm</servlet-name>
        <servlet-class>MyServlet.HelloForm</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>HelloForm</servlet-name>
        <url-pattern>/HelloForm</url-pattern>
    </servlet-mapping>
</web-app>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值