zoukankan      html  css  js  c++  java
  • web笔记

    程序在CPU中执行,CPU中有程序计数器,寄存器,控制器等

    代码都在磁盘上,读取时被拿到内存中(转化成机器指令),并被程序计数器来技术和标记

    无并发时:CPU中执行,需要排队,一行一行执行

    有并发时:利用进程,来回切换--(将部分进程拿出)-->线程(只管理小块资源)(做CPU切换)->时间片

    一个·CPU同一时刻只能做一件事

     哎呀哈!跑题了,不好意思a~/~

    步入正题:

    JavaWeb

    URL格式:(协议)://(主机名):(端口号)/(文件路径)/(文件名)

    通过web.xml查看URL的方法:项目名+<url-pattern></url-pattern>

    HTML与Servlet的异同:

                   相同,都用HTTP

    区别,前者WEB服务器直接返回HTML,后者WEB服务器调用SERVELT的方法由Servlet动态生成HTML页面

    区别,后者需在WEB.XML中配置URL路径

    Get:参数放在HTTP报头

    POST:参数放在HTTP正文

    在代码中设置请求参数乱码,只适用于post,不适用于get

    在server.xml中更改才能适用与get

     

     

    HttpServletRequest请求参数处理:

           getParameter() 指定请求参数名称来取得对应的值

           getParameterValue()获取请求中所有的请求参数列表

           getParameterName() 获取请求中所有的请求参数的名字列表

           getparameterMap()获取请求中的所有请求key-value对

    servlet生命周期:

    init是在一个servlet类的对象在被tomcat创建的时候调用的,在一个servlet对象的声明周期内只会执行一次,在对象被创建的时候调用一次

    service方法是浏览器每次请求servlet对象时都会执行的方法

    destory方法是在servlet生命周期结束的时候会调用的方法。

     

    Web-INF文件夹对客户端是透明的,客户端是看不到这个路径的,只能通过请求转发来访问

    注意:并不是任何的内部跳转都能访问WEB-INF;原因是 跳转有2种方式:请求转发、重定向

    配置tomcat运行环境

                   Jsp<->Servlet

    1. 将tomcat/lib中的servlet-api.jar加入项目的构建路径
    2. 右键项目->Build Path->Add library->Server Runtime   (更好些)

    部署tomcat

    在servers面板 新建一个tomcat实例 ,再在该实例中部署项目(右键-add)之后运行

    注意:一般建议 将eclipse中的tomcat与本地的配置信息保持一致:将eclipse中的tomcat设置为托管模式:【第一次】创建tomcat实例后,双击该实例,选择Server Location的第二项

    4、统一字符集编码

    a.编码分类:

    设置jsp文件的编码(jsp文件中的pageEncoding属性): jsp->java

    设置浏览器读取jsp文件的编码(jsp文件中的content属性)

    一般将上述设置成 一致的编码 ,推荐使用UTF-8

    文本编码:

    1. 将整个eclipse中的文件 统一设置(推荐使用)
    2. 设置 某一个项目
    3. 设置单独文件

    6.

    JSP的页面元素

    1. 脚本Scriptlet
    2.  

    Response:响应对象

    提供方法:

    Void addCookie:服务端向客户端增加cookie对象

    Void sendRedirect:页面跳转的一种方法(重定向)

    Void setContetType:设置服务端响应的编码

    请求转发和重定向的区别:

                                            请求转发                          重定向

    地址栏是否改变            不变                              改变

    是否保留第一次            保留                              不保留   --四种范象

    请求的次数                一次                               两次

    跳转发生的位置           客户端                            服务端发出得第二次跳转

    转发、重定向:
    转发:

                   张三(客户端)->[服务窗口A(服务端)]->服务窗口B

    重定向:

                   张三(客户端)->服务窗口A(服务端)->去找B

                   张三(客户端)->服务窗口B(服务端)->结束

     

     

     

     

    2        session(服务端)

                   Cookie(客户端,不是内置对象):Cookie是由 服务端生成的,再转发给客户端保存。相当于本地缓存得作用:客户端->服务端

    作用:提高访问服务端得效率,但是安全性较差

    Cookie:key=value

    Javax.servlet.http.Cookie

    Public cookie(String name,String value)

    String getName:

    String getValue:

    Void setMaxAge:最大有效期(秒)

    服务端发送给客户端:

    Response.addCookie(Cookie cookie)

    页面跳转(转发、重定向)

    客户端获取cookie:request.getCookie()

    1. 服务端增加cookie:response对象:客户端获取对象:request对象
    2. 不能直接获取某一个单独对象,只能一次性将全部cookies拿到

    通过F12可以发现,除了自己设置的Cookie对象外,还有一个name为JSESSIONIE的Cookie

    建议cookie只保存 英文和数字,否则需要进行编码、解码。

    4.session:会话

    a.浏览网站:开始-关闭

    b.购物:浏览、付款、退出

    c.电子邮件:浏览、写邮件、退出

           开始-退出

    Session机制:

    客户端第一次请求服务端时,服务端会产生一个session对象(用于保存该客户的信息)

    并且每个session对象 都会有一个唯一的sessionID(用于区分其他session)

    服务端会产生一个cookie,并且该cookie的name=JSESSIONID,value=服务端sessionID的值;

    然后 服务端会在响应客户端的同时,将该cookie发送给客户端,至此 客户端就有了一个cookie(JSESSIONID);

    因此,客户端的cookie就可以和服务端的session一一对应(JSESSIONID-sessionID)

    客户端第2/n次请求服务端时:服务端会先用客户端cookie中的JSESSIONID 去服务端的session中匹配sessionid,如果匹配成功(cookie,jsessionid和session sessionid)

    Session:

    1. session存储在服务端
    2. session是在同一个用户(客户)请求时共享
    3. session实现机制:第一次客户请求时,产生sessionid并复制给cookie的jsessionid然后发给客户端。最后通过session的sessionid-cookie的jsession实现一一对应

    session方法:

    String getId():获取sessionID

    Boolead isNew():判断是否是新用户(第一次访问)

    Void invalidate():是session失效(退出登录、注销)

    setAttribute():

    getAttribute():

    void setMaxInactiveInterval(秒):设置最大有效 非活动时间

    int getMaxInactiveInterval():获取最大有效 非活动时间

    eclipse配置tomcat

    下载tomcat9->eclipse->window->preproies->server->running Environment->add->tomcat9->jdk(先安装)

    Eclipse创建项目->new->web->

     

     

     

     

    Eclipse下面对话框->servlet->add

    New->servlet->

     

     

    注:每次运行只需保存,然后在默认浏览器输入网址就可以了,不必重启tomcat,或者直接run,根据提示也可以。

    若添加servlet工程时出错:

     

     

    或者重新配置  tomcat

     

    MVC设计模式:

    M:Model 模型:一个功能

     V:view 视图 :用于展示、以及与用户交互。使用html js css jquery等前端技术

     C:Controller 控制器:接受请求,将请求跳转到模型进行处理;模型处理完毕后,再将处理的结果返回给请求处。可以用jsp实现,但是一般建议使用Servlet实现控制器。

     

     

    Jsp->Java(Servlet)->JSP

    Servlet:

    Java类必须符合一定的规范:

    1. 必须继承 javax.servlet.http.HttpServlet
    2. 必须重写其中的doGet()或doPost()方法

    doGet():接受并处理所有get提交方式的请求

    doPost():接受并处 所有post提交方式的请求

    JSP:动态网页

    静态、动态:

    1. 不用和是否有“动感”混为一谈
    2. 是否 随着时间、地点、用户操作的改变而改变

    动态网页 需要使用到 服务端脚本语言(JSP)

    1. 架构

    CS:Client Server

    CS不足:

    1. 如果软件升级,那么全部软件都需要全部升级
    2. 维护麻烦,需要维护每一台客户端软件
    3. 每一个客户端,都需要安装客户端软件

    BS:Broswer Server

    客户端可以通过浏览器直接访问服务端

    注意:bs和cs各有优势

    1. tomcat解压后目录:

    bin:可执行文件(startupo.bat   shutdown.bat)

    conf:配置文件(server.xml)

    lib:tomcat依赖的jar文件

    log:日志文件(记录出错等信息)

    temp:临时文件

    webapps:可执行的项目(将为我们开发的项目  放入该目录)

    work:存放由jsp翻译成的java,以及编辑成的class文件(JSP->java->class)

    1. 配置tomcat
      1. 配置jdk(必须配置JAVA_HOME)

             Java_home   classPath  path

    1. 配置catalina_home

    双击bin/startup.bat启动tomcat

    常见错误:可能与其他服务的端口号冲突

    Tomcat端口号默认8080   (此端口号较为常见,容易),建议修改次端口(8888)

    修改端口号:

    访问tomcat:

    http://localhost:8888/

    jsp:在html中嵌套java代码

    在项目/WEB-INF/web.xml中

    <welcome-file-list>

                   <welcome-file>index.jsp</welcome-file>

    </welcome-file-list>

    虚拟路径:

    将web项目配置到webapps以外的目录

    docBase:实际路径

    path:虚拟路径  (绝对路径、相对路径【相当于webapps】)

    重启

    1. 方式二

    D: omcatapache-tomcat-9.0.27confCatalinalocalhost

    中新建  “项目名.xml”中新增一行

    <Context  docBase=” D: omcatJs0-----------”  />

    JSP执行流程

    Jsp-java(Servlet文件)-class

    Jsp和Servlet可以互相转换

    因为第一次请求服务端 会有翻译和编译的过程,因此比较慢;后续访问 可以直接访问class,因此速度比较快。但是,如果服务端修改了代码,则再次访问时,会重新的翻译,编译。

    JSP 四大范围对象

    Page:当前页面有效(页面跳转后无效)

    Request:同一次请求有效,其他请求无效(请求转发后有效,重定向后无效)

    Session:同一次会话有效(无论怎么跳转,都有效,关闭或切换浏览器后无效;从登录到退出都有效)

    Application:全局变量;整个项目运行期间 都有效(切换浏览器 仍然有效);关闭服务或其他项目  无效

    以上对象共有的方法:

    Object getAttribute(String name):根据属性名,或者属性值

    Void setAttribute(String name,object obj):设置属性值(新增,修改)

    Void removeAttribute(String name) :根据属性名,删除对象

    1.以上范围对象,通过setAttribute()复制,通过getAttribute()取值

    2.以上范围对象,尽量使用最小的范围,因为对象的范围越大,造成的想能损耗越大。

    Servlet接口

    Httpservletrequest

    <Load-on-srartup>1       一启动,就加载对象

    从tomcat启动,无main,且tomcat位置不固定

    每一块程序都有一个独立内存空间

    Jsp注释是只给jsp源码看的注释,而html注释会被带到网页上

    重点:pagecontext  四个作用域

    setAttribute 传在配置作用域

    getAttribute

    先找page -request -session -qpplication

    标签就是java代码一种简化写法

  • 相关阅读:
    【leetcode】Binary Search Tree Iterator
    【leetcode】Palindrome Partitioning II
    【leetcode】Best Time to Buy and Sell Stock III
    【leetcode】Best Time to Buy and Sell Stock II
    【leetcode】Longest Consecutive Sequence
    【leetcode】Factorial Trailing Zeroes
    【leetcode】Simplify Path
    【leetcode】Generate Parentheses
    【leetcode】Combination Sum II
    【leetcode】Combination Sum
  • 原文地址:https://www.cnblogs.com/dreamzj/p/14332690.html
Copyright © 2011-2022 走看看