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查询数据库的功能 以下是我的数据库的内容 完成,流程跑通

相关推荐
计算机-秋大田2 分钟前
基于Spring Boot的船舶监造系统的设计与实现,LW+源码+讲解
java·论文阅读·spring boot·后端·vue
神里大人3 分钟前
idea、pycharm等软件的文件名红色怎么变绿色
java·pycharm·intellij-idea
小冉在学习21 分钟前
day53 图论章节刷题Part05(并查集理论基础、寻找存在的路径)
java·算法·图论
代码之光_19801 小时前
保障性住房管理:SpringBoot技术优势分析
java·spring boot·后端
ajsbxi1 小时前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
StayInLove1 小时前
G1垃圾回收器日志详解
java·开发语言
对许2 小时前
SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“
java·log4j
无尽的大道2 小时前
Java字符串深度解析:String的实现、常量池与性能优化
java·开发语言·性能优化
小鑫记得努力2 小时前
Java类和对象(下篇)
java
binishuaio2 小时前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git