• 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

    bGET提交参数数据有限制,不超过1KB

    cGET方式不适合提交敏感密码。

    d)注意: 浏览器直接访问的请求,默认提交方式是GET方式

     get 提交的内容在url后。

    2POST方式提交

    a)参数不会跟着URI后面。参数而是跟在请求的实体内容中。没有?开头,多个参数之间以&分割。

    bPOST提交的参数数据没有限制。

    cPOST方式提交敏感数据。

     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的特点:

    1jsp的运行必须交给tomcat服务器!!!!   tomcatwork目录: tomcat服务器存放jsp运行时的临时文件

    2jsp页面既可以写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只能使用gettersetter方法

     8 一个小技巧

     

    直接在dao包下创建impl包,只需要把包名创建成dao.impl的形式即可。

     

    选择下三角标志 然后选择package presention--->第二个,选择后并不会立即显示成包下包的结构,只需要在新建一个包就会立刻刷新显示了。

     9

    使用过滤器时千万不要忘了在web.xml中进行配置

    12213

  • 相关阅读:
    设计模式了解
    三次握手
    网络安全常见术语
    threading.Thread 子线程强制停止
    黑帽SEO入门
    Chrome(谷歌)浏览器永久关闭恢复页面提示框(记录)
    FTP文件夹错误:【打开FTP服务器上的文件夹时发生错误。请检查是否有权限访问该文件夹】
    jenkins启动失败,查看状态提示active(exited)
    jenkins打包vue项目报错-未解决
    jenkins迁移报错处理
  • 原文地址:https://www.cnblogs.com/youngao/p/10246891.html
Copyright © 2020-2023  润新知