大学全部电脑知识点
作者:互联网
1.主观与客观的定义:
①主观性是指不依靠实际情况,而仅仅依靠自己的意愿和偏见。
②客观性是不带有个人偏见地审视事物的本来面目。
→主观=偏见,客观=不偏见
2.逻辑结构与物理结构的定义:
①客观事物具有的结构特点称为逻辑结构
②逻辑结构的数据在计算机中的组织形式称为物理结构
3.程序的定义:
①程序是计算机指令的组合,用来控制计算机的工作流程,完成一定的逻辑功能,来实现任务。
4.算法的定义
①算法是程序的逻辑抽象,是解决问题的策略
②具有的特定:正确性、可读性、健壮性、高效性
③高效性:时间快,空间小
④算法的分类:(1)自然语言;(2)程序设计代码;(3)伪代码
⑤算法的时间复杂度=控制结构+源操作
5.数据结构定义:数据之间的关系
分类:①逻辑结构
②物理结构 (存储结构)
6.数学模型的定义
抽象出数据的逻辑结构形成数学模型
7..……性的解释
①有穷性:每一个步骤都要在规定时间内完成
②确定性:每一个定义都是无歧义的
③有效性:每一个运算都符合语法规则
8.关于输入和输出
输入和输出都可以为多个,但是输出至少为1。
9.JSP的定义:Java Server Pages,是一种动态网页开发技术,可以混合编写静、动态html。
10.常见符号的意义
①:HTTP:超文本传输协议,实现网络的信息传输
(1)服务器通过HTTP将网页的HTML传输给浏览器,然后显现
(2)HTTP用于定义服务器与Web浏览器之间交换数据的过程以及数据本身的格式。
②:URL:统一资源定位符,实现互联网信息定位的统一标识
③:HTML:超文本标记语言,实现信息的表示与存储
④:Web是开发互联网应用的技术总称,
它是一个分布式的超媒体信息系统,它将大量的信息分布在网上,为用户提供更多的多媒体网络信息服务
其中每一次信息交换都要涉及服务端和客户端两个层面
11.JDK称为java开发包或者java开发工具,是java的核心
JDK中包含JRE、Java API、java util:运行环境、Java核心类库、Java工具
12.C/S(客户端/服务器)Client/Server
C/S的前端向数据库发出请求,后端将数据库里的数据提交给前端
C/S的三层架构:表示、功能、数据层
13.B/S (客户端/服务器)Browser/Server
1.只有将编写好的JSP页面文件保存到Tomcat服务器的某个web服务目录中,远程的用户才可以通过浏览器访问该Tomcat服务器上的某个JSP页面
我们认为网站就是一个web服务目录
基本概念
①导包
import java.util.*;
import java.sql.*;
②熟知基本流程:
(1)加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
(2)创建连接对象
static Connection connnection;
(3)创建预处理的语句对象
static PreparedStatement preparedStatement;
preparedStatement = connnection.prepareStatement(sql);
(4)发送SQL命令
(5)处理结果
(6)释放资源
③熟知基本概念
(1)通过java代码或者jdbc的API向数据库发送SQL命令,然后由数据库去执行操作。
(2)静态变量可以直接调用
(3)根据实现内容定义范围
eg:无论是哪个操作都得创建连接对象,所以我们将连接对象封装到一个方法中,在具体方法中直接调用,然后得到连接对象
public static Connection getCon() {
String USERNAME = "root";
String PASSWORD = "root";
String URL = "jdbc:mysql://localhost:3306/demo";
if (connnection == null) {
try {
connnection = DriverManager.getConnection(URL, PASSWORD, USERNAME);
} catch (SQLException e) {
e.printStackTrace();
}
}
return connnection;
}
(4)URL的讲解:
jdbc:mysql://localhost:3306/demo
jdbc:要连接的数据库地址
(5)如果某个量是通用的,那么将其定义为参数形式,可以多次改变这个量。
④熟知基本的方法
从数据库驱动类中得到设置好的连接对象:DriverManager.getConnection()
⑤调用者传入的参数和类型不确定时定义为不定参数Object...
对不定参数的使用类似于数组。
public class DButil {
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
static Connection connnection;
static PreparedStatement preparedStatement;
public static Connection getCon() {
String USERNAME = "root";
String PASSWORD = "root";
String URL = "jdbc:mysql://localhost:3306/demo";
if (connnection == null) {
try {
connnection = DriverManager.getConnection(URL, PASSWORD, USERNAME);
} catch (SQLException e) {
e.printStackTrace();
}
}
return connnection;
}
public static int executeUpdate(String sql, Object... params) {
//设置改变的行数
int row = 0;
//为连接对象赋值
connnection = getCon();
try {
//为语句对象赋值
preparedStatement = connnection.prepareStatement(sql);
if (params != null) {
for (int i = 0; i < params.length; i++) {
preparedStatement.setObject(i + 1, params[i]);
}
}
// 为所有参数赋值完后,发送SQL命令:预处理对象调用本身方法。
row = preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 释放资源
try {
if (preparedStatement != null) {
preparedStatement.close();
// 设置为空指针
preparedStatement = null;
}
if (connnection != null) {
connnection.close();
connnection = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// 将受影响的行数返回给调用者,增删改中的处理结果由调用者处理。
return row;
}
public static List<Map<String, Object>> executeQuery(String sql, Object... params) {
// 要对list这个集合进行操作,定义一个局部变量并初始化。
// 最开始这个集合是空的,当返回的结果集有数据时才会开始分配存储空间。
List<Map<String, Object>> list = null;
ResultSet resultSet = null;
connnection = getCon();
try {
preparedStatement = connnection.prepareStatement(sql);
if (params != null) {
for (int i = 0; i < params.length; i++) {
preparedStatement.setObject(i + 1, params[i]);
}
}
/*
* 实现流程: 查询数据库后是有结果的 实例化一个集合来存这个结果
* 用while循环来一行一行地处理这个结果,每一行所包含的列(数据类型)是不同的
* 所以从一行里提取每一个列时,列名作为为key(序号是从1开始的),列值作为value
*
* 该集合用List<Map<String, Object>>来实现(List相当于数组,可以存储多行数据)
* 以Map键值对的形式存储key和value 然后将整个Map存入List当中 最后返回
*/
// 发送SQL命令
resultSet = preparedStatement.executeQuery();
// 判断结果集是否为空
if (resultSet != null) {
// 将集合对象(返回值对象)实例化,相当于分配存储空间
// 有了存储空间,就能将结果集的数据放到list集合里
list = new ArrayList<Map<String, Object>>();
// 结果集的元数据:提供结果集的相关信息
ResultSetMetaData resultSetMetadata = resultSet.getMetaData();
// 从结果集的元数据当中得到表的列的个数
int columns = resultSetMetadata.getColumnCount();
// next方法返回结果为真,结果集是有记录的
while (resultSet.next()) {
// 实例化Map
Map<String, Object> row = new HashMap<>();
// 利用for循环来逐一地获取列名
for (int i = 0; i < columns; i++) {
// row.put(key,value),
String columnName = resultSetMetadata.getColumnName(i + 1);
row.put(columnName, resultSet.getObject(columnName));
}
// 将结果存入list当中
list.add(row);
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 后创建的对象要先释放
try {
if (resultSet != null) {
resultSet.close();
resultSet = null;
}
if (preparedStatement != null) {
preparedStatement.close();
preparedStatement = null;
}
if (connnection != null) {
connnection.close();
connnection = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// 返回结果
return list;
}
public static void main(String[] args) {
// int row = executeUpdate("insert into student values()", new Object[]
// {});
//
// if (row > 0) {
// System.out.println("ok");
//
// } else {
// System.out.println("error");
// }
List<Map<String, Object>> list = executeQuery("select * from student", null);
// 每一个成员是一个Map,这个成员叫o,在list里面
for (Map<String, Object> o : list) {
// 每个成员是字符串形式,在o的keySet()里
for (String key : o.keySet()) {
System.out.print(o.get(key) + "\t");
}
System.out.println();
}
}
}
1.Map接口是一种双列集合,它的每个元素都包含一个键对象Key和值对象Value
Key映射Value的关系用Map存储起来。
2.要求:
①Key不可以重复
②数据类型随意。
③Key映射Value
3.功能:
void put(Object key,Object value)向Map集合中添加映射关系
int size()返回Map集合的映射关系的个数
Object get(Object key)返回指定的key对应的值,若不存在,返回null
Object getOrDefault(Object key,Object defalut Value)返回指定的key对应的值,若不存在,返回defaultValue
Object putIfAbsent(Object key,Object value)添加指定的key对应的值,若存在,返回已存在的Value
boolean containsKey(Object key)查看Map集合中是否存在指定的key
boolean containValue(Object value)查看Map集合中是否存在指定的value
Object remove (Object key)删除并返回key的映射元素
Object remove(Object key,Object value)删除key的同时,删除key对应的value
Object replace(Object key,Object value)修改key对应的value
void clear()清空整个Map集合中的键值映射元素
Set keySet()以Set集合的形式返回Map集合中所有的键值对象Value
Collection values()以Collection集合的形式返回Map集合中所有的键值对象Value
Set<Map.Entry<Key,Value>> entrySet)()将Map集合转换为存储元素类型为Map的Set集合
void forEach(BiConsumer action)通过传入一个函数式接口对Map集合进行遍历
1.bin目录
bin的英文是binary:二进制的意思
高级语言翻译成二进制的机器代码存放在bin目录下,才能被计算机执行。
eg:①存放启动、停止服务器的脚本文件
2.conf
存放服务器的配置文件
3.lib目录(library)
:存放的是jar文件,服务器和所有的Web应用程序都可以访问
4.DLL目录
是Dynamic Link Library的缩写,意为动态链接库
5.logs:存放服务器的日志文件
6.temp:存放Tomcat运行时的临时文件
7.webapps:Web应用的发布目录
8.work:Tomcat的工作目录,默认情况下把编译JSP文件生成的servlet类文件放于此目录下
9.webapps:Web应用的发布目录
1:脚本与声明之间的区别:脚本每次刷新都不动,属于方法的局部变量,不能被线程共享
声明每次刷新时+1,属于Java的成员变量,被多个线程共享。
1.server.xml的基本框架
<Server>
<Service>
<Connector />
<Connector />
<Engine>
<Host>
<Context />
</Host>
</Engine>
</Service>
</Server>
2.详细代码
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
//客户端可以通过8080端口号使用http协议访问Tomcat
<Connector port="8080" protocol="HTTP/1.1"
//connectionTimeout :单位是毫秒,Connector从接受连接到提交URI的等待的时间。
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
①Server:
Server元素在最顶层,代表整个Tomcat容器,是整个配置文件的根元素,因此它必须是server.xml中唯一一个最外层的元素。一个Server元素中可以有一个或多个Service元素
②Service:在Connector和Engine外面包了一层,把它们组装在一起,对外提供服务。一个Service可以包含多个Connector,但是只能包含一个Engine;其中Connector的作用是从客户端接收请求,Engine的作用是处理接收进来的请求。
③Connector:连接器:外部客户端从特定Service发送请求和接收响应的接口
Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine来处理这个请求,并把产生的Request和Response对象传给Engine。
通过配置Connector,可以控制请求Service的协议及端口号
④:<Engine><Host><Context>:容器
(1)容器的功能是处理Connector接收进来的请求,并产生相应的响应
。
(2)Engine包含Host,Host包含Context
(3)一个Engine组件可以处理Service中的所有请求
Engine组件在Service组件中有且只有一个;Engine是Service组件中的请求处理组件。Engine组件从一个或多个Connector中接收请求并处理,并将完成的响应返回给Connector,最终传递给客户端。
(4)一个Host组件可以处理发向一个特定虚拟主机的所有请求
Host是Engine的子容器。Engine组件中可以内嵌1个或多个Host组件,每个Host组件代表Engine中的一个虚拟主机。Host组件至少有一个,且其中一个的name必须与Engine组件的defaultHost属性相匹配。
Host虚拟主机的作用,是运行多个Web应用(一个Context代表一个Web应用),并负责安装、展开、启动和结束每个Web应用。
(5)一个Context组件可以处理一个特定Web应用的所有请求
一个Context代表一个Web应用
⑤protocol属性规定了请求的协议,port规定了请求的端口号,redirectPort表示当强制要求https而请求是http时,重定向至端口号为8443的Connector。
⑥unpackWARs指定了是否将代表Web应用的WAR文件解压;如果为true,通过解压后的文件结构运行该Web应用,如果为false,直接使用WAR文件运行Web应用。
⑦Listener(即监听器)定义的组件,可以在特定事件发生时执行特定的操作;被监听的事件通常是Tomcat的启动和停止。
VersionLoggerListener:当Tomcat启动时,该监听器记录Tomcat、Java和操作系统的信息。该监听器必须是配置的第一个监听器。
AprLifecycleListener:Tomcat启动时,检查APR库,如果存在则加载。APR,即Apache Portable Runtime,是Apache可移植运行库,可以实现高可扩展性、高性能,以及与本地服务器技术更好的集成。
JasperListener:在Web应用启动之前初始化Jasper,Jasper是JSP引擎,把JVM不认识的JSP文件解析成java文件,然后编译成class文件供JVM使用。
JreMemoryLeakPreventionListener:与类加载器导致的内存泄露有关。
GlobalResourcesLifecycleListener:通过该监听器,初始化< GlobalNamingResources>标签中定义的全局JNDI资源;如果没有该监听器,任何全局资源都不能使用。< GlobalNamingResources>将在后文介绍。
ThreadLocalLeakPreventionListener:当Web应用因thread-local导致的内存泄露而要停止时,该监听器会触发线程池中线程的更新。当线程执行完任务被收回线程池时,活跃线程会一个一个的更新。只有当Web应用(即Context元素)的renewThreadsWhenStoppingContext属性设置为true时,该监听器才有效。
1:九九乘法表
<%
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
out.println(j + "*" + i + "=" + j * i + "\t");
}
out.println("</br>");
}
%>
1×1
1×2 2×2
1×3 2×3 3×3
1:将整数转换成小数
<%!
String porint=".";
public String name(String money){
String str=money;
//indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
如果没有找到匹配的字符串则返回 -1。
if(money.indexOf(".")==-1)
str= money+".00";
return str;
}
%>
<%=name("12") %>
yyyy-MM-dd HH:mm:ss.SS的大小写的含义
yyyy:代表年
MM:代表月(MM和M一样,区别就是MM表示从零开始,比如四月份,MM显示04,M显示4,后面的如同)
dd:代表日
HH:代表24小时制的小时
hh:代表12小时制的小时
mm:代表分钟
ss:代表秒
SSS:代表毫秒
标签:知识点,Web,Map,connnection,Object,电脑,大学,key,null 来源: https://blog.csdn.net/AngerChinese/article/details/121777222