JavaWeb复习-001

B/S结构的系统通信原理

Web系统的访问过程 第一步:打开浏览器 第二步:地址栏 第三步:输入一个合法的网址 第四步:回车 第五步:浏览器显示内容 一个Web系统的通信步骤 第一步:输入URL 第二步:域名解析器进行域名解析 第三步:浏览器在网络中搜索解析出的IP地址,直到找到该主机 第四步:确定浏览器需要的是index.html 第五步:找到index.html文件 第六步:浏览器接收来自服务器的代码 第七步:执行前端三大件的代码

servlet规范是一个什么规范

遵循servlet规范的webapp就可以放在不同的Web服务器中运行 Servlet规范包括: 规范了哪些接口 规范了哪些类 规范了一个Web应用中应该有哪些配置文件 规范了一个Web应用中配置文件的名字 规范了一个Web应用配置文件的存放路径 规范了一个Web应用配置文件的内容 ... idea创建的一个JavaWeb项目,使用的是Maven模板,为的是,方便添加依赖,和视频从0不一样 2023 idea默认不显示 add framework support,直接通过project structure添加即可 生成web文件夹,里面有WEB-INF,再里面有web.xml,新版本不生成jsp文件 创建包,实际上是创建文件夹把他标记为Sources Root,变成蓝色和src一样,在src的目录下右键可以创建package 其项目结构如下 新版本的Servlet是jakarta版本的,注意区分 生成5个方法,其中Service编写业务代码

java 复制代码
package com.demo.servlet;  
  
import jakarta.servlet.*;  
  
import java.io.IOException;  
import java.io.PrintWriter;  
import java.sql.*;  
  
public class StudentServlet implements Servlet {  
    @Override  
    public void init(ServletConfig servletConfig) throws ServletException {  
  
    }  
  
    @Override  
    public ServletConfig getServletConfig() {  
        return null;  
    }  
  
    @Override  
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {  
        // 设置响应的内容类型  
        servletResponse.setContentType("text/html;charset=utf-8");  
        PrintWriter out = servletResponse.getWriter();  
        // 连接数据库  
        Connection conn = null;  
        PreparedStatement ps = null;  
        ResultSet rs = null;  
        try {  
            // 注册驱动  
            Class.forName("com.mysql.cj.jdbc.Driver");  
            // 获取连接  
            String url = "jdbc:mysql://localhost:3306/easyjob";  
            String user = "root";  
            String password = "apple1314";  
            conn = DriverManager.getConnection(url, user, password);  
            // 获取预编译数据库操作对象  
            String sql = "select question_id, title from exam_question";  
            ps = conn.prepareStatement(sql);  
            // 执行SQL  
            rs = ps.executeQuery();  
            // 处理结果集  
            while (rs.next()) {  
                String question_id = rs.getString("question_id");  
                String title = rs.getString("title");  
                out.print(question_id + "," + title + "<br>");  
            }  
        } catch (ClassNotFoundException | SQLException e) {  
            throw new RuntimeException(e);  
        } finally {  
            // 释放资源  
            if (rs != null) {  
                try {  
                    rs.close();  
                } catch (SQLException e) {  
                    throw new RuntimeException(e);  
                }  
            }  
            if (ps != null) {  
                try {  
                    ps.close();  
                } catch (SQLException e) {  
                    throw new RuntimeException(e);  
                }  
            }  
            if (conn != null) {  
                try {  
                    conn.close();  
                } catch (SQLException e) {  
                    throw new RuntimeException(e);  
                }  
            }  
        }  
    }  
  
    @Override  
    public String getServletInfo() {  
        return null;  
    }  
  
    @Override  
    public void destroy() {  
  
    }  
}

web.xml中注册StudentServlet

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>studentServlet</servlet-name>
        <servlet-class>com.demo.servlet.StudentServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>studentServlet</servlet-name>
        <url-pattern>/servlet/student</url-pattern>
    </servlet-mapping>
</web-app>

创建一个HTML文件提供一个可访问Servlet的超链接

xml 复制代码
<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>Title</title>  
</head>  
<body>  
    <a href="/servlet/student">student li</a>  
</body>  
</html>

引入依赖需要的jar包,pom.xml配置如下 用于是手动添加的Web模块记得添加依赖,还是Project Structure idea关联Tomcat,webApp部署到Tomcat 如果没有Artifact,就通过Project Structure进行手动创建,在手动添加的web模块位置 添加war这个artifact 调整上下文 启动 点击超链接,实现刚刚写的Servlet查询数据库的功能 以下是我的数据库的内容 完成,流程跑通

相关推荐
点光3 小时前
使用Sentinel作为Spring Boot应用限流组件
后端
不要秃头啊4 小时前
别再谈提效了:AI 时代的开发范式本质变了
前端·后端·程序员
有志4 小时前
Java 项目添加慢 SQL 查询工具实践
后端
山佳的山4 小时前
KingbaseES 共享锁(SHARE)与排他锁(EXCLUSIVE)详解及测试复现
后端
Leo8994 小时前
rust 从零单排 之 一战到底
后端
程序员清风5 小时前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试
鱼人6 小时前
MySQL 实战入门:从“增删改查”到“高效查询”的核心指南
后端
大鹏19886 小时前
告别 Session:Spring Boot 实现 JWT 无状态登录认证全攻略
后端
Java编程爱好者6 小时前
从 AQS 到 ReentrantLock:搞懂同步队列与条件队列,这一篇就够了
后端
鱼人6 小时前
Nginx 全能指南:从反向代理到负载均衡,一篇打通任督二脉
后端