自动抓取网页数据(servlet自动获取前端页面及代码1)提交数据介绍)

优采云 发布时间: 2022-03-12 00:14

  自动抓取网页数据(servlet自动获取前端页面及代码1)提交数据介绍)

  servlet自动获取前端页面jsp提交数据

  下面是我在学习过程中写的一个工具类,因为前端页面提交参数太多,后台servlet封装实体类太麻烦。应用于jsp/servlet数据提交后基于MVC+MyBatis的数据持久化过程。这里只介绍从页面提交数据封装对象到servlet(控制器)的过程。MVC+MyBatis访问数据库这里就不介绍了。

  1.前端页面和代码

  1)前端表单页面构建(用来测试简单构建的页面有点丑~)

  

  2)前端jsp页面代码

  这里使用ajax异步get来移除缓存并提交表单。请以传统方式测试自己。我已经测试过了,这里就不展示了。

  注意:Ajax 提交表单中使用了 jQuery 的 serialize() 序列化函数。对于初学者,请参考 jQuery 的帮助文档。如果不明白,可以在数据部分使用“字符串”或json对象,以常规方式提交数据。

   1

3

4

5

6

7 Insert title here

8

9

10 $(function(){

11 $("#submitBtn").click(function(){

12 $.ajax({

13 url:"${pageContext.request.contextPath }/testPage",

14 data:$("#formId").serialize(), //jQuery中的函数,序列化表单数据

15 type:"get",

16 cache:false,

17 success:function(jsonObj){

18 alert(jsonObj.msg);

19 $("#formId")[0].reset();//重置表单

20 }

21 })

22 });

23 })

24

25

26

27

28

29 ID:

30 姓名:

31 性别:

32 年龄:

33 价格:

34

35

36

37

  2.实体类

  5个属性并提供set/get方法

   1 package com.domain;

2

3 public class Person {

4 String username;

5 String sex;

6 int age;

7 Double price;

8 Long id;

9 public String getUsername() {

10 return username;

11 }

12 public void setUsername(String username) {

13 this.username = username;

14 }

15 public String getSex() {

16 return sex;

17 }

18 public void setSex(String sex) {

19 this.sex = sex;

20 }

21 public int getAge() {

22 return age;

23 }

24 public void setAge(int age) {

25 this.age = age;

26 }

27 public Double getPrice() {

28 return price;

29 }

30 public void setPrice(Double price) {

31 this.price = price;

32 }

33 public Long getId() {

34 return id;

35 }

36 public void setId(Long id) {

37 this.id = id;

38 }

39 }

  3.后端 Servlet 代码

  1)封装实体类对象

  这里只讲前端提交数据并输出到控制台,证明数据已经被获取并封装到对象中。

  其中,p = (Person) EncapsulationUtil.getJavaBean(Person.class, request); 使用的是封装工具,为了偷懒自己写的,后面提供源码。稍后将给出详细解释。

  注意:当前端提交的数据和我们需要保存到数据库的数据不完整时,可以在servlet中获取封装好的对象后手动设置。比如数据的主键id一般使用UUID进行后台生成,需要手动设置。

  

  

<p> 1 package com.controller;

2

3 import java.io.IOException;

4 import java.util.HashMap;

5 import java.util.Map;

6

7 import javax.servlet.ServletException;

8 import javax.servlet.http.HttpServlet;

9 import javax.servlet.http.HttpServletRequest;

10 import javax.servlet.http.HttpServletResponse;

11

12 import com.domain.Person;

13 import com.fasterxml.jackson.databind.ObjectMapper;

14 import com.utils.EncapsulationUtil;

15

16 public class testPage extends HttpServlet {

17

18 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

19 //定义数据封装体的对象

20 Person p;

21 //定义用于返回json的数据存放集合

22 Map map = new HashMap();

23

24 try {

25 //获取前端页面表单提交的数据

26 p = (Person) EncapsulationUtil.getJavaBean(Person.class, request);

27 //打印封装体中的数据结果

28 System.out.println("ID---->"+p.getId()+""+p.getUsername()+""+p.getAge()+"

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线