Day13--JavaWeb学习之Servlet后端渲染界面

基于Day12中登录页面实现的修改,这里实现的是如果登录成功,跳到LoginSuccess页面中展示后端查询到数据库中的信息,并实现在浏览器实现插入数据和删除数据(mybaits)。

  当输入账号密码正确后进入LoginSuccess页面,通过resp.getWriter来编写后端需要渲染的页面。

数据删除:

后端渲染数据展示的页面

在数据展示页面增加删除操作按钮,让点击后跳转到@WebServlet("/DelUser"),真正实现数据删除的地方

@WebServlet("/LoginSuccess")
public class LoginSuccess extends HttpServlet {//收参数@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {List<Student> info = (List<Student>) req.getAttribute("AllInfo");PrintWriter wr = resp.getWriter();wr.write("<!DOCTYPE html>");wr.println("<html>");wr.println("<head>");wr.write("</head>");wr.println("<body>");wr.write("<table cellpadding='2' cellspacing='2' center='100%' border='1'>");wr.write("<tr><th>学号</th><th>姓名</th><th>性别</th><th>年龄</th><th>专业</th><th>操作</th></tr>");wr.write("<tr><a href='Insert'>信息录入</a></tr>");for (int i = 0; i < info.size(); i++) {wr.write("<tr>");wr.write("<td>" + info.get(i).getSno() + "</td>");wr.write("<td>" + info.get(i).getName() + "</td>");wr.write("<td>" + info.get(i).getSex() + "</td>");wr.write("<td>" + info.get(i).getAge() + "</td>");wr.write("<td>" + info.get(i).getMajor() + "</td>");wr.write("<td> <a onclick=\"if(confirm('确认删除吗?'))return true;return false;\" " +"href=DelUser?Sno="+ info.get(i).getSno()+">删除</a></td>");wr.write("</tr>");}wr.write("</table>");wr.println("</body>");wr.println("</html>");}
}

实现执行删除的操作代码:

@WebServlet("/DelUser")
public class DelUser extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=utf-8");String Sno = req.getParameter("Sno");System.out.println("Sno = " + Sno);GetMapper getMapper = new GetMapper();getMapper.delete(Integer.valueOf(Sno));ArrayList<Student> stu = getMapper.selectAll();req.setAttribute("AllInfo", stu);if (!stu.isEmpty()) {req.getRequestDispatcher("LoginSuccess").forward(req, resp);}}
}

数据的插入:

后端渲染数据插入的页面

@WebServlet("/Insert")
public class Insert extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=utf-8");PrintWriter wr = resp.getWriter();wr.println("<html>");wr.println("<head>");wr.println("<title>Servlet Insert</title>");wr.println("</head>");wr.println("<body>");wr.println("<h1>Servlet Insert </h1>");wr.write("<div class='container'> " +"<form action='InsertOk'>"+"学号:<input type='text' name='sno'><br>" +"姓名:<input type='text' name='name'><br>" +"性别:<input type='text' name='sex'><br>" +"年龄:<input type='text' name='age'><br>" +"专业:<input type='text' name='major'><br>"+"<button>提交添加</button>" +"</form>"+"</div>");wr.println("</body>");wr.println("</html>");}
}

后端处理数据插入的代码:
 

@WebServlet("/InsertOk")
public class InsertOk extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=utf-8");String major = req.getParameter("major");String age = req.getParameter("age");String sex = req.getParameter("sex");String name = req.getParameter("name");String sno = req.getParameter("sno");Student student = new Student(Integer.valueOf(sno),name,sex,Integer.valueOf(age),major);GetMapper getMapper = new GetMapper();getMapper.insert(student);ArrayList<Student> stu = getMapper.selectAll();req.setAttribute("AllInfo", stu);if (!stu.isEmpty()) {req.getRequestDispatcher("LoginSuccess").forward(req, resp);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/387441.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试人生 | 招聘严峻期从面试无力感,到一天2个offer的一些经验分享(内附美团、字节、快手等面试题)

本人是霍格沃兹北京测试开发学社线下3期学员&#xff0c;拥有3年测试工作经验&#xff0c;之前一直在某大厂外包做软件测试&#xff0c;期间主要是以功能测试为主。 经过一个月的高强度找工作奋战&#xff0c;最终拿下了3家公司offer&#xff0c;选择了一家自己很满意的公司。…

nginx的反向代理及负载均衡

nginx的反向代理 安装包链接https://nginx.org/download/nginx-1.26.1.tar.gz yum -y install gcc gcc-c pcre-devel openssl-devel [rootstaticserver ~]# tar -xzvf nginx-1.26.1.tar.gz [rootstaticserver nginx-1.26.1]#./configure --prefix/usr/local/nginx --userngi…

Graph RAG:知识图谱赋能大语言模型的新范式

一、前言 大模型技术在经过一年多的飞速迭代和发展&#xff0c;以 ChatGPT 为代表的大语言模型&#xff08;LLM&#xff09;凭借其强大的文本生成能力&#xff0c;在各个领域掀起了一场 AI 应用的革命。然而&#xff0c;狂欢过后&#xff0c;人们逐渐意识到 LLM 并非无所不能。…

时常在面试中被问到的JVM问题

文章目录 JVM 和 JDK、JRE 有什么区别&#xff1f;JVM 是如何工作的&#xff1f;JVM 主要组件JVM 执行流程JVM 的工作示例 说一下类加载机制类加载器&#xff08;Class Loader&#xff09;示例 什么是双亲委派模型&#xff1f;&#xff08;Parent Delegation Model&#xff09;…

cookie与session的关系

登录时:存入redis的格式是key:value 登录时的session 再次请求时:查询请求头中带了cookie的session是和登录时第一次的一致,不管是第几个请求,和缓存的cookie的session做对比 退出时--依然会带着这个sessionid 1.cookie和session: 客户端--------------------企业代…

跨平台AI模型部署神器:FastDeploy实战Yolov5

简介 FastDeploy 是一款易用、高效的 AI 模型部署工具。 它旨在简化 AI 模型从训练到部署的整个流程,支持在多种硬件和操作系统上进行模型推理。 特点如下: 多平台支持 : FastDeploy 支持在云、边、端等多种环境中部署模型,包括但不限于 Windows、Linux、Android、iOS …

短剧出海分销推广系统,海外短剧CPS分润机制方案介绍

随着国内短剧市场的蓬勃发展&#xff0c;其独特的叙事风格和快节奏的内容形式不仅在国内赢得了广泛好评&#xff0c;更逐渐跨越国界&#xff0c;吸引了全球观众的关注。海外短剧系统CPS分销推广是一种创新的营销模式&#xff0c;它主要依靠按销售分润&#xff08;Cost Per Sale…

2024 Java 高分面试宝典 一站式搞定技术面

前言 每年9月和10月&#xff0c;被业界称为“金九银十”&#xff0c;这是人才市场一年中最活跃的时期。此时&#xff0c;企业为了来年的业务扩展&#xff0c;纷纷加大招聘力度&#xff0c;空缺岗位众多&#xff0c;招聘需求集中。同时&#xff0c;初秋的招聘活动也避开酷暑&am…

中间件安全:Nginx 解析漏洞测试.

中间件安全&#xff1a;Nginx 解析漏洞测试. Nginx 是一个高性能的 HTTP和 反向代理服务器&#xff0c;Nginx 解析漏洞是一个由于配置不当导致的安全问题&#xff0c;它不依赖于Nginx或PHP的特定版本&#xff0c;而是由于用户配置错误造成的。这个漏洞允许攻击者上传看似无害的…

git的配置使用

第三周 Tursday 早 git日志的安装使用 [rootweb ~]# yum -y install git.x86_64 //安装软件包 [rootweb ~]# rpm -ql git //查看git的包 ​ [rootweb ~]# mkdir /yy000 //创建新目录 [rootweb ~]# cd /yy000/ [rootweb yy000]# git init //将当前目录做为仓库…

ubuntu 查找文件find

find -name xxx 查找当前路径下名字为xxx的文件 find . -name xxx 查找当前路径下名字为 train_logs的文件 find . -name train_logs 具体说明 【Ubuntu】find命令_ubuntu find命令-CSDN博客 其中&#xff0c;路径 指定要搜索的目录路径&#xff0c;而 表达式 用于指定匹配条…

PHP进阶-CentOS7部署LNMP服务架构的项目

在开发和部署Web应用时&#xff0c;LNMP&#xff08;Linux、Nginx、MySQL、PHP&#xff09;的组合是非常常见的。这篇博客将介绍如何通过一个简单的脚本&#xff0c;在CentOS 7上部署LNMP&#xff0c;并将PHP项目自动部署到服务器上。这不仅可以节省大量的时间&#xff0c;还能…

Wi-Fi、WLAN、Bluetooth、zigbee、蜂窝网络、4g5g、MQTT

为什么打开手机的WiFi连接&#xff0c;显示的是WLAN&#xff1f; 分清Wi-Fi、WLAN、Bluetooth、zigbee、蜂窝网络、4g5g、MQTT这些概念. 一、WLAN、WIFI、WAPI WLAN是利用无线通信技术在局部区域内构建的网络&#xff0c;家庭/办公室里的网络就是一个WLAN&#xff0c;WLAN是一…

【城市数据集】世界城市数据库和访问门户工具WUDAPT

世界城市数据库和访问门户工具WUDAPT WUDAPTLCZ分类具体步骤参考 在 城市气候研究中&#xff0c;用于描述城市特征的数据集一般采用基于类别的传统方法&#xff0c;将城市地区分为数量有限的类型&#xff0c;从而导致精确度下降。越来越多的新数据集以亚米微尺分辨率描述城市的…

SolidEdge二次开发(C#)-环境配置

文章目录 1、前言2、环境配置2.1 安装Solidworks20242.2 安装VS20222.3 查看Com组件2.3.1 在VS2022中创建一个wpf工程项目2.3.2 添加com组件 1、前言 SolidEdge是Siemens PLM Software公司旗下的三维CAD软件&#xff0c;采用Siemens PLM Software公司自己拥有专利的Parasolid作…

JAVA零基础学习3(Scanner类,字符串,StringBuilder,StringJoinder,ArrayList成员方法)

JAVA零基础学习&#xff13; Scanner类输入示例代码代码解释完整代码1. 读取字符串2. 读取整数3. 读取浮点数4. 读取布尔值5. 读取单个单词6. 读取长整型数7. 读取短整型数8. 读取字节数注意事项总结 API 字符串解释示例解释解决方法示例&#xff1a;使用 StringBuilder String…

Java代码基础算法练习-求一个3×3矩阵对角线元素之和-2024.07.27

任务描述&#xff1a; 求一个33矩阵对角线元素之和&#xff0c;包括主对角线、副对角线元素和 &#xff08;提示&#xff1a;主对角线&#xff1a; ij,副对角线&#xff1a;ij2&#xff09;。 解决思路&#xff1a; 定义 3*3 的二维数组&#xff0c;再输入9个数字&#xff0c…

【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(十四)-租云服务器及配环境、docker基本命令

主要介绍了租云服务器和docker配置、基本命令&#xff01;&#xff01;&#xff01; 文章目录 前言 一、云平台 二、租云服务器及安装docker 1.阿里云 2.安装docker 三、docker命令 将当前用户添加到docker用户组 镜像&#xff08;images&#xff09; 容器(container) 四、实战…

linux编写shell脚本字段部署redis6.x版本,docker使用shell脚本一键自动部署redis

1.先创建部署脚本 touch redis.sh2.粘贴部署脚本内容到redis.sh echo "在线安装redis开始...." docker pull redis:6.2.1 sudo mkdir -p /home/admin/redis/{data,conf} sudo touch /home/admin/redis/conf/redis.conf echo " #注释掉这部分&#xff0c;这是限…

一文总结代理:代理模式、代理服务器

概述 代理在计算机编程领域&#xff0c;是一个很通用的概念&#xff0c;包括&#xff1a;代理设计模式&#xff0c;代理服务器等。 代理类持有具体实现类的实例&#xff0c;将在代理类上的操作转化为实例上方法的调用。为某个对象提供一个代理&#xff0c;以控制对这个对象的…