Servlet 学习4 GET方法

知识来源

RUNNOOB.COM

Get方法

  • GET 方法向页面请求发送已编码的用户信息。页面和已编码的信息中间用 ? 字符分隔。例如:

    http://localhost:8080/t/HelloForm?name=Form小可爱&url=www.nonameming.com

  • GET 方法是默认的从浏览器向 Web 服务器传递信息的方法,它会产生一个很长的字符串,出现在浏览器的地址栏中;

  • 不适合传密码等敏感信息;

  • GET 方法有大小限制:请求字符串中最多只能有 1024 个字符;

  • 这些信息使用 QUERY_STRING 头传递,并可以通过 QUERY_STRING 环境变量访问,Servlet 使用 doGet() 方法处理这种类型的请求。

Servlet读取表单数据例子

Servlet:

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.IOException;
import java.io.PrintWriter;

/**
 * @author: runnob
 * @printer: ming
 * Servlet Implementation Class HelloForm
 */
@WebServlet("/HelloForm")
public class HelloForm extends HttpServlet {
    private static final long serialVerisonUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloForm()
    {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest, HttpServletResponse)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        // 设置响应内容类型
        response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");

        PrintWriter out = response.getWriter();
        String title = "使用 GET 方法读取表单数据";

        //处理中文
        String name =new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF8");
        String docType = "<!DOCTYPE html> \n";
        out.println(docType +
                "<html>\n" +
                "<head><title>" + title + "</title></head>\n" +
                "<body bgcolor=\"#f0f0f0\">\n" +
                "<h1 align=\"center\">" + title + "</h1>\n" +
                "<ul>\n" +
                "  <li><b>站点名</b>:"
                + name + "能不能显示" + "\n" +
                "  <li><b>网址</b>:"
                + request.getParameter("url") + "\n" +
                "</ul>\n" +
                "</body></html>");
    }

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

个人xml配置 — 因人而异

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>HelloForm</servlet-name>
        <servlet-class>HelloForm</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloForm</servlet-name>
        <url-pattern>/HelloForm</url-pattern>
    </servlet-mapping>
</web-app>

表单html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>HelloForm</title>
</head>
<body>
<form action="HelloForm" method="GET">
网址名:<input type="text" name="name">
<br />
网址:<input type="text" name="url" />
<input type="submit" value="提交" />
</form>
</body>
</html>

总结

  • 要熟悉创建、编码、配置、部署这四步。

  • 如何创建项目之前的博客有发,多重复就记住了。

  • 编码中遇到了一些方法:

    1.servlet:**getParameter():**调用 request.getParameter() 方法来获取表单参数的值;

    2.html:form 中 的 action 指向我的 Servlet,method 表明它是 GET 方法;网址名 name 和 网址 url 与 HelloForm 中的 String 名对应。

  • 配置因人而异,和自己的创建时的文件结构有关,错误时 IDE 会报出,这点我还不是很熟练;

  • 本地部署的话,就是 IDEA 中 Run 自己的项目了,记得看 IDE 有没有报错信息,我看的是 IDEA 中的 Output,记得第一次部署报错就是看 Output 找到并改正的。接下来就是去自己的浏览器输入相应地址了。拿这个例子和我的电脑来讲 **http://localhost:8080/t/HelloForm?name=Form小可爱&url=www.nonameming.com ** 可以直接访问 HelloForm 中写好的界面,我一开始直接输入 http://localhost:8080/t/HelloForm 浏览器 GET 不到他它想要的报NullPointerException 我还是先把 name 设为 固定的一个 String 访问到、看懂了自己照敲的代码才明白自己逻辑上的错误的。所以说基础知识还是挺重要的哈。在这之后的东西我都了解过一点点,所以没出什么问题。那今天就先总结到这里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值