继续分享JavaWeb实验内容,实验内容均为servlet基础知识。
实验1 编写Servlet代码(10分)
1、参考学习通“Java程序设计”16.5节实验教学视频,配置Java Web开发环境;
2、创建一个Jakarta EE项目;
3、编写一个Servlet代码,满足以下要求:
(1)通过URL:http://localhost:8080/students,能够访问到该Servlet;
(2)该Servlet的功能是:产生三个学生对象,具有学号、姓名和Java Web成绩,然后以表格形式(HTML的<table>标签)将三个学生的数据输出到浏览器显示。
4、可选:三个学生对象的数据,以@WebServlet和@WebInitParam注解的形式予以配置,然后以表格形式将三个学生的数据输出到浏览器显示。
检查点1:代码功能是否正常;
检查点2:是否理解代码;
检查点3:是否会设断点调试;
检查点4:是否会利用工具观察HTTP请求和响应。
注意事项:
携带自己的笔记本。
此实验内容非常简单。
前端通过URL:http://localhost:8080/students,会发起/students请求,后端处理请求,并响应数据即可。
具体实现代码为:
前端代码:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>查询成绩</title>
</head>
<body>
<br/>
<a href="/students">查询成绩</a> //发起/students请求
</body>
</html>
后端代码:
首先封装一个实体类Student ,用来产生学生对象,具有学号姓名和Java Web成绩这三个属性。
代码实现:
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
private String Username;
private String Sno;
private int Score;
}
此处通过使用注解@data,注解会提供getter、setter、equals、canEqual、hashCode、toString等方法。@AllArgsConstructor 有参构造 @NoArgsConstructor 无参构造,较为方便。
注意:使用lombok时,需要在项目的pom.xml中引入坐标依赖,并使用maven加载依赖。
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
或者也可以按照下图方法直接快速生成这些getter setter方法,右击鼠标选择即可,也很方便。
Servlet代码实现:
代码逻辑很简单,new三个对象(🐕头),并为每个对象赋值,响应给前端即可。
package com.example.servletdemo;
import java.io.*;
import com.example.pojo.Student;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/students")
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=UTF-8");
Student student1 = new Student("吴亦凡", "202100101", 60);
Student student2 = new Student("李易峰", "202100102", 61);
Student student3 = new Student("蔡徐坤", "202100103", 62);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>学生成绩单</title></head>");
out.println("<body>");
out.println("<h1>学生成绩</h1>");
out.println("<table border='1'>");
out.println("<tr><th>姓名</th><th>学号</th><th>Java Web Score</th></tr>");
out.println("<tr><td>" + student1.getUsername() + "</td><td>" + student1.getSno() + "</td><td>" + student1.getScore() + "</td></tr>");
out.println("<tr><td>" + student2.getUsername() + "</td><td>" + student2.getSno() + "</td><td>" + student2.getScore() + "</td></tr>");
out.println("<tr><td>" + student3.getUsername() + "</td><td>" + student3.getSno() + "</td><td>" + student3.getScore() + "</td></tr>");
out.println("</table>");
out.println("</body>");
out.println("</html>");
}
}
运行截图:
如果你是初学JavaWeb开发,对tomcat的使用和配置不熟悉,请参考blog:
如有问题,欢迎评论区留言讨论!