Java项目笔记01

java

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 的全部内容, 来源链接: utcz.com/z/392449.html

回到顶部