Servlet学习笔记(获取请求数据)

目录

记录一个获取请求数据的测试

DemoInfo.java

web.xml

Username.html

测试:

获取多个值(比如checkbox)

Username.html

DemoInfo.java

测试:


记录一个获取请求数据的测试

在IDEA里做的,已经配置完了所需要的环境。

一共需要写(或修改)三个文件 

DemoInfo.java                web.xml                Username.html

DemoInfo.java

解释的话就不写了 都写在注释里了

public class DemoInfo extends HttpServlet{

    // 这里获取的是表单数据 所以继承了HttpServlet后对 doPost方法进行了重写
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 拿到了数据,得返回给客户端浏览器,所以需要借助IO流
        // 从HttpServletResponse中得到一个PrintWriter;
        // out 就好比一只笔,下面的println就像画的线条画在客户端浏览器上
        PrintWriter out = resp.getWriter();
        //这里getParameter中的参数key会默认把Username.html中的 name的值当做key
        String username = req.getParameter("username");
        out.println("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>");
        out.println("<HTML>");
        out.println("<HEAD><TITLE> username </TITLE></HEAD>");
        out.println("<BODY>");
        // 打印username(输入的值)
        out.println("username:"+username);
        out.println("</BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }
}

web.xml

在这个文件中增加配置

servlet-name 是起名字

servlet-class 写的是这个文件在哪个包

mapping是映射 把 DmoInfo和getinfo.do 对应

这里的话 .do 是习惯写法 表示是运行servlet文件

<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>DemoInfo</servlet-name>
    <servlet-class>com.example.demo1.DemoInfo</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>DemoInfo</servlet-name>
        <url-pattern>/getinfo.do</url-pattern>
    </servlet-mapping>
</web-app>

Username.html

创建一个能写name 并且 提交 的表单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>UsernameTest</title>
</head>
<body>
    <form action="getinfo.do" method="post">
        用户名:<input type="text" name="username">
        <input type="submit" value="Ok">
    </form>
</body>
</html>

测试:

 输入 xdw 点完 ok 的样子 

 但是这个getParameter方法 只能获得单个值        key-value   。


获取多个值(比如checkbox)

Username.html

body中增加一个checkbox 

这里要注意 checkbox的 那么属性一定是一样的

        用户爱好:<input type="checkbox" name="boxname" value="sport" />体育
        <input type="checkbox" name="boxname" value="music" />音乐

DemoInfo.java

增加一个 getParametervalues方法用于获取一个key对应多个value的情形

String[] boxnames = req.getParameterValues("boxname");
        List<String> strings = Arrays.asList(boxnames);
//
        out.println("boxnames:"+strings);

测试:

 单值和多值都返回成功了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值