servlet和jsp学习(二)

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,实体内容:具体的返还数据
      程序处理的结果

(3)对开发者的要求

  • 1)不用开发者处理的地方
    • 浏览器自动打包请求数据
    • 浏览器自动发送请求数据
    • 服务器自动打包响应数据
    • 服务器自动发送响应数据
  • 2)需要开发者处理的地方
    • 提供具体的请求中的业务数据
    • 提供具体的响应中的返还数据
    • 通过ruquest处理请求数据,通过response处理响应数据
      开发者会使用request和response就行了

2.两种请求方式

(1)get方式

  • 1)哪一些情况下,会发送get请求
    • a,直接输入某个地址
    • b,点击链接
    • c,表单默认提交方式
  • 2)get请求的特点
    • a,会将请求参数添加到请求资源路径的后面,只能提交少量的数据(因为请求行最多只能存放大约2k左右的数据)
    • b,会将请求参数显示在浏览器地址栏,不安全,比如,路由器会记录请求地址。
  • 3)所有请求默认都是get请求

(2)post方式

  • 1)采用实体内容传参
  • 2)操作方式:在form上面加上属性method=”post”。
  • 2)post请求的特点
    • a,会将请求参数添加到实体内容里面,可以提交大量的数据。
    • b,不会将请求参数显示在浏览器地址栏,相对安全(要注意,不管是什么请求,都不会对请求数据加密,一般使用https协议)。

3.servlet中文乱码问题

(1)传入服务器的内容由乱码

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

解决方案:
  • setp1: 保证浏览器使用指定的字符集来打开页面。
    (注意setp1和下面的step2没有内在联系,setp1是默认都这样做)
  • setp2: 服务器端使用对应的字符集去解码。
    • 1)在接收到内容后先反解码,再解码,比如浏览器是utf-8编码形式,我们按照ISO8859-1解码了,就需要以下代码

      byte[] bs = userName.getBytes("ISO8859-1");//按照ISO8859-1反解码
      userName = new String(bs,"utf-8");//按照utf-8编码
    • 2)在Tomcat的配置文件server.xml里面的标签内加入属性URIEncoding=”utf-8”
      • 优点:简单
      • 缺点,只对get访问有效(因为get是路径编码形式,post就不是啦)
    • 3)在接收参数前加req.setCharacterEncoding("utf-8");//声明实体内容的编码为utf-8
      • 优点:简单
      • 缺点:只对post访问有效
        * 总结:setp2里面的2)和3)结合使用! *

(2)客户端接收的网页有乱码

为什么会有乱码?—-因为out.println输出中文时,默认会使用”ISO8859-1”去编码。

解决方案:
  • response.setCharacterEncoding(“utf-8”);//让服务器使用utf-8编码
  • response.setContentType(“text/html;charset=utf-8”);//浏览器使用utf-8解码
    注:上面两句话写一句即可,另一个会默认相同!一般选择写第二个!!

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

(1)404

(2)500

  • 1)错误原因
    • a,程序运行时出错。
    • b,写错。

(3)405

  • 1)错误原因
    服务器找不到处理方法。

5.如何获得请求参数值?

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

注意:

  • a,paramName必须与实际传递的参数名一致,否则会获得null。
  • b,有可能获得空字符串。

(2)String[] request.getParameterValues(String paramName);

对于多选框和单选框,如果不选择任何选项,会获得null值。

6.servlet如何使用jdbc来访问数据库

  • step1,将jdbc驱动拷贝到WEB-INF\lib下。
    注:
    服务器一般都提供了自己的类加载器(比如tomcat
    就提供了自己的类加载器),这些类加载器会从
    WEB-INF\lib下查找字节码文件。
  • step2,在servlet类里面,使用jdbc 提供的
    方法来访问数据库,要注意异常的处理。

7.mysql数据库的简单使用

  • (1)登录mysql
    mysql -uroot; root用户登录mysql数据库管理系统
  • (2)查看当前有哪些数据库
    show databases;
  • (3)创建一个新的数据库(同时设置字符集为utf-8)
    create database jsd1407
    default character set utf8;
  • (4)使用指定的数据库
    use jsd1407;
  • (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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值