IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 开发第一个Servlet&JDBC连接数据库 -> 正文阅读

[大数据]开发第一个Servlet&JDBC连接数据库

文章中用到的环境:
java17
Tocat10
mysql-connector-java-8.0.27.jar

1.开发第一个servlet

Servlet规范:
第一步:
在webapps下创建一个目录,名为:crm(当然也可以为其他的,例如银行为bank,办公系统为oa等等)
第二步:
在webapp的根下创建一个WEB-INF目录
第三步:
在WEB-INF下创建一个目录:classes
第四步:
在WEB-INF目录下创建一个目录:lib(这个目录不是必须的,但如果一个webapp需要第三方jar包的话,这个jar包就要放到这个lib目录下)
第五步:
在WEB-INF下创建一个web.xml的配置文件,配置文件内容如下:

<?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_5_0.xsd"
  version="5.0"
  metadata-complete="true">
</web-app>

Servlet的完整包名在tomcat10版本上是
jakarta.servlet.Servlet
低版本的才是javax.servlet.Servlet
jarkataServlet的5个方法:
在这里插入图片描述


HelloServlet.java

package com.xy.servlet;
import jakarta.servlet.Servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.ServletConfig;
import java.io.IOException;
import java.io.PrintWriter;

public class HelloServlet implements Servlet{
	public void init(ServletConfig config) throws ServletException{
		
	}
	public void service(ServletRequest request,ServletResponse response)
		throws ServletException,IOException{
		System.out.println("This is my first servlet!");
		PrintWriter out = response.getWriter();
		out.print("Hello,This is my first servlet!");
		
	}
	public void destroy() {
		
	}
	public String getServletInfo() {
		return "";
	
	
}
	public ServletConfig getServletConfig() {
		return null;
	}
}

web.xml

<?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_5_0.xsd"
  version="5.0"
  metadata-complete="true">
  	<servlet>
		<servlet-name>firstservlet</servlet-name>
		<servlet-class>com.xy.servlet.HelloServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>firstservlet</servlet-name>
		<url-pattern>/first</url-pattern>
	</servlet-mapping>
</web-app>

之后将HelloServlet.java放入classes文件夹中,使用javac -d . HelloServlet.java进行编译,即可得到HelloServlet.class文件
在这里插入图片描述

目录结构

  • webapps
    • crm
      • WEB-INF
      • classes
        • com
          • xy
            • servlet
              • HelloServlet.class
      • lib
      • web.xml
    • index.html

笔记总结

向浏览器响应一段HTML代码

public void service(ServletRequest request,ServletResponse response){
	response.setContentType("text/html");
	PrintWriter out = response.getWriter();
	out.print("<h1>hello,this is my servlet!</h1>");
}

2.JDBC连接数据库

首先创建一个数据库

create database JDBC;

创建表

create table t_student(ID int,name varchar(255));

向表中插入数据

insert into t_student values(1,"zhangsan");
insert into t_student values(2,"lisi");
insert into t_student values(3,"wangwu");

创建StudentServlet.java

package com.xy.servlet;
import jakarta.servlet.Servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.ServletConfig;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

public class StudentServlet implements Servlet{
	public void init(ServletConfig config) throws ServletException{
		
	}
	public void service(ServletRequest request,ServletResponse response)
		throws ServletException,IOException{
		//向浏览器响应一段HTML代码
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		//编写JDBC代码,连接数据库,查询所有学生信息。
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try{
			//注册驱动
			Class.forName("com.mysql.cj.jdbc.Driver");
			//获取连接
			String url = "jdbc:mysql://localhost:3306/jdbc";
			String user = "root";
			String password = "root";
			conn = DriverManager.getConnection(url,user,password);
			//获取预编译的数据库操作对象
			String sql = "select ID,name from t_student";
			ps = conn.prepareStatement(sql);
			//执行SQL
			rs = ps.executeQuery();
			//处理查询结果集
			while(rs.next()){
				String ID = rs.getString("ID");
				String name = rs.getString("name");
				//System.out.println(ID + "," + name);
				out.print(ID + "," + name);
				
				
			}
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			//释放资源
			if(rs !=null){
			try{
				rs.close();
			}catch(Exception e){
				e.printStackTrace();
				}
			}
			if(ps !=null){
			try{
				ps.close();
			}catch(Exception e){
				e.printStackTrace();
				}
			}
			if(conn !=null){
			try{
				conn.close();
			}catch(Exception e){
				e.printStackTrace();
				}
			}
			
		}
		

		
	}
	public void destroy() {
		
	}
	public String getServletInfo() {
		return "";
	
	
}
	public ServletConfig getServletConfig() {
		return null;
	}
}
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:49:30  更:2022-04-18 17:53:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:20:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码