Java项目笔记01
1 Tomcat问题
1 今天用了Ecplise和MyEcplise想着用同一个路径下的Tomcat,但是却发现配置完Ecplise后MyEcplise却不能用了,并且后面在bin里启动Tomcat还是有问题,最后把压缩包里的复制替换原来的才解决了问题。
2 在启动Tomcat时发现提示超时,需要修改Tomcat的启动时间限制。
2 JavaWeb基础
1 在MyEcplise里创建webproject项目
MyHtml是自己创建的静态html界面。web.xml则是一系列规范的限制。在src下创建servlet类,实现操作动态资源。
2 静态web和动态web的区别:静态web是代码不会改变的,而动态web的代码会发生变化。静态web常用技术有:HTML、XML。动态web常用技术有:ASP PHP JSP ASP.NET
3 Tomcat是一个web服务软件,作用:把本地的资源共享给外部访问。在电脑上安装了这个软件后,那么这台电脑就可以叫做服务器。
4 在访问的时候访问路径是:http://localhost:8080/first/hello
在刚建好的工程中会自动生成一个虚拟的hello路径,需要去修改自己认为合适的。
只写一个工程名会出现如下情况:
3 HTTP协议
浏览器发出请求,数据库进行响应。一个请求有且仅有一个响应
http协议: 对浏览器客户端 和 服务器端 之间数据传输的格式规范。
TCP/IP:关注的是客户端与服务器之间的数据是否传输成功。HTTP:在TCP/IP的基础上有关注数据传输的格式是否规范。
HTTP请求:
GET /day09/hello HTTP/1.1 -请求行
下面就是多个键值对
Host: localhost:8080 --请求头(多个key-value对象)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,en-us;q=0.8,zh;q=0.5,en;q=0.3 --浏览器接受的语言
Accept-Encoding: gzip, deflate --浏览器接受的数据压缩格式
Connection: keep-alive
--- 一个空行
name=eric&password=123456 --(可选)实体内容
HTTP请求的格式: 一个请求行,多个请求头,一个空行,一个实体内容
HTTP1.1表示版本
http1.0:当前浏览器客户端与服务器端建立连接之后,只能发送一次请求,一次请求之后连接关闭。
http1.1:当前浏览器客户端与服务器端建立连接之后,可以在一次连接中发送多次请求。(基本都使用1.1)
注:在一个网页中有三个图片则需要发送四次请求;第一个请求是加载网页,后面三个是加载图片。因为图片加载时<img src="路径"/>,每加载一次资源就重新发送一次请求,不加在资源时则不发送请求。当三张图片一样时则发送两次请求,因为浏览器内部做了优化,把第一次加载的图片缓存了下来,后面当再使用这个图片时,就会把请求给拦截了。
/day09/hello:资源标记符
URL: 统一资源定位符。http://localhost:8080/day09/testImg.html。只能定位互联网资源。是URI 的子集。
URI: 统一资源标记符。/day09/hello。用于标记任何资源。可以是本地文件系统,局域网的资源(//192.168.14.10/myweb/index.html), 可以是互联网。
GET:请求方式
(1)GET方式提交 :
a)地址栏(URI)会跟上参数数据。以?开头,多个参数之间以&分割。
GET /day09/testMethod.html?name=eric&password=123456 HTTP/1.1
b)GET提交参数数据有限制,不超过1KB。
c)GET方式不适合提交敏感密码。
d)注意: 浏览器直接访问的请求,默认提交方式是GET方式
get 提交的内容在url后。
2)POST方式提交
a)参数不会跟着URI后面。参数而是跟在请求的实体内容中。没有?开头,多个参数之间以&分割。
b)POST提交的参数数据没有限制。
c)POST方式提交敏感数据。
post提交的内容在实体中。
注:(1)实体内容:浏览器直接可以看到的内容。(2)在获取参数的过程中当遇到中文字符时会出现乱码问题,这是因为在传输数据时服务器把字节转换为字符采用的是字符集iso-8859-1,而web页面和Java程序内采用的是uts-8造成的。
解决方法:对于post方式
request.setCharacterEncoding("utf-8"); ---直接全局修改
对于get方式
String name = new String(name.getBytes("iso-8859-1"),"utf-8"); ---手动修改不一致的对象
服务器发送给浏览器出现中文乱码
对请求和相应乱码问题的总结:
4 Servlet
(1)在servelet加载中是先找动态资源再找静态资源,如两个资源名重复则会把静态资源覆盖。
(2)servlet的生命周期
(3)web应用路径:部署到Tomcat应用的项目名称。
在写web项目时有时需要改一下项目名称,在MyEcplise中rename修改只是修改了在MyEcplise的项目名称,但是Tomcat中还是没有修改,就会早成无法访问,需要在项目properties--MyEcplise---web中在配置。(比较高的版本好像没有这个,我不知道怎么改了,只能在web.xml中修改配置了)。
(4) 域对象:作用是用于保存数据,获取数据。可以在不同的动态资源之间共享数据。
(5)转发和重定向的区别:
1)转发
a)地址栏不会改变
b)转发只能转发到当前web应用内的资源
c)可以在转发过程中,可以把数据保存到request域对象中
2)重定向
a)地址栏会改变,变成重定向到地址。
b)重定向可以跳转到当前web应用,或其他web应用,甚至是外部域名网站。
c)不能再重定向的过程,把数据保存到request中。
注:两个servlet之间共享数据通常考虑域对象,context是全局的,可能会覆盖;request域对象必须要使用转发技术,在打开新的网页时不会发送数据。
5 Cookie和Session
Cookie技术:会话数据保存在浏览器客户端。
Session技术:会话数据保存在服务器端。
Cookie原理
1)服务器创建cookie对象,把会话数据存储到cookie对象中。new Cookie("name","value");
2) 服务器发送cookie信息到浏览器
response.addCookie(cookie);举例: set-cookie: name=eric (隐藏发送了一个set-cookie名称的响应头)
3)浏览器得到服务器发送的cookie,然后保存在浏览器端。
4)浏览器在下次访问服务器时,会带着cookie信息 举例: cookie: name=eric (隐藏带着一个叫cookie名称的请求头)
5)服务器接收到浏览器带来的cookie信息 request.getCookies();
6 JSP
Servlet的作用: 用java语言开发动态资源的技术!!!
Jsp的作用:用java语言(+html语言)开发动态资源的技术!!!
JSP的特点:
1)jsp的运行必须交给tomcat服务器!!!! tomcat的work目录: tomcat服务器存放jsp运行时的临时文件
2)jsp页面既可以写html代码,也可以写java代码。 (html页面不能写java代码 。而jsp页面可以写java代码)
Jsp就是一个servlet程序!!! servlet的技术可以用在jsp程序中 jsp的技术并不是全部适用于servlet程序!
Servlet技术: 开发动态资源。是一个java类,最擅长写java代码
jsp技术: 开发动态资源。通过java代码最擅长输出html代码。
各取所长: 在web项目中涉及到逻辑:
1)接收参数 servlet做
2)处理业务逻辑,返回结果 servlet做
3)显示数据到浏览器 jsp做
4)跳转到其他页面 servlet做
servlet+jsp模式
servlet: Jsp:
1)接收参数 1)从域对象取出数据
2)处理业务逻辑 2)把数据显示到浏览器
3)把结果保存到域对象中
4)跳转到jsp页面
7 JavaBean
JavaBean就是一个普通的java类。只有符合以下规定才能称之为javabean:
1)必须提供无参数的构造方法
2)类中属性都必须私有化(private)
3)该类提供公开的getter 和 setter方法
JavaBean的作用: 用于封装数据,保存数据。 访问javabean只能使用getter和setter方法
8 一个小技巧
直接在dao包下创建impl包,只需要把包名创建成dao.impl的形式即可。
选择下三角标志 然后选择package presention--->第二个,选择后并不会立即显示成包下包的结构,只需要在新建一个包就会立刻刷新显示了。
9
使用过滤器时千万不要忘了在web.xml中进行配置
12213
Java项目笔记01的更多相关文章
- ASP.NET Identity 2集成到MVC5项目--笔记01
Identiry2是微软推出的Identity的升级版本,较之上一个版本更加易于扩展,总之更好用.如果需要具体细节.网上具体参考Identity2源代码下载 参考文章 在项目中,是不太想直接把这一堆堆 ...
- Java学习笔记:01面向对象-继承
01面向对象-继承 一.java中的数据类型 1.基本数据类型:四类 八种 byte(1) boolean(1) short(2) char(2) int(4) float(4) long(8) do ...
- Java学习笔记 01 基本数据类型、标识符、关键字和运算符
一.基本数据类型 基本数据类型 数据类型 内存空间(8位等于1字节) 取值范围 备注 byte 8位 -128~127 short 16位 -32768~32767 int 32位 -2147 ...
- 【8-19】java学习笔记01
JDK API文档 java SE 8 API文档:http://www.oracle.com/technetwork/java/javase/documentation/jdk8-doc-downl ...
- Java学习笔记01
1.原型设计: 将页面的模块.元素.人机交互的形式,利用线框描述的方法,将产品脱离皮肤状态下更加具体跟生动的进行表达. 2.下面的是使用PowerDesigner进行设计的持久层的层次结构图: 虚线三 ...
- JAVA复习笔记01
学了一学期的JAVA,临近期末,整理了一些JAVA考试中需要掌握的点,记录在这里. 1.编译多个JAVA文件,运行程序 (1) javac .java .java java Main (2) java ...
- java学习笔记-01.对象入门
1.面向对象编程简称是OOP. 2.继承是通过 extends关键字实现的,接口是通过implements关键字实现的. 3.public:意味着后续的定义任何人均可使用. private:意味着除了 ...
- ASP.NET Identity 2集成到MVC5项目--笔记02
ASP.NET Identity 2集成到MVC5项目--笔记01 ASP.NET Identity 2集成到MVC5项目--笔记02 继上一篇,本篇主要是实现邮件.用户名登陆和登陆前邮件认证. 1. ...
- Java:并发笔记-01
Java:并发笔记-01 说明:这是看了 bilibili 上 黑马程序员 的课程 java并发编程 后做的笔记 1. 进程与线程 本章内容 进程和线程的概念 并行和并发的概念 线程基本应用 1.1 ...
随机推荐
- 什么是阿里云SCDN
简介 SCDN(Secure Content Delivery Network),即拥有安全防护能力的CDN服务,提供稳定加速的同时,智能预判攻击行为,通过智能的调度系统将DDoS攻击请求切换至高防I ...
- C# U盘扫描
无意中看到的一个例程,保留一份. 以供后用. using System; using System.Collections.Generic; using System.ComponentM ...
- centos7 宝塔php7安装mongodb扩展
一.下载.解压源码 下载地址:https://pecl.php.net/package/mongodb wget -c https://pecl.php.net/get/mongodb-1.5.3.t ...
- MongoDB环境搭建
MongoDB系列第一课:MongDB简介 MongoDB系列第二课:MongDB环境搭建 MongoDB系列第三课:MongDB用户管理 MongoDB系列第四课:MongoDB数据库.集合.文档的 ...
- MongoDB数据库、集合、文档的操作
MongoDB系列第一课:MongDB简介 MongoDB系列第二课:MongDB环境搭建 MongoDB系列第三课:MongDB用户管理 MongoDB系列第四课:MongoDB数据库.集合.文档的 ...
- springboot加载application.yml文件null
话不多说,直接上代码 本人项目为maven项目 以下是项目结构 pom.xml文件 <?xml version="1.0" encoding="UTF-8" ...
- hdu 6043 KazaQ's Socks
规律题.我自己写的规律对长度为2的要特判,wa一万次... 规律题目,容易错的反而是数据小的时候,得长记性. 题解:规律 先是1~n 然后1~n-2 n-1 1~n-2 n 交替出现 比如当n=4 ...
- springboot application.properties配置大全
springboot application.properties配置大全 官方文档 https://docs.spring.io/spring-boot/docs/current/reference ...
- MySQL设置自增字段
1.MySQL每张表只能有1个自增字段,这个自增字段即可作为主键,也可用作非主键使用,但是请注意将自增字段当做非主键使用时必须为其添加唯一索引,否则系统将会报错 )将自动增长字段设置为主键 CREAT ...
- 轮播图--使用原生js的轮播图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...