index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>学生管理系首页</title>
</head>
<body>
<a href="/addStudent.html">添加学生</a>
<a href="/listStudentServlet">查看学生</a>
</body>
</html>

addStudent.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>添加学生</title>
</head>
<body><form action="/addStudentServlet" method="get" autocomplete="off">学生姓名:<input type="text" name="username"> <br>学生年龄:<input type="number" name="age"> <br>学生成绩:<input type="number" name="score"> <br><button type="submit">保存</button></form>
</body>
</html>

Student

package com.example.domain;public class Student {private String username;private int age;private int score;public Student() {}public Student(String username, int age, int score) {this.username = username;this.age = age;this.score = score;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}
}

addStudentServlet


package com.example.servlet;import com.example.domain.Student;
import org.apache.commons.beanutils.BeanUtils;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;@WebServlet(name = "addStudentServlet", value = "/addStudentServlet")
public class addStudentServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取表单中的数据Student stu = new Student();Map<String, String[]> map = request.getParameterMap();try {BeanUtils.populate(stu,map);} catch (Exception e) {e.printStackTrace();}//保存到文件BufferedWriter bw = new BufferedWriter(new FileWriter(getServletContext().getRealPath("/stu.txt"), true));bw.write(stu.getUsername() + "," + stu.getAge() + "," + stu.getScore());bw.newLine();bw.close();//响应response.setContentType("text/html;charset=UTF-8");response.getWriter().write("添加成功,2秒后自动跳转到首页");response.setHeader("Refresh","2;URL=/index.html");}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request,response);}
}

listStudentServlet

package com.example.servlet;import com.example.domain.Student;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;@WebServlet(name = "listStudentServlet", value = "/listStudentServlet")
public class listStudentServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//创建字符输入流对象,关联读取的文件BufferedReader br = new BufferedReader(new FileReader(getServletContext().getRealPath("/stu.txt")));//创建集合对象,用于保存Student对象ArrayList<Student> list = new ArrayList<>();//循环读取文件中的数据,将数据封装到Student对象中。String line;while ((line = br.readLine()) != null){Student stu = new Student();String[] arr = line.split(",");stu.setUsername(arr[0]);stu.setAge(Integer.parseInt(arr[1]));stu.setScore(Integer.parseInt(arr[2]));list.add(stu);}//响应response.setContentType("text/html;charset=UTF-8");PrintWriter pw = response.getWriter();for (Student s : list){pw.write(s.getUsername() + "," + s.getAge() + ","  + s.getScore());pw.write("<br>");}br.close();}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request,response);}
}



项目目录结构

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>学生管理系统首页</title>
</head>
<body><%--获取会话域中的数据如果获取到了则显示添加和查看功能的超链接如果没获取到则显示登录功能的超链接--%><% Object username = session.getAttribute("username");if (username == null) {%><a href="/stu/login.jsp">请登录</a><%} else {%><a href="/addStudent.jsp">添加学生</a><a href="/listStudentServlet">查看学生</a><%}%>
</body>
</html>

login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>学生登录</title>
</head>
<body>
<form action="/LoginStudentServlet" method="get" autocomplete="off">姓名:<input type="text" name="username"> <br>密码:<input type="password" name="password"> <br><button type="submit">登录</button>
</form>
</body>
</html>

LoginStudentServlet

package com.example.servlet;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;@WebServlet(name = "LoginStudentServlet", value = "/LoginStudentServlet")
public class LoginStudentServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.获取用户名和密码String username = request.getParameter("username");String password = request.getParameter("password");//2.判断用户名if(username == null || "".equals(username)) {//2.1用户名为空 重定向到登录页面response.sendRedirect("/stu/login.jsp");return;}//2.2用户名不为空 将用户名存入会话域中request.getSession().setAttribute("username",username);//3.重定向到首页index.jspresponse.sendRedirect("/index.jsp");}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request,response);}
}

1.在 web 目录下创建一个 addStudent.jsp,实现添加学生的表单项。
2.创建 AddStudentServlet,获取学生信息并保存到文件中。
3.通过定时刷新功能 2 秒后跳转到首页。

addStudent.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>添加学生</title>
</head>
<body>
<form action="/addStudentServlet" method="get" autocomplete="off">学生姓名:<input type="text" name="username"> <br>学生年龄:<input type="number" name="age"> <br>学生成绩:<input type="number" name="score"> <br><button type="submit">保存</button>
</form>
</body>
</html>

Student.java

package com.example.domain;public class Student {private String username;private int age;private int score;public Student() {}public Student(String username, int age, int score) {this.username = username;this.age = age;this.score = score;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}
}

addStudentServlet

package com.example.servlet;import com.example.domain.Student;
import org.apache.commons.beanutils.BeanUtils;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;@WebServlet(name = "addStudentServlet", value = "/addStudentServlet")
public class addStudentServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取表单中的数据Student stu = new Student();Map<String, String[]> map = request.getParameterMap();try {BeanUtils.populate(stu,map);} catch (Exception e) {e.printStackTrace();}//保存到文件BufferedWriter bw = new BufferedWriter(new FileWriter(getServletContext().getRealPath("/stu.txt"), true));bw.write(stu.getUsername() + "," + stu.getAge() + "," + stu.getScore());bw.newLine();bw.close();//响应response.setContentType("text/html;charset=UTF-8");response.getWriter().write("添加成功,2秒后自动跳转到首页");response.setHeader("Refresh","2;URL=/index.jsp");}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request,response);}
}

1.创建 ListStudentServlet,读取文件中的学生信息到集合中。
2.将集合添加到会话域中。
3.重定向到 listStudent.jsp 页面上。
4.在 web 目录下创建一个 listStudent.jsp。
5.定义表格标签。在表格中获取会话域的集合数据,将数据显示在页面上。
listStudent.jsp

<%@ page import="com.itheima.bean.Student" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>查看学生</title>
</head>
<body><table width="600px" border="1px"><tr><th>学生姓名</th><th>学生年龄</th><th>学生成绩</th></tr><% ArrayList<Student> students = (ArrayList<Student>) session.getAttribute("students");for(Student stu : students) {%><tr align="center"><td><%=stu.getUsername()%></td><td><%=stu.getAge()%></td><td><%=stu.getScore()%></td></tr><%}%></table>
</body>
</html>

ListStudentServlet

package com.example.servlet;import com.example.domain.Student;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;@WebServlet(name = "listStudentServlet", value = "/listStudentServlet")
public class listStudentServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//创建字符输入流对象,关联读取的文件BufferedReader br = new BufferedReader(new FileReader(getServletContext().getRealPath("/stu.txt")));//创建集合对象,用于保存Student对象ArrayList<Student> list = new ArrayList<>();//循环读取文件中的数据,将数据封装到Student对象中。String line;while ((line = br.readLine()) != null){Student stu = new Student();String[] arr = line.split(",");stu.setUsername(arr[0]);stu.setAge(Integer.parseInt(arr[1]));stu.setScore(Integer.parseInt(arr[2]));list.add(stu);}//响应response.setContentType("text/html;charset=UTF-8");PrintWriter pw = response.getWriter();for (Student s : list){pw.write(s.getUsername() + "," + s.getAge() + ","  + s.getScore());pw.write("<br>");}//4.将集合对象存入会话域中request.getSession().setAttribute("students",list);//5.重定向到学生列表页面response.sendRedirect("/stu/listStudent.jsp");br.close();}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request,response);}
}

servlet ---- 简单案例相关推荐

  1. jQuery ajax简单案例-验证用户名是否可用

    jQuery ajax简单案例-验证用户名是否可用 HTML <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  2. 适合初学者的struts简单案例

    2019独角兽企业重金招聘Python工程师标准>>> 前言:虽然现在ssh开发满天飞,但是对于初学者来说,未必是好事,从基础学起,一步一个脚印,也许对他们来说更好. 接下来的时间里 ...

  3. SSM框架整合+简单案例实现

    SSM框架整合+简单案例实现 文章目录 前言 一.Spring+SpringMVC+Mybatis框架整合 1.建立一个新的web项目 2.所需jar包 3.建立数据库表与实体类之间的映射 4.web ...

  4. JavaWeb简单案例——文件的上传

    简单介绍: 首先获取文件上传需要的jar包,在官网中找到:Apache Commons FileUpload 和 Apache Commons IO两个jar包下载后,解压,得到两个jar包,并复制到 ...

  5. java 向nodejs 发送请求简单案例

    java  向nodejs 发送请求简单案例 最近在做nodejs的东西,一直不明白java如何与nodejs建立连接,下面写了一个简单demo: nodejs端: var http = requir ...

  6. ViewPager 实现页面左右滑动的简单案例1

    ViewPager 实现页面左右滑动的简单案例 主要Activity: <RelativeLayoutxmlns:android="http://schemas.android.com ...

  7. BaseAdapter的一个简单案例

    BaseAdapter的一个简单案例 主Activity import android.os.Bundle; import android.app.Activity; import android.v ...

  8. Redis简单案例(二) 网站最近的访问用户

    原文:Redis简单案例(二) 网站最近的访问用户 我们有时会在网站中看到最后的访问用户.最近的活跃用户等等诸如此类的一些信息.本文就以最后的访问用户为例, 用Redis来实现这个小功能.在这之前,我 ...

  9. Android复习12【广播接收者-BroadcastReceiver(简单案例-发送广播、静态注册、动态注册、本地广播、代码示例(别处登陆踢用户下线)、常用系统广播总结、音乐播放器)】

    2020-04-28[11周-周二] 音乐播放器Android代码下载:https://wws.lanzous.com/ifqzihaxvij 目   录 简单案例-发送广播 2)动态注册实例(监听网 ...

最新文章

  1. 隆重介绍恩智浦MCU机器学习教育套件——OpenART
  2. jittor和pytorch生成网络对比之bicyclegan
  3. Error while compiling statement: FAILED: LockException [Error 10280]
  4. 测试Java EE 8规范
  5. 重学java基础第十五课:java三大版本
  6. 吃透理财三句话人人都能成百万富翁
  7. python turtle库setpos_Python:使用mathturtle库绘制切线图
  8. 【渝粤教育】国家开放大学2018年春季 8665-21T护理伦理学 参考试题
  9. PR视频剪辑(项目包装)
  10. 那些你可能不知道的百度产品
  11. 两台无线路由桥接教程
  12. apex老是显示匹配服务器失败,Apex英雄与服务器不同步怎么办-服务器连接超时怎么办 - Iefans...
  13. 程序员自我修养——提问的智慧
  14. 用了都说好的PDF转JPG免费在线工具
  15. 链接脚本(Linker Scripts)语法和规则解析(翻译自官方手册)
  16. 基于Web的系统测试方法(张友生(来自中国系统分析师/中国系统分析员))
  17. 微信小程序开发video播放问题
  18. 【系列完结篇】【阿朱深度洞察】中国企业只有这样才能逃出生天
  19. webpackjsonp 还原_碱式碳酸铅作为电化学稳定的活性相用于电催化CO2还原制备甲酸盐...
  20. 简历上面的技术名词应该怎么写?

热门文章

  1. 【报告分享】2020人工智能+安防行业应用研究分析报告.pdf(附下载链接)
  2. 【优秀选手采访】看十强选手如何顺利拿下腾讯offer
  3. 计算机主板 方便用户自己安装的是,电脑水冷安装教程步骤解析【图文】
  4. java 删除.svn_使用JAVA的程序删除项目中的SVN目录
  5. 金士顿服务器内存条型号解读,教你如何解读金士顿台式机内存标签的含义
  6. android统计流量,Android 获取手机整体流量使用情况以及某个应用的流量的统计
  7. Office文档在线预览接口服务器
  8. nginx做代理服务
  9. Jenkins使用及开发
  10. Java事务管理之JDBC