安全-JAVA开发-第一天

news2025/6/6 2:50:04

目标:

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

准备:

安装 下载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提交的例子
    @Override
    protected 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

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

这样进行一个简单的开发

这四个函数涉及使用问题

@Override
    public void init(ServletConfig config) throws ServletException {
System.out.println("init");
    }


    //以下的来源不同
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("ServiceReq");
    }
    
//有参数才触发

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("serviceHTTP");
    }

    //销毁
    @Override
    public 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.coloradmin.cn/o/2398261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

6月2日上午思维训练题解

好好反思一下&#xff0c;自己在学什么&#xff0c;自己怎么在做训练赛的&#xff0c;真有这么难吗 &#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f; A - Need More Arrays 题解 想尽可能多的拆出新数组的个数&#xff0c;只需要从原本的数组中提取出最长的一…

【CF】Day69——⭐Codeforces Round 897 (Div. 2) D (图论 | 思维 | DFS | 环)

D. Cyclic Operations 题目&#xff1a; 思路&#xff1a; 非常好的一题 对于这题我们要学会转换和提取条件&#xff0c;从特殊到一般 我们可以考虑特殊情况先&#xff0c;即 k n 和 k 1时&#xff0c;对于 k 1&#xff0c;我们可以显然发现必须满足 b[i] i&#xff0c;而…

前端八股之Vue

目录 有使用过vue吗&#xff1f;说说你对vue的理解 你对SPA单页面的理解&#xff0c;它的优缺点分别是什么&#xff1f;如何实现SPA应用呢 一、SPA 是什么 二、SPA 和 MPA 的区别 三、SPA 的优缺点 四、实现 SPA 五、给 SPA 做 SEO 的方式&#xff08;基于 Vue&#xff…

谷歌地图高清卫星地图2026中文版下载|谷歌地图3D卫星高清版 V7.3.6.9796 最新免费版下载 - 前端工具导航

谷歌地图高清卫星地图2024中文版是一款非常专业的世界地图查看工具。通过使用该软件&#xff0c;你就可以在这里看到外太空星系、大洋峡谷等场景&#xff0c;通过高清的卫星地图&#xff0c;可以清晰查看地图、地形、3D建筑、卫星图像等信息&#xff0c;让你可以更轻松的探索世…

条形进度条

组件 <template><view class"pk-detail-con"><i class"lightning" :style"{ left: line % }"></i><i class"acimgs" :style"{ left: line % }"></i><view class"progress&quo…

IBM DB2分布式数据库架构

一、什么是分布式数据库架构 分布式数据库架构是现代数据库系统的重要发展方向&#xff0c;特别适合处理大规模数据、高并发访问和高可用性需求的应用场景。下面我们从原理、架构模式、关键技术、实现方式和常见产品几个方面来系统讲 1、分布式数据库的基本概念与原理 1. 什…

Android Studio 向模拟器手机添加照片、视频、音乐

Android Studio 向模拟器手机添加照片、视频、音乐(其实都是一样的&#xff0c;只是添加到不同的文件夹&#xff09;&#xff0c;例如我们在很多程序中功能例如&#xff1a;选择头像&#xff0c;跳转到手机相册选择头像&#xff0c;此时相册为空&#xff0c;即模拟器没有图片资…

数据结构-算法学习C++(入门)

目录 03二进制和位运算04 选择、冒泡、插入排序05 对数器06 二分搜索07 时间复杂度和空间复杂度08 算法和数据结构09 单双链表09.1单双链表及反转09.2合并链表09.2两数相加09.2分隔链表 013队列、栈、环形队列013.1队列013.2栈013.3循环队列 014栈-队列的相互转换014.1用栈实现…

连接关键点:使用 ES|QL 联接实现更丰富的可观测性洞察

作者&#xff1a;来自 Elastic Luca Wintergerst ES|QL 的 LOOKUP JOIN 现已进入技术预览阶段&#xff0c;它允许你在查询时对日志、指标和追踪进行丰富处理&#xff0c;无需在摄取时进行非规范化。动态添加部署、基础设施或业务上下文&#xff0c;减少存储占用&#xff0c;加速…

Flask + Celery 应用

目录 Flask Celery 应用项目结构1. 创建app.py2. 创建tasks.py3. 创建celery_worker.py4. 创建templates目录和index.html运行应用测试文件 Flask Celery 应用 对于Flask与Celery结合的例子&#xff0c;需要创建几个文件。首先安装必要的依赖&#xff1a; pip install flas…

奥威BI+AI数据分析:企业数智化转型的加速器

在当今数据驱动的时代&#xff0c;企业对于数据分析的需求日益增长。奥威BIAI数据分析的组合&#xff0c;正成为众多企业数智化转型的加速器。 奥威BI以其强大的数据处理和可视化能力著称。它能够轻松接入多种数据源&#xff0c;实现数据的快速整合与清洗。通过内置的ETL工具&…

python打卡day43

复习日 作业&#xff1a; kaggle找到一个图像数据集&#xff0c;用cnn网络进行训练并且用grad-cam做可视化 进阶&#xff1a;并拆分成多个文件 找了个街头食物图像分类的数据集Popular Street Foods&#xff08;其实写代码的时候就开始后悔了&#xff09;&#xff0c;原因在于&…

Linux --进程优先级

概念 什么是进程优先级&#xff0c;为什么需要进程优先级&#xff0c;怎么做到进程优先级这是本文需要解释清楚的。 优先级的本质其实就是排队&#xff0c;为了去争夺有限的资源&#xff0c;比如cpu的调度。cpu资源分配的先后性就是指进程的优先级。优先级高的进程有优先执行的…

安装和配置 Nginx 和 Mysql —— 一步一步配置 Ubuntu Server 的 NodeJS 服务器详细实录6

前言 昨天更新了四篇博客&#xff0c;我们顺利的 安装了 ubuntu server 服务器&#xff0c;并且配置好了 ssh 免密登录服务器&#xff0c;安装好了 服务器常用软件安装, 配置好了 zsh 和 vim 以及 通过 NVM 安装好Nodejs&#xff0c;还有PNPM包管理工具 。 作为服务器的运行…

图解gpt之注意力机制原理与应用

大家有没有注意到&#xff0c;当序列变长时&#xff0c;比如翻译一篇长文章&#xff0c;或者处理一个长句子&#xff0c;RNN这种编码器就有点力不从心了。它把整个序列信息压缩到一个固定大小的向量里&#xff0c;信息丢失严重&#xff0c;而且很难记住前面的细节&#xff0c;特…

【Oracle】视图

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 视图基础概述1.1 视图的概念与特点1.2 视图的工作原理1.3 视图的分类 2. 简单视图2.1 创建简单视图2.1.1 基本简单视图2.1.2 带计算列的简单视图 2.2 简单视图的DML操作2.2.1 通过视图进行INSERT操作2.2.2 通…

更强劲,更高效:智源研究院开源轻量级超长视频理解模型Video-XL-2

长视频理解是多模态大模型关键能力之一。尽管OpenAI GPT-4o、Google Gemini等私有模型已在该领域取得显著进展&#xff0c;当前的开源模型在效果、计算开销和运行效率等方面仍存在明显短板。近日&#xff0c;智源研究院联合上海交通大学等机构&#xff0c;正式发布新一代超长视…

2025.6.3学习日记 Nginx 基本概念 配置 指令 文件

1.初始nginx Nginx&#xff08;发音为 “engine x”&#xff09;是一款高性能的开源 Web 服务器软件&#xff0c;同时也具备反向代理、负载均衡、邮件代理等功能。它由俄罗斯工程师 Igor Sysoev 开发&#xff0c;最初用于解决高并发场景下的性能问题&#xff0c;因其轻量级、高…

【连接器专题】案例:产品测试顺序表解读与应用

在查看SD卡座连接器的规格书,一些测试报告时,你可能会看到如下一张产品测试顺序表。为什么会出现一张测试顺序表呢? 测试顺序表的使用其实定义测试环节的验证的“路线图”和“游戏规则”,本文就以我人个经验带领大家一起看懂这张表并理解其设计逻辑。 测试顺序表结构 测试…

星动纪元的机器人大模型 VPP,泛化能力效果如何?与 VLA 技术的区别是什么?

点击上方关注 “终端研发部” 设为“星标”&#xff0c;和你一起掌握更多数据库知识 VPP 利用了大量互联网视频数据进行训练&#xff0c;直接学习人类动作&#xff0c;减轻了对于高质量机器人真机数据的依赖&#xff0c;且可在不同人形机器人本体之间自如切换&#xff0c;这有望…