前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java从入门到放弃

Java从入门到放弃

作者头像
企鹅号小编
发布2018-02-08 16:13:34
8970
发布2018-02-08 16:13:34
举报
文章被收录于专栏:编程编程

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: 自增长列,当插入记录时,

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

本文来自企鹅号 - 按键商人媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 按键商人媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库智能管家 DBbrain
数据库智能管家(TencentDB for DBbrain,DBbrain)是腾讯云推出的一款为用户提供数据库性能、安全、管理等功能的数据库自治云服务。DBbrain 利用机器学习、大数据手段、专家经验引擎快速复制资深数据库管理员的成熟经验,将大量传统人工的数据库运维工作智能化,服务于云上和云下企业,有效保障数据库服务的安全、稳定及高效运行。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档