今日内容:
- HTTP
- Request
- 案例:用户登录
1 HTTP
2.1 概念
- Hyper Text Transfer Protocol 超文本传输协议
- 传输协议:定义了,客户端和服务器端通信时,发送数据的格式
特点:
- 基于TCP/IP的高级协议
- 默认端口号:80
- 基于请求/响应模型的:一次请求对应一次响应,先有请求后有响应
- 无状态的:每次请求之间相互独立,不能交互数据
特点:
bin :tomcat的执行的文件.
conf :tomcat的配置文件(*****).
lib :tomcat运行的需要的jar包.
logs :tomcat的运行的日志文件(*****).
temp :tomcat产生临时文件存放的路径.
webapps :tomcat发布的web项目的路径(*****).
work :tomcat正在运行时所产生的临时文件所存放的位置.
website
|-----静态资源
|-----WEB-INF
|-----web.xml :项目的配置文件。可选的(Servlet2.5之前必须有,Servlet3.0之后可以没有)
|-----classes :项目的字节码文件。可选的,存放class文件
|-----lib :项目的jar包。可选的,存放第三方jar包
概念:Extensible Markup Language 可扩展标记语言
<user> <student>
功能
存储数据
xml与html的区别
1.xml文档的后缀名 .xml
2.xml第一行必须定义为文档声明
3.xml文档中有且仅有一个根标签
4.属性值必须使用引号(单双都可)引起来
5.标签必须正确关闭
6.xml标签名称区分大小写
<?xml version='1.0' ?>
<users>
<user id='1'>
<name>zhangsan</name>
<age>23</age>
<gender>male</gender>
<br/>
</user>
<user id='2'>
<name>lisi</name>
<age>24</age>
<gender>female</gender>
</user>
</users>
JavaScriptgaoji
1.创建
2.方法
1) 与弹出框有关的方法:
alert() 显示带有一段消息和一个确认按钮的警告框。
confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。
- 如果用户点击确定按钮,则方法返回true
- 如果用户点击取消按钮,则方法返回false
prompt() 显示可提示用户输入的对话框。
- 返回值:获取用户输入的值
JavaScript = ECMAScript + JavaScript自己特有的东西(BOM+DOM)
脚本语言
不需要编译,直接就可以被浏览器解析执行了
格式
<form action="路径" method="post">
<input type="submit" value="提交"/>
</form>
常用属性
get 和 post 的区别
get:
1.请求参数会在地址栏中显示。会封装到请求行中。
2.请求参数大小是有限制的。
3.不太安全。
post:
1.请求参数不会再地址栏中显示。会封装在请求体中。
2.请求参数的大小没有限制。
3.较为安全。
补充
1、表单元素标签必须放在表单form中才有效
2、所有的表单元素都有name属性,后台接收表单元素的值时,就是根据其name属性来接收的
3、所有的表单元素都有value属性:提交到后台的值
4、单选按钮和复选按钮必须要有的属性:value属性
5、单选和复选按钮默认被选中的属性:checked属性
优点:
缺点:
优点:
缺点:
概念:其实就是一个容器(集合),存放数据库连接的容器。
当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器
好处:
实现:
标准接口:DataSource (javax.sql包下)
方法:
市面上流行的技术
步骤:
导入jar包 (两个) c3p0-0.9.5.2.jar和mchange-commons-java-0.2.12.jar ,
* 不要忘记导入数据库驱动jar包
定义配置文件:
* 名称: c3p0.properties 或者 c3p0-config.xml
* 路径:直接将文件放在src目录下即可。
代码:
//1.创建数据库连接池对象
DataSource ds = new ComboPooledDataSource();
//2. 获取连接对象
Connection conn = ds.getConnection();
步骤:
定义配置文件:
代码:
//3.加载配置文件
Properties pro = new Properties();
InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(is);
//4.获取连接池对象
DataSource ds = DruidDataSourceFactory.createDataSource(pro);
//5.获取连接
Connection conn = ds.getConnection();
导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
select
列名列表
from
表名列表
where....
笛卡尔积:
select 字段列表 from 表名1 [inner] join 表名2 on 条件
例如:
SELECT * FROM emp INNER JOIN dept ON emp.`dept_id` = dept.`id`;
SELECT * FROM emp JOIN dept ON emp.`dept_id` = dept.`id`; -- inner 可省略