java基础知识3

本文深入解析了HTTP请求的GET与POST方法的区别、servlet的工作原理及其生命周期,同时还介绍了异常处理、常见运行时异常、线程操作、同步与异步的概念、常用Java类与接口、数据库三范式以及MySQL数据库连接等内容。

1.HTTP请求的GET 与POST方式的区别

GET请求表示从指定的资源请求数据,POST请求表示向指定的资源提交要被处理的数据。GET把参数包含到url发送到服务器,请求长度有限制,可以被缓存,不安全;post信息独立存在,与http一起发送到服务器,不会缓存,安全性高,刷新后数据会重新发送

2.什么是servlet

servlet是一种服务器端的java应用程序,具有独立于平台和协议的特性,可以生成Web页面,他担当客户请求和服务器相应的中间层,继承于HttpServlet;servlet有良好的生存期的定义,包括加载,实例化,初始化,处理请求,以及销毁。这个生存期由javax.servlet.Servlet接口的init,service,和destroy方法表达;Web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的do()方法。结束服务web容器调用servlet的destory()方法。Servlet被服务器实例化后,容器运行其init方法,请求到达时运行service方法,service方法自动派遣运行与请求对应的do(GET/POST)等,当服务器决定将实例销毁时调用destory方法。

servlet基本架构

public class ServletName extends HttpServlet{

public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{}

public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{}

}

3.throws,throw,try,catch,finally分别代表什么含义?在try块可以抛出异常吗?

throws在方法名的后面,将异常声明但是不处理,将异常向上抛,谁调用谁处理,使调用者知道要捕获这个异常

方法名 (参数)throws 异常1,异常2{}

throw在方法体内,明确的标出在哪抛出异常,由方法体内中的语句进行处理

try存放可能会出现的异常,也可以通过throw抛出异常

catcht捕捉try抛出的异常

finally一定会执行的代码

4.常见的运行时异常:空指针异常(NullPointerException),数组越界异常(ArrayIndexOutOfBundsException),类转换异常(ClassCastException)

5.sleep()和wait()方法的区别?

sleep是Thread类的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持;wait()是Object类的方法,此线程进入等待状态,并且解除此对象的luck,只有针对此对象发出notify方法,这个对象才有竞争运行状态的机会

6.同步与异步的区别是:同步:发送请求,等待返回的信息后才能发送下一个请求;异常:发送请求,不用等待返回的信息。随时可以发送下一个请求。做事情都会有一个流水线,两者的区别在于执行顺序的先后;

同步举例:电话,发起者要等待接收者接听后,才开始通信,需要等待返回的信息

异步举例:比如广播,发起者不用担心接收者的状态,不用等待返回的信息

7.常用的类:Class\String \Integer\StringBuffer\StringBuilder\List

常用的包:java.lang,java.util,java.sql,java.io,javac.servlet

常用的接口:HttpServletResponse,HttpServletRequest,List,Map,Document

8.数据库的三范式:

第一范式:数据表中的每一个字段都是不可再分的最小字段

 例如: userInfo: '山东省烟台市 1318162008' 依照第一范式必须拆分成
                   userInfo: '山东省烟台市'   userTel: '1318162008'两个字段

第二范式:在满足第一范式的基础上,数据表中的每一列都必须完全依赖于主键,不存在部分依赖主键或者于主键无关的列

例如:订单表只能描述订单相关的信息,所以所有的字段都必须与订单ID相关。
                  产品表只能描述产品相关的信息,所以所有的字段都必须与产品ID相关。

        因此在同一张表中不能同时出现订单信息与产品信息。

第三范式:在满足第二范式的基础上,数据表中的每一列必须与主键相关联,而不是间接关联,可以分出多张表

订单表中需要有客户相关信息,在分离出客户表之后,订单表中只需要有一个用户ID即可,而不能有其他的客户信息,因为其他的用户信息是直接关联于用户ID,而不是关联 于订单ID。

9.连接mysql数据库

public class Jdbctest{

    public static void main(String[]args){


//加载数据库驱动

Class.forname(driverManagerName);    

//建立连接

Connection cn=DriverManager.getConnection(url,username,password);

//创建发送端

PreparedStatement pst=cn.prepareStatement("INSERT INTO staff(name, age) VALUES (?, ?)“)

//执行sql语句

pst.setString(1,name);

//返回结果

Resultset rs=pst.executeQuery();

//关闭流

try{

if(rs!=null)

rs.close();

}catch(Exception e){

e.printStackTrace();

}}}}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值