1.sevlet获取表单数据

在很多的情况下,我们需要在浏览器,Web服务器和后台程序之间传递数据。浏览器使用两种方法可将这些信息传递到Web服务器,分别为Get方法和Post方法。

2.Get方法,Post方法

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

页面和已编码的信息中间用?字符分隔,如下所示:

http://www.news.com/news?newsid=5

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

3.servlet获取数据的几种方法

  • getParameter():您可以调用 request.getParameter() 方法来获取表单参数的值。
  • getParameterValues():如果参数出现一次以上,则调用该方法,并返回多个值,例如复选框。
  • getParameterNames():如果您想要得到当前请求中的所有参数的完整列表,则调用该方法。

下面我们用servlet 实现一个注册的小功能,在login.jsp表单中获取数据,最后在hello.jsp打印出来

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="loginServlet" method="post">
用户名:<input type="text" name="username"/><br>
密码:<input type="password" name="password"/><br>
性别:<input type="radio" name="sex" value="男"/>男
<input type="radio" name="sex" value="女"/>女<br>
爱好:<input type="checkbox" name="hobby" value="篮球"/>篮球
<input type="checkbox" name="hobby" value="羽毛球"/>羽毛球
<input type="checkbox" name="hobby" value="网球"/>网球<br>
所在城市:<select name="city"><option>----请选择----</option><option value="baijing">北京</option><option value="shanghai">上海</option><option value="hainan">海南</option></select><br><input type="submit" value="点击注册"/>
</form></body>
</html>

LoginServlet.java

package com.demo.servlet;import java.io.IOException;
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 javax.servlet.http.HttpSession;import com.demo.JavaBean.User;public class loginServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");//获取username,password等值String username=request.getParameter("username");String password=request.getParameter("password");String sex=request.getParameter("sex");String[] hobbys=request.getParameterValues("hobby");String[] city=request.getParameterValues("city");// 创建User对象,把获取的值添加到这个对象User user=new User();user.setUsername(username);user.setPassword(password);user.setSex(sex);user.setHobby(hobbys);//获取session对象,把User对象存到session中HttpSession session=request.getSession();session.setAttribute("user", user);//重定向到hello.jsp页面response.sendRedirect(request.getContextPath()+"/hello.jsp");}}

hello.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<table border="1" width="200" cellpadding="0" cellspacing="0"><tr><th>用户</th><th>${sessionScope.user.username}</th></tr><tr><th>性别</th><th>${sessionScope.user.sex}</th></tr><tr><th>爱好</th></tr><tr><th>${sessionScope.user.hobby[0]}</th><th>${sessionScope.user.hobby[1]}</th></tr></table>
</body>
</html>

User.java

package com.demo.JavaBean;import javax.swing.Spring;public class User {private String username;private String password;private String sex;private String[] hobby;private Spring city;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String[] getHobby() {return hobby;}public void setHobby(String[] hobby) {this.hobby = hobby;}public Spring getCity() {return city;}public void setCity(Spring city) {this.city = city;}public User() {super();// TODO Auto-generated constructor stub}}

web.xml

配置servlet

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"><display-name>servletdemo</display-name><servlet><servlet-name>login</servlet-name><servlet-class>com.demo.servlet.loginServlet</servlet-class></servlet><servlet-mapping><servlet-name>login</servlet-name><url-pattern>/loginServlet</url-pattern></servlet-mapping>
</web-app>

servlet获取表单数据相关推荐

  1. 观看慕课老师milanlover视频Tomcat装在Servlet的三种情况+Servlet获取表单数据+Servlet相对路径

    在src新建TestServlet1: package servlet;import java.io.IOException; import java.io.PrintWriter;import ja ...

  2. 用Servlet获取表单数据

    1 //accept.jsp 2 package servlets; 3 4 import java.io.*; 5 import javax.servlet.*; 6 import javax.se ...

  3. JSP简单练习-用Servlet获取表单数据

    // javaBean代码 package servlet;import java.io.*;import javax.servlet.*; import javax.servlet.http.*;p ...

  4. 使用 Servlet 读取表单数据

    Servlet 处理表单数据,这些数据会根据不同的情况使用不同的方法自动解析: getParameter():可以调用 request.getParameter() 方法来获取表单参数的值. getP ...

  5. PHP获取表单数据的方法有几种,如何实现PHP获取表单数据与HTML嵌入PHP脚本

    如何实现PHP获取表单数据与HTML嵌入PHP脚本 导语:如何实现PHP获取表单数据与HTML嵌入PHP脚本,下面是小编给大家提供的操作讲解,大家可以参考阅读,更多详情请关注应届毕业生考试网. 常用的 ...

  6. react如何获取表单数据

    react如何获取表单数据? 分为两种情况:第一种是每次输入都会更新状态第二种是只有用到的时候才获取(会用大量的ref,不推荐) 这里主要介绍第一种 //这是我们要操作的数据state = {resu ...

  7. python获取表单数据的代码_使用flask和python从html表单获取表单数据

    我正在尝试在按下submit时从文本字段中获取表单数据,以便将其放入json格式并作为另一个页面访问json数据,该页面将是localhost:5000/info.每次我试图用request.form ...

  8. 微信小程序之获取表单数据

    前言:微信小程序中很多地方运用到了表单,很多时候我们需要把表单中的内容提取出来返回给后台,这里我随便写了一点 注意点: 1.所有的input  textarea button全部包含在form表单元素 ...

  9. JSP简单练习-获取表单数据

    在JSP中,服务器端程序与客户端交互最常用的方法就是采用表单提交数据.表单提交的方法主要有两种,一种是get方法,另一种是post方法,两者最大的区别:使用get方法提交的数据会显示在浏览器的地址栏中 ...

最新文章

  1. java 接口 泛型示例,java泛型接口实现示例
  2. IOS – OpenGL ES 调节图像单色 GPUImageMonochromeFilter
  3. ABP之展现层(Datatables分页)
  4. C++STL之fill()函数使用方法
  5. 手动挂载USB/光驱步骤
  6. python里面Dataset干嘛的_用 Python 对成绩分类汇总!
  7. spring 跨域 CORS (Cross Origin Resources Share) 跨域
  8. Atitit  循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate).
  9. 禾川Q1系列PLC官方教程
  10. python+pygame安装教程win8
  11. 初中参观机器人博物馆的作文_参观足球机器人实验室_550字
  12. 重置计算机的本地策略,手把手教你win10系统本地组策略重置恢复默认的详细方案...
  13. 西电网络攻防大赛--渗透测试第五题
  14. 转换到coff期间_error LNK1123: 转换到 COFF 期间失败
  15. Photoshop创意设计手法14点(转)
  16. 头条App项目测试实战(七)实名认证功能用例设计
  17. 76篇 ICCV 2019 论文实现代码
  18. 前端和Java,学哪个好?
  19. html 纵向滚动条,css设置纵向滚动条
  20. 彻底解决“你的时钟快了”问题

热门文章

  1. 2020计算机考研院校推免,2020考研:热门院校推免比例超90%?他们说尝试了就不后悔!...
  2. 运营商网络中的在线加密(一)
  3. QEMU + ARMv8 环境搭建
  4. oracle解决00302,oracle exp出现ORA-00302:必须说明SET_NO_OUTLINES 组件 解决办法
  5. 题解 guP3956 【棋盘】
  6. 《LPMM》——Chapter1
  7. dex字符串解密_十一、Dex加解密
  8. 蒙提·派森的飞行马戏团 的风格 包括音乐和书籍
  9. Kubernetes使用Prometheus全方位监控(李作强)
  10. 刚毕业就年薪税后100k,却也同样顶不住这个压力!