当前位置: 首页 > news >正文

安全-JAVA开发-第一天

目标:

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

准备:

安装 下载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.lqws.cn/news/90127.html

相关文章:

  • 数据可视化有哪些步骤?2025高效落地指南
  • 5分钟申请edu邮箱【方案本周有效】
  • 业务材料——半导体行业MES系统核心功能工业协议AI赋能
  • 深入解析C++引用:从别名机制到函数特性实践
  • TablePlus:一个跨平台的数据库管理工具
  • 04 APP 自动化- Appium toast 元素定位列表滑动
  • MATLAB仿真生成无线通信网络拓扑推理数据集
  • Ansys Zemax | 手机镜头设计 - 第 3 部分:使用 STAR 模块和 ZOS-API 进行 STOP 分析
  • Linux运维笔记:1010实验室电脑资源规范使用指南
  • PHP+mysql 美容美发预约小程序源码 支持DIY装修+完整图文搭建教程
  • Android系统进程优先级
  • 帝国CMS QQ登录插件最新版 获取QQ头像和QQ昵称
  • Python训练打卡Day41
  • 基于VLC的Unity视频播放器(四)
  • window 显示驱动开发-DirectX 视频加速 2.0
  • MATLAB实战:四旋翼姿态控制仿真方案
  • 榕壹云健身预约系统:多门店管理的数字化解决方案(ThinkPHP+MySQL+UniApp实现)
  • Ubuntu 系统部署 MySQL 入门篇
  • 碰一碰发视频-源码系统开发技术分享
  • 阿里云百炼全解析:一站式大模型开发平台的架构与行业实践
  • Dockerfile 使用多阶段构建(build 阶段 → release 阶段)后端配置
  • 深入剖析物联网边缘计算技术:架构、应用与挑战
  • mapbox高阶,生成并加载等时图
  • 【请关注】MySQL 中常见的加锁方式及各类锁常见问题及对应的解决方法
  • RNN结构扩展与改进:从简单循环网络到时间间隔网络的技术演进
  • YOLO-V2 (学习记录)
  • TDengine 的 AI 应用实战——运维异常检测
  • SpringBoot2.3.1集成Knife4j接口文档
  • Java程序员视角- NIO 到 Epoll:深度解析 IO 多路复用原理及 Select/Poll/Epoll 对
  • 基于YOLO-NAS-Pose的无人机象群姿态估计:群体行为分析的突破