ArrayList 集合与 JavaWeb 实战
·
目录
1、JavaBean 实体类:Student.java(封装学生数据)
2、Servlet 业务类:ProductServlet.java
1、Servlet 集合封装类:StudentServlet.java
一、ArrayList 是什么?
ArrayList 是 Java 中的集合,底层是一个可以自动扩容的动态数组
使用 ArrayList 时,需要导包:import java.util.ArrayList;
特点:有序、可重复、查询快、支持存储任意类型数据。
二、ArrayList 基础操作
ArrayList 增删改查、遍历操作
package com.example.javabeannew;
import com.example.Productjavabean.Product;
import java.util.ArrayList;
public class ArrayListdemo {
public static void main(String[] args) {
// 1. 创建多种类型的集合对象
ArrayList<Student> studentArrayLis =new ArrayList<Student>();
ArrayList<String> stringArrayList =new ArrayList<String>();
ArrayList<Integer> intArrayList=new ArrayList<Integer>();
ArrayList<Float> floatArrayList=new ArrayList<Float>();
ArrayList<Product> productArrayList=new ArrayList<Product>();
// 2. 添加数据:add()方法
stringArrayList.add("张三");
stringArrayList.add("李四");
stringArrayList.add("王五");
// 3. 获取集合长度:size()方法
System.out.println("集合元素个数:"+stringArrayList.size());
// 4. 根据下标获取元素:get()
String first = stringArrayList.get(0);
System.out.println("第一个元素:"+first);
// 5. 修改元素:set(下标, 新值)
stringArrayList.set(1, "赵六");
System.out.println("修改后下标1的元素:"+stringArrayList.get(1));
// 6. 删除元素:remove(下标)
stringArrayList.remove(1);
System.out.println("删除后下标1的元素:"+stringArrayList.get(1));
//遍历集合元素:
// 7. 方法一,使用下标方式去遍历
System.out.println("-------------------普通for遍历-------------------");
for (int i = 0; i < stringArrayList.size(); i++) {
System.out.println(stringArrayList.get(i));
}
// 8. 方法二,增强的方式
System.out.println("-------------------增强for遍历-------------------");
for (String str : stringArrayList) {
System.out.println(str);
}
}
}
运行结果
在代码空白处右击,绿色三角运行


核心知识点
| 知识点 | 说明 |
|---|---|
| 存储类型 | 可存储字符串、整数、浮点数、自定义对象等任意类型 |
| 核心方法 |
|
| 遍历方式 |
普通 for 循环:通过下标遍历 增强 for 循环:语法简洁,推荐使用 |
三、ArrayList 存储自定义对象项目
toString () 方法
- 将对象转换成字符串,方便打印、查看内容
- 如果不重写,打印对象会输出内存地址
- 重写后,打印对象会输出属性值
1、JavaBean 实体类:Student.java(封装学生数据)
package com.example.javabeannew;
public class Student {
// 私有成员变量
private String name;
private int age;
private double score;
// 无参构造
public Student() {
}
// 有参构造
public Student(String name,int age,int score){
this.name=name;
this.age=age;
this.score=score;
}
// 重写toString方法:打印对象时显示属性
public String toString(){
return "Student{"+
"name='"+name+'\''+
",age="+age+
",score="+score+
'}';
}
// get/set方法
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public int getAge() {return age;}
public void setAge(int age) {this.age = age;}
public double getScore() {return score;}
public void setScore(double score) {this.score = score;}
}
2、集合操作类:StudentList.java
package com.example.javabeannew;
import java.util.ArrayList;
public class StudentList {
public static void main(String[] args) {
// 创建存储Student对象的集合
ArrayList<Student> studentArrayList=new ArrayList<Student>();
// 创建学生对象
Student s1=new Student("张三",18,100);
Student s2=new Student("李四",18,100);
// 添加对象到集合
studentArrayList.add(s1);
studentArrayList.add(s2);
studentArrayList.add(new Student("赵六",20,88));
// 遍历输出所有学生姓名
for (Student s : studentArrayList) {
System.out.println(s.getName());
}
// 条件筛选:年龄为18的学生
System.out.println("--------------");
for (Student s : studentArrayList) {
if (s.getAge()==18) {
// 若未重写toString(),此处s会输出内存地址,重写后输出学生属性信息
System.out.println("年龄为18:"+s);
}
}
}
}
运行结果

四、JavaWeb 单对象传递项目
用 Servlet 封装单个 JavaBean 对象,传递到 JSP 页面。
1、商品实体类:Product.java
package com.example.Productjavabean;
public class Product {
// 私有变量
private String id;
private String name;
private double score;
private int num;
// 无参构造
public Product(){
}
// 有参构造
public Product(String id, String name, double score, int num) {
this.id = id;
this.name = name;
this.score = score;
this.num = num;
}
// get/set方法
public String getId() {return id;}
public String getName() {return name;}
public double getScore() {return score;}
public int getNum() {return num;}
public void setId(String id) {this.id = id;}
public void setName(String name) {this.name = name;}
public void setScore(double score) {this.score = score;}
public void setNum(int num) {this.num = num;}
}
2、Servlet 业务类:ProductServlet.java
package com.example.Productjavabean;
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;
@WebServlet("/Product")
public class ProductServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 创建商品对象并赋值
Product product=new Product();
product.setId("001");
product.setName("牛奶");
product.setScore(5.0);
product.setNum(60);
// 存入request域,传递到JSP
req.setAttribute("product",product);
// 请求转发
req.getRequestDispatcher("/javabeannew/product.jsp").forward(req, resp);
}
}
3、JSP 展示页面:product.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>商品详情</title>
</head>
<body>
<h3>商品详情</h3>
商品id:${product.id}<br>
商品名称:${product.name}<br>
商品价格:${product.score}<br>
商品数量:${product.num}
</body>
</html>
运行结果
这里要切换回Tomcat再运行


五、JavaWeb ArrayList 集合传递项目
将前三个项目知识点结合:Servlet 封装 ArrayList 集合 → 传递到 JSP → 遍历展示批量对象
1、Servlet 集合封装类:StudentServlet.java
package com.example.javabeannew;
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.util.ArrayList;
@WebServlet("/StudentServlet")
public class StudentServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 创建ArrayList集合,存储多个学生对象
ArrayList<Student> ss=new ArrayList<Student>();
ss.add(new Student("张三",18,100));
ss.add(new Student("李四",18,100));
// 将集合存入request域
req.setAttribute("stuss",ss);
// 转发到JSP页面
req.getRequestDispatcher("/javabeannew/elBean.jsp").forward(req, resp);
}
}
2、JSP 集合遍历页面:elBean.jsp
<%@ page import="com.example.javabeannew.Student" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>学生列表</title>
</head>
<body>
<h3>学生列表(ArrayList 集合遍历)</h3>
<%
// 获取Servlet传递的集合
ArrayList<Student> ss=(ArrayList<Student>) request.getAttribute("stuss");
// 增强for循环遍历集合
for(Student s:ss){
out.print(s + "<br>");
}
%>
</body>
</html>
运行结果

更多推荐





所有评论(0)