安全-JAVA开发-第一天

article/2025/6/6 4:28:08

目标:

安装环境  了解基础架构  了解代码执行顺序 与数据库进行连接

准备:

安装 下载IDEA并下载tomcat(后续出教程)

之后新建项目

注意点如下

1.应用程序服务器选择Web开发

2.新建Tomcat的服务器配置文件 并使用


HelloServlet所在的目录为我们操作的目录

先进行调试

出现这个页面为成功


我们建立一个自己的页面

IndexServlet

package com.example.demo7;import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/new")//使用这个方法 不用配置web.xml文件
public class IndexServlet extends HttpServlet {@Override//使用这个后 检测到Get方法 会执行相应代码 类似的有doPost等protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String name = req.getParameter("name");//接收输入的name值PrintWriter out = resp.getWriter();//打印在页面中out.println("name: " + name);System.out.println(name);//打印在调试页面中System.out.println("doGet");//super.doGet(req, resp);}
//POST提交的例子@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        super.doPost(req, resp);String name = req.getParameter("name");//接收输入的name值System.out.println(name);//打印在调试页面中System.out.println("doPost");}
}

并且我们需要在

目录下配置相应文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"version="6.0"><servlet><servlet-name>index</servlet-name><!--使用引用路径--><servlet-class>com.example.demo7.IndexServlet</servlet-class></servlet><servlet-mapping><servlet-name>index</servlet-name><url-pattern>/index</url-pattern>  <!-- * 表示任意--></servlet-mapping>
</web-app>

之后 访问/index

在调试器和页面上都有相应数值

这样进行一个简单的开发

这四个函数涉及使用问题

@Overridepublic void init(ServletConfig config) throws ServletException {
System.out.println("init");}//以下的来源不同@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {System.out.println("ServiceReq");}//有参数才触发@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("serviceHTTP");}//销毁@Overridepublic void destroy() {System.out.println("estroy");}
执行结果来看
都会首先触发第一个init 根据有没有涉及传参 看一下打印了什么 最后结束是打印了estroy

这是代码执行的逻辑顺序

执行结果来看
都会首先触发第一个init 根据有没有涉及传参 看一下打印了什么 最后结束是打印了estroy

这是代码执行的逻辑顺序

JAVA-EE 的数据库有三种 jdbc mybatis hebermate

以使用频率来说 主要学习mybatis

需要先下载 这些红色的代表 是有不当会产生漏洞

下载好后 在IDEA新建一个文件 将下载好的文件导入

添加进库才能引用

package com.example.demo7;import java.sql.*;public class MyselectServlet {public static void main(String[] args) throws ClassNotFoundException, SQLException {// 1. 加载MySQL JDBC驱动(MySQL 8.0+可以省略,驱动会自动注册)// 保留它是为了兼容旧代码或明确显示驱动依赖Class.forName("com.mysql.cj.jdbc.Driver");// 2. 定义数据库连接URL// - serverTimezone=UTC 解决时区报错问题// - 其他常用参数:useSSL=false(测试环境禁用SSL)、characterEncoding=utf8(设置编码)String url = "jdbc:mysql://localhost:3306/demo01?serverTimezone=UTC";// 3. 建立数据库连接// 参数:URL, 用户名, 密码Connection connection = DriverManager.getConnection(url, "root", "root");String sql = "select * from admin";  // 从admin表查询所有字段// 5. 创建Statement对象(用于执行静态SQL语句)Statement statement = connection.createStatement();// 6. 执行查询,获取结果集ResultSet rs = statement.executeQuery(sql);// 7. 遍历结果集while (rs.next()) {  // rs.next()移动游标并判断是否有下一条数据// 按列名获取数据(也可以使用列索引:rs.getString(1))String username = rs.getString("username");String password = rs.getString("password");// 8. 输出结果System.out.println(username + ":" + password);}}
}结果如下:

申明:不是真的学习开发 只是了解思路和流程 不考虑代码安全问题


http://www.hkcw.cn/article/MubYojlgLd.shtml

相关文章

Spring @Autowired自动装配的实现机制

Spring Autowired自动装配的实现机制 Autowired 注解实现原理详解一、Autowired 注解定义二、Qualifier 注解辅助指定 Bean 名称三、BeanFactory&#xff1a;按类型获取 Bean四、注入逻辑实现五、小结 源码见&#xff1a;mini-spring Autowired 注解实现原理详解 Autowired 的…

【AI News | 20250603】每日AI进展

AI Repos 1、dgm 是一个创新的自改进系统&#xff0c;通过迭代修改自身代码并利用编码基准验证每次更改&#xff0c;实现开放式进化。该系统旨在提升 AI 代理的代码修改能力。DGM 支持 OpenAI 和 Anthropic API&#xff0c;依赖 Docker 环境&#xff0c;并集成了 SWE-bench 和…

Rust 学习笔记:Cargo 工作区

Rust 学习笔记&#xff1a;Cargo 工作区 Rust 学习笔记&#xff1a;Cargo 工作区创建工作区在工作区中创建第二个包依赖于工作区中的外部包向工作区添加测试将工作区中的 crate 发布到 crates.io添加 add_two crate 到工作区总结 Rust 学习笔记&#xff1a;Cargo 工作区 随着项…

操作系统 第 39 章 插叙:文件和目录

两项关键操作系统技术的发展&#xff1a;进程&#xff0c;虚拟化的 CPU&#xff1b;地址空间&#xff0c;虚拟化的内存。 这一部分加上虚拟化拼图中最关键的一块&#xff1a;持久存储。永久存储设备永久地&#xff08;或至少长时间地&#xff09;存储信息&#xff0c;如传统硬盘…

楼宇自控系统联动暖通空调:解密建筑环境舒适度提升路径

走进现代建筑&#xff0c;无论是办公场所、商业中心&#xff0c;还是医院、酒店&#xff0c;人们对环境舒适度的要求越来越高。暖通空调作为调节建筑室内环境的关键设备&#xff0c;其运行效果直接影响着人们的体验。然而&#xff0c;传统暖通空调独立运行、调控不灵活等问题&a…

Freemarker快速入门

Freemarker概述 FreeMarker 是一款 模板引擎&#xff1a; 即一种基于模板和要改变的数据&#xff0c; 并用来生成输出文本(HTML网页&#xff0c;电子邮件&#xff0c;配置文件&#xff0c;源代码等)的通用工具。 它不是面向最终用户的&#xff0c;而是一个Java类库&#xff0c…

黑盒(功能)测试基本方法

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、黑盒测试的概念 1、什么是黑盒测试 &#xff08;1&#xff09;黑盒测试又称功能测试、数据驱动测试或基于规格说明书的测试&#xff0c;是一种从用户观点出…

[java八股文][JavaSpring面试篇]SpringCloud

了解SpringCloud吗&#xff0c;说一下他和SpringBoot的区别 Spring Boot是用于构建单个Spring应用的框架&#xff0c;而Spring Cloud则是用于构建分布式系统中的微服务架构的工具&#xff0c;Spring Cloud提供了服务注册与发现、负载均衡、断路器、网关等功能。 两者可以结合…

chromedriver 下载失败

问题描述 chromedriver 2.46.0 下载失败 淘宝https://registry.npmmirror.com/chromedriver/2.46/chromedriver_win32.zip无法下载 解决方法 找到可下载源 https://cdn.npmmirror.com/binaries/chromedriver/2.46/chromedriver_win32.zip &#xff0c;先将其下载到本地目录(D…

74. 搜索二维矩阵 (力扣)

给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。…

CppCon 2014 学习:Rolling Your Own Circuit Simulator

这段话讲述了一个背景和动机&#xff0c;目的是阐明为什么开源C库变得越来越复杂且在科学和工程领域有很大的应用潜力。 关键点&#xff1a; 开源库的成熟&#xff1a; 近年来&#xff0c;开源C库在许多科学和工程领域变得越来越成熟和强大。这些库不再仅仅是简单的工具&…

无人机自主降落论文解析

Dynamic Landing of an Autonomous Quadrotor on a Moving Platform in Turbulent Wind Conditions 滑膜控制器 这一部分详细介绍了边界层滑模控制器&#xff08;Boundary Layer Sliding Controller&#xff0c;BLSC&#xff09;的设计和实现&#xff0c;特别是如何将其应用于…

.NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想

在当今数据驱动的时代&#xff0c;向量数据库&#xff08;Vector Database&#xff09;作为一种新兴的数据库技术&#xff0c;正逐渐成为软件开发领域的重要组成部分。特别是在 .NET 生态系统中&#xff0c;向量数据库的应用为开发者提供了构建智能、高效应用程序的新途径。 一…

html基础01:前端基础知识学习

html基础01&#xff1a;前端基础知识学习 1.个人建立打造 -- 之前知识的小总结1.1个人简历展示1.2简历信息填写页面 1.个人建立打造 – 之前知识的小总结 1.1个人简历展示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8&qu…

CentOS Stream 8 Unit network.service not found

一、问题现象 在 CentOS Stream 8 操作系统中&#xff0c;配置完静态IP 信息&#xff0c;想重启网络服务。 执行如下命令&#xff1a; systemctl restart network 提示信息如下&#xff1a; Failed to restart network.service: Unit network.service not found. 二、问题…

【Axure高保真原型】交通事故大屏可视化分析案例

今天和大家分享交通事故大屏可视化分析案例的原型模板&#xff0c;包括饼图分类分析、动态显示发生数、柱状图趋势分析、中部地图展示最新事故发现地点和其他信息、右侧列表记录发生事故的信息…… 通过多种可视化图表展示分析结果&#xff0c;具体效果可以点击下方视频观看或…

网络安全-等级保护(等保) 3-3-1 GB/T 36627-2018 附录A (资料性附录) 测评后活动、附 录 B (资料性附录)渗透测试的有关概念说明

################################################################################ GB/T 36627-2018 《信息安全技术 网络安全等级保护测试评估技术指南》对网络安全等级保护测评中的相关测评技术进行明确的分类和定义,系统地归纳并阐述测评的技术方法,概述技术性安全测试和…

wsl===windows下安装Linux系统

新近版本的windows都支持了Linux&#xff0c;操作如下&#xff1a; 控制面板中启用对应的功能 2. 打开powershell&#xff0c;以安装Ubuntu为例&#xff0c;然后执行 PS C:\Users\steven.wang> wsl.exe --update 正在安装: 适用于 Linux 的 Windows 子系统 已安装 适用于 …

云上展厅颠覆传统展览

云上展厅&#xff1a;重塑展览行业的新篇章 随着数字化技术的迅猛发展&#xff0c;传统展览模式正经历一场深刻的变革。云上展厅&#xff0c;新兴的展览形式&#xff0c;正逐步颠覆传统的实体展览模式&#xff0c;凭借其跨越时空限制、多样化展示方式、丰富互动体验及高效商业…

谷歌地图苹果版v6.138.2 - 前端工具导航

谷歌地图(Google maps)苹果版是是由谷歌官方推出的一款手机地图应用。软件功能强大&#xff0c;支持本地搜索查找世界各地的地址、地点和商家&#xff1b;支持在街景视图中查看世界各地的360度全景图&#xff1b;支持查找乘坐火车、公交车和地铁的路线&#xff0c;或者查找步行…