知识点列表
编号名称描述级别
1 http协议是什么?对超文本协议有基本了解*
2 通讯的过程了解通讯的过程*
3 数据包的结构了解并掌握基本的数据包的结构*
4 MyEclipse工具演示:TCP/IP
Monitor
了解MyEclipse提供的抓包工具
*
5 如何获得请求参数值掌握表单处理中如何获取请求参数**
6 如何处理表单中的中文(难点)重点掌握表单处理中的中文乱码解决方案,***
7 MySql安装步骤了解MySql数据库的下载与安装是注意事项*
8 mysql的简单使用掌握Mysql数据库的基本操作,学习并掌握与
Oracle数据库之间基本用法的一些差异。
*
9 访问数据库步骤重点掌握,如何利用Servlet访问数据库。** 注:"*"理解级别"**"掌握级别"***"应用级别
1.知识点回顾
什么是servlet?
用于扩展web服务器功能的组件与规范。
扩展web服务器功能?
让服务器能够生成动态的页面
Servlet是一种组件和规范?
Servlet写好后可以在任何服务器上运行,但是有个前提,要求服务器必须遵守这些组件规范。
Servlet运行图
在程序开发过程中,我们只需要注意(7.1)从Request对象中访问参数、(7.2)将处理结果放置到Response对象中、(7.3)HelloServlet实例处理这三部分即可。
2.http协议(了解)
2.1.http协议是什么? *
超文本传输控制协议(hypertext transport protocal)。是一种应用层协议,定义了浏览器(也可以是其它程序)与web服务器之间通讯的过程与数据的格式。
2.2.通讯的过程*
1)浏览器向服务器发送建立连接的请求。
2)浏览器先将请求数据打包,向服务器发送请求。
3)服务器处理完请求,然后将数据打包,发送给浏览器。
4)服务器发送完数据,并闭连接。
如果浏览器要向服务器再次发送请求,需要重新建立连接。也就是说,浏览器与服务器之间的连接,只能处理一次请求,然后立即关闭。这种通讯方式,可以让服务器以有限的资源为更多的客户端服务。
2.3.数据包的结构*
1)请求数据包的结构
第一部分:请求行(数据包中的一行内容)
请求行包括三部分内容:
?请求方式(get/post)
?请求资源路径(端口号之后的内容,比如/appname/servlet)
?协议的类型与版本
第二部分:若干消息头(消息头是由w3c定义的一些有特殊含义的键值对)
消息头的样式,比如: content-type= text/html;
服务器和浏览器都会遵守这些消息头的约定。
消息头一般由服务器或者浏览器自动生成,但是也可以通过编程的方式生成第三部分: 实体内容
如果请求方式是post方式,请求参数及值会放在这儿。
如果请求方式是get 方式,请求参数与值是包含在请求资源路径里面。
2)响应数据包的结构
第一部分:状态行
协议的类型与版本
状态码(状态码是一个数字,不同的数字代表
不同的含义,比如
?500: 系统错误(即程序代码有误)
?404: 找不到资源(访问路径错误)
?200: 正确
状态码的描述
第二部分:若干消息头
第三部分: 实体内容
服务器返回给浏览器的处理结果
2.4.MyEclipse工具演示:TCP/IP Monitor *
TCP/IP Monitor相当于一个代理服务器。
代理服务器原理
步骤1
新建web02工程
步骤2(可选)
MyEclipse小技巧(定制创建的文件模板)
1)“Customize Perspective”选项
2)选择你需要的模板(此处我需要HTML Basic Templates)
3)新建文档时就可以找到你定制的模板类型了
步骤3
在WebRoot下新建addEmp.html
步骤4
编辑addEmp.html
说明
使用MyEclipse的HTML Basic Templates生成的HTML模板样式如下
?在正式开发时是必须加上的;学习练习时则可加可不加?标记必须加上,这是一种规范写法,后续会讲
步骤5
部署应用并访问addEmp.html
步骤6
打开TCP/IP Monitor
步骤7
在“TCP/IP Monitor”视图空白处点击右键,出现“Properties”
步骤8
出现对话框点击“Add”按钮
步骤9
增加新的监视器
步骤10
点击“Start”启动代理服务器,“OK”
步骤11
访问地址栏输入“http://localhost:8888/web02/addEmp.html”
步骤12
查看数据包内容
显示内容说明
1)AddEmpServlet.java
2)addEmp.html
3.get/post请求***
1)哪一些是get请求
?在浏览器地址栏直接输入一个地址。
?表单默认的提交方式。
?点击链接
2)哪一些是post请求
?给表单设置method="post"。
3)get/post方式的区别
?get方式会将请求参数及参数值放在请求资源路径里面,携带的数据大小有限制,不适合提交大量的数据;post方式会将请求参数及参数值放在实体内容里面,理论上没有限制,
适合大量数据的提交。
?安全上来讲,post方式相对安全(因为请求参数及值存放在实体内容里面,而get方式会将请求参数及值显示在浏览器地址栏)。但是要注意,post方式并没有将数据加密。
【案例1】提交方式演示**
1)addEmp.html
content="text/html; charset=utf-8">
2)AddEmpServlet.java
package web;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AddEmpServlet extends HttpServlet{
public void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
String name = request.getParameter("name");
double salary = Double.parseDouble(
request.getParameter("salary"));
int age = Integer.parseInt(
request.getParameter("age"));
System.out.println("name:" + name);
System.out.println("salary:" + salary);
System.out.println("age:" + age);
}
}
3)web.xml
xmlns="https://www.wendangku.net/doc/0b17774108.html,/xml/ns/j2ee" xmlns:xsi="https://www.wendangku.net/doc/0b17774108.html,/2001/XMLSchema-instance" xsi:schemaLocation="https://www.wendangku.net/doc/0b17774108.html,/xml/ns/j2ee https://www.wendangku.net/doc/0b17774108.html,/xml/ns/j2ee/web-app_2_4.xsd">
结果演示
1)访问addEmp.html
2)使用get方式提交
get方式会将请求参数及参数值放在请求资源路径里面
携带的数据大小有限制,不适合提交大量的数据
3)使用post方式提交
post方式会将请求参数及参数值放在实体内容里面,理论上没有限制,适合大量数据的提交
4.表单处理***
4.1.如何获得请求参数值**
1)String request.getParameter(String paraName);
要注意的问题: 如果paraName与实际的请求参数名不一致,则返回null。
如果没有输入参数值,则返回""。
2)String[] request.getParameterValues(String paraName);
用在有多个请求参数名相同的情况下使用。
比如?interest=fishing&interest=cooking
演示1
如果paraName与实际的请求参数名不一致,则返回null;
1)web.xml
2)AddServlet.java
3)控制台打印
演示2
如果没有输入参数值则返回空字符串1)姓名为空