小白Java从入门到放弃

1,http是什么(超文本传输协议)?

hypertext transfer protocol由w3c制订的一种网络应用层协议,它规定了浏览器与web服务器之间如何通信以及通信所使用的数据格式。

(1)如何通信

step1,建立连接

step2,浏览器将请求数据打包,发送

step3,web服务器将响应数据打包,发送

step4,web服务器关闭连接

特点:一次请求,一次连接。

优点:web服务器可以利用有限的连接资源为尽可能多的客户端服务。

缺点:无状态。

(2)数据格式

1)请求数据包

a,请求行:请求方式 请求资源路径 协议类型和版本

b,若干消息头:

一般是由w3c定义的一些健值对,浏览器与web服务器之间可以通过发送这些消息头来传递一些特定的信息。

比如,浏览器可以发送"user-agent"消息头,告诉web服务器浏览器的类型和版本。

c,实体内容

只有当发送post请求时,才会有数据(请求参数)。

2)响应数据包

a,状态行: 协议类型和版本 状态码 状态描述

注: 状态码是一个三位数字,由w3c定义,表示web服务器处理请求的一种状态。

200: 正确

500: 系统错误

404: 依据请求地址找不到对应的资源

b,若干消息头

服务器也可以发送一些消息头给浏览器,比如,"content-type"消息头,告诉浏览器服务器返回的数据类型。

c,实体内容

程序处理的结果

2,两种请求方式

(1)get方式

1)哪一些情况下,会发送get请求

a,直接输入某个地址

b,点击链接

c,表单默认提交方式

2)get请求的特点

a,会将请求参数添加到请求资源路径的后面,只能提交少量的数据(因为请求行最多只能存放大约2k左右的数据)

b,会将请求参数显示在浏览器地址栏,不安全,比如,路由器会记录请求地址。

(2)post方式

1)哪一些情况下,会发送post请求

设置表单的method="post"。

2)post请求的特点

a,会将请求参数添加到实体内容里面,可以提交大量的数据。

b,不会将请求参数显示在浏览器地址栏,相对安全(要注意,不管是什么请求,都不会对请求数据加密,一般使用https协议)。

3,servlet如何输出中文?

(1)为什么会有乱码

out.println输出中文时,默认会使用"iso-8859-1"去编码。

(2)如何解决

response.setContentType("text/html;charset=utf-8");

4,常见的错误及处理方式

(1)404

1)错误原因:

a,应用没有部署。

b,请求地址写错。

按照http://ip:port/appname/url-pattern

c,不一致。

(2)500

1)错误原因

a,程序运行时出错。

b,写错。

(3)405

1)错误原因

服务器找不到处理方法。

5,表单包含了中文参数值,如何处理?

(1)为什么会有乱码?

当表单提交时,浏览器会检查请求参数值,如果是中文,会按照打开该表单所在的页面时的字符集来编码(比如,按照"utf-8"来编码)。服务器默认情况下,会使用"iso-8859-1"来解码。

(2)如何解决?

step1,保证浏览器使用指定的字符集来打开页面。

step2,服务器端使用对应的字符集去解码。

方式一:

request.setCharacterEncoding("utf-8");

注意:只针对post请求有效。

方式二:

new String(str.getBytes("iso-8859-1"),"utf-8");

6,如何获得请求参数值?

(1)String request.getParameter(String paramName);

注意:

a,paramName必须与实际传递的参数名一致,否则会获得null。

b,有可能获得空字符串。

(2)String[] request.getParameterValues(String paramName);对于多选框和单选框,如果不选择任何选项,会获得null值。

7,servlet如何使用jdbc来访问数据库

step1,将jdbc驱动拷贝到WEB-INF\lib下。

注:

服务器一般都提供了自己的类加载器(比如tomcat就提供了自己的类加载器),这些类加载器会从WEB-INF\lib下查找字节码文件。

step2,在servlet类里面,使用jdbc 提供的

方法来访问数据库,要注意异常的处理。

8,mysql数据库的简单使用

(1)登录mysql

mysql -uroot; root用户登录mysql数据库管理系统

(2)查看当前有哪些数据库

show databases;

(3)创建一个新的数据库(同时设置字符集为utf-8)

create database what_fuck_wangqiang

default character set utf8;

(4)使用指定的数据库

use what_fuck_wangqiang;

(5)查看当前数据库有哪些表

show tables;

(6)建表

create table emp(

id int primary key auto_increment,

name varchar(50),

salary double,

age int

);

insert into emp(name,salary,age) values('Sally',20000,32);

auto_increment: 自增长列,当插入记录时,

数据库自动为该列赋一个自动增长的值。


来源链接:
发表评论 / Comment

用心评论~