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:\tomcat\apache-tomcat-9.0.27\conf\Catalina\localhost

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

<Context  docBase=” D:\tomcat\Js0-----------”  />

 

 

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代码一种简化写法

posted @ 2021-01-26 22:08  XA科研  阅读(131)  评论(0编辑  收藏  举报