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的更多相关文章

  1. ASP.NET Identity 2集成到MVC5项目--笔记01

    Identiry2是微软推出的Identity的升级版本,较之上一个版本更加易于扩展,总之更好用.如果需要具体细节.网上具体参考Identity2源代码下载 参考文章 在项目中,是不太想直接把这一堆堆 ...

  2. Java学习笔记:01面向对象-继承

    01面向对象-继承 一.java中的数据类型 1.基本数据类型:四类 八种 byte(1) boolean(1) short(2) char(2) int(4) float(4) long(8) do ...

  3. Java学习笔记 01 基本数据类型、标识符、关键字和运算符

    一.基本数据类型 基本数据类型 数据类型 内存空间(8位等于1字节) 取值范围 备注 byte 8位 -128~127   short 16位 -32768~32767   int 32位 -2147 ...

  4. 【8-19】java学习笔记01

    JDK API文档 java SE 8 API文档:http://www.oracle.com/technetwork/java/javase/documentation/jdk8-doc-downl ...

  5. Java学习笔记01

    1.原型设计: 将页面的模块.元素.人机交互的形式,利用线框描述的方法,将产品脱离皮肤状态下更加具体跟生动的进行表达. 2.下面的是使用PowerDesigner进行设计的持久层的层次结构图: 虚线三 ...

  6. JAVA复习笔记01

    学了一学期的JAVA,临近期末,整理了一些JAVA考试中需要掌握的点,记录在这里. 1.编译多个JAVA文件,运行程序 (1) javac .java .java java Main (2) java ...

  7. java学习笔记-01.对象入门

    1.面向对象编程简称是OOP. 2.继承是通过 extends关键字实现的,接口是通过implements关键字实现的. 3.public:意味着后续的定义任何人均可使用. private:意味着除了 ...

  8. ASP.NET Identity 2集成到MVC5项目--笔记02

    ASP.NET Identity 2集成到MVC5项目--笔记01 ASP.NET Identity 2集成到MVC5项目--笔记02 继上一篇,本篇主要是实现邮件.用户名登陆和登陆前邮件认证. 1. ...

  9. Java:并发笔记-01

    Java:并发笔记-01 说明:这是看了 bilibili 上 黑马程序员 的课程 java并发编程 后做的笔记 1. 进程与线程 本章内容 进程和线程的概念 并行和并发的概念 线程基本应用 1.1 ...

随机推荐

  1. 什么是阿里云SCDN

    简介 SCDN(Secure Content Delivery Network),即拥有安全防护能力的CDN服务,提供稳定加速的同时,智能预判攻击行为,通过智能的调度系统将DDoS攻击请求切换至高防I ...

  2. C# U盘扫描

    无意中看到的一个例程,保留一份.   以供后用.     using System; using System.Collections.Generic; using System.ComponentM ...

  3. centos7 宝塔php7安装mongodb扩展

    一.下载.解压源码 下载地址:https://pecl.php.net/package/mongodb wget -c https://pecl.php.net/get/mongodb-1.5.3.t ...

  4. MongoDB环境搭建

    MongoDB系列第一课:MongDB简介 MongoDB系列第二课:MongDB环境搭建 MongoDB系列第三课:MongDB用户管理 MongoDB系列第四课:MongoDB数据库.集合.文档的 ...

  5. MongoDB数据库、集合、文档的操作

    MongoDB系列第一课:MongDB简介 MongoDB系列第二课:MongDB环境搭建 MongoDB系列第三课:MongDB用户管理 MongoDB系列第四课:MongoDB数据库.集合.文档的 ...

  6. springboot加载application.yml文件null

    话不多说,直接上代码 本人项目为maven项目 以下是项目结构 pom.xml文件 <?xml version="1.0" encoding="UTF-8" ...

  7. hdu 6043 KazaQ's Socks

    规律题.我自己写的规律对长度为2的要特判,wa一万次... 规律题目,容易错的反而是数据小的时候,得长记性. 题解:规律 先是1~n 然后1~n-2 n-1  1~n-2 n 交替出现 比如当n=4 ...

  8. springboot application.properties配置大全

    springboot application.properties配置大全 官方文档 https://docs.spring.io/spring-boot/docs/current/reference ...

  9. MySQL设置自增字段

    1.MySQL每张表只能有1个自增字段,这个自增字段即可作为主键,也可用作非主键使用,但是请注意将自增字段当做非主键使用时必须为其添加唯一索引,否则系统将会报错 )将自动增长字段设置为主键 CREAT ...

  10. 轮播图--使用原生js的轮播图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...