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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java后端技术

Linux系统基础知识整理

  本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰的介绍,使得哪些刚接触Linux的小伙伴可以快速入门,也方便自己以后进行复习查阅。

1697
来自专栏一“技”之长

Git命令集十三——快照操作 原

    Git工具中提供了一个stash命令,这个命令的作用是创建快照。快照主要的用途是将当前未更新到缓存区的修改进行入栈保存,创建快照后,Git的状态会变回上...

942
来自专栏Java技术分享圈

杨老师课堂之JavaEE三大框架Struts2入门第一课

...

693
来自专栏lonelydawn的前端猿区

笔记本命令提示符开启wifi

首先win+r打开运行,输入cmd进入命令提示符 输入下列代码: netsh wlan set hostednetwork mode=allow ssid=wi...

2078
来自专栏云霄雨霁

Mybatis--全局配置文件笔记

1220
来自专栏技术墨客

ESC服务搭建CheckList 原

注意:ESC有安全策略组,修改端口时需要在ESC的管理页面上检查相关的端口是否开放。

974
来自专栏web编程技术分享

第八节 - 部门管理模块(编写PHP程序)

33110
来自专栏Java学习123

tomcat结合nginx使用小结

4177

浅析Kafka的消费者和消费进度的案例研究

本文主要讨论Kafka组件中的消费者和其消费进度。我们将通过一个使用Scala语言实现的原型系统来学习。本文假设你知道Kafka的基本术语。

1.1K0
来自专栏C/C++基础

Linux命令(8)——rz命令与sz命令

rz命令(Receive ZMODEM),使用ZMODEM协议,将本地文件批量上传到远程Linux/Unix服务器,注意不能上传文件夹。

3381

扫码关注云+社区

领取腾讯云代金券