JavaWeb(一)基础知识

一、JSP

JSP即服务端脚本语言,应用于动态网页。

1、静态、动态
(1)不用和是否有“动感”混为一谈
(2)区别:是否随着时间、地点、用户操作的改变而改变

2、JSP执行流程
jsp- java(Servlet文件,Jsp 和Servlet 可以相互转换 ) -class

因为第一请求服务端 会有翻译 和编译的过程,因此比较慢; 后续访问 可以直接访问class,因此速度较快。

如果 服务端修改了代码,则再次访问时会重新的翻译、编译。、

3、page指定的属性

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"  import="java.util.Date" %>

language:jsp页面使用的脚本语言
import:导入类
pageEncoding:jsp文件自身编码 jsp ->java
contentType:浏览器解析jsp的编码

二、架构

1、CS:Client Server
CS不足:
a.如果 软件升级, 那么全部软件都需要升级
b.维护麻烦:需要维护每一台 客户端软件
c.每一台客户端 都需要安装 客户端软件

2、BS :Broswer Server
客户端可以通过 浏览器 直接访问服务端

注意:bs和cs各有优势。

三、tomcat

1、解压后目录
bin:可执行文件(startup.bat shutdown.bat)
conf:配置文件(server.xml)
lib:tomcat依赖的jar文件
log:日志文件(记录出错等信息)
temp:临时文件
webapps:可执行的项目(将我们开发的项目 放入该目录)
work:存放由jsp翻译成的java,以及编辑成的class文件(jsp ->java ->class)

2、HTTP状态码

200:一切正常
300/301: 页面重定向 (跳转)
404:资源不存在
403:权限不足 (如果访问a目录,但是a目录设置 不可见)
500:服务器内部错误(代码有误)

四、请求方式

1、get

method=“get” 和 地址栏 、超链接()请求方式 默认都属于get提交方式

get与post请求方式的区别:
a. get方式在地址栏显示 请求信息 (但是地址栏能够容纳的 信息有限,4-5KB;如果请求数据存在大文件,图片等会出现地址栏无法容纳全部的数据而出错) ;post不会显示
b. 文件上传操作,必须是post。

五、需求与响应

1、request

//根据请求的字段名key(input标签的name属性值),返回字段值value(input标签的value属性值)
String getParameter(String name)
//根据请求的字段名key ,返回多个字段值value(checkbox)
String[] getParameterValues(String name) 
//设置post方式的请求编码  (tomcat7以前默认iso-8859-1,tomcat8以后改为了utf-8)
void setCharacterEncoding("编码格式utf-8")//请求转发 的方式跳转页面   A - > B
getRequestDispatcher("b.jsp").forward(request,response) 
//获取项目的ServletContext对象
ServletContext getServerContext()

2、response

响应对象

//服务端向客户端增加cookie对象
void addCookie( Cookie cookie )
//页面跳转的一种方式(重定向)
void sendRedirect(String location ) throws IOException
//设置服务端响应的编码(设置服务端的contentType类型)
void setContetType(String type)

请求转发和重定向的区别
login.jsp -> check.jsp ->success.jsp

​ 请求转发 重定向

地址栏是否改变 不变(check.jsp) 改变(success.jsp)

是否保留第一次 保留 不保留 --4种范围对象
请求时的数据

请求的次数 1 2

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PGzyEA56-1595592616987)(C:\Users\ddjj6\AppData\Roaming\Typora\typora-user-images\1564503056564.png)]

3、appliation 全局对象

String getContextPath()	//虚拟路径
String getRealPath(String name)//: 绝对路径(虚拟路径 相对的绝对路径)

六、cookie和session

1、cookie

Cookie不是内置对象,是由服务端生成的 ,再发送给客户端保存。相当于本地缓存的作用:
作用:提高访问服务端的效率,但是安全性较差。

new Cookie(name,value)//建议 cookie只保存英文数字,否则需要进行编码、解码
String getName()//获取name
String getValue()//获取value
void setMaxAge(int expiry)//最大有效期(秒)
response.addCookie(Cookie cookie)//服务端准备Cookie
request.getCookies();//客户端获取cookie(只能一次性将全部的cookie拿到)

2、session

session :会话

session机制:服务每次会先用客户端cookie中的JSESSIONID 去服务端的session中匹配sessionid。

客户端第一次请求服务端时,匹配失败,服务端会产生一个session对象(用于保存该客户的信息);
并且每个session对象 都会有一个唯一的 sessionId( 用于区分其他session);

同时,服务端由会产生一个cookie,并且 该cookie的name=JSESSIONID ,value=服务端sessionId的值;
然后 服务端会在 响应客户端的同时 将该cookie发送给客户端。因此,客户端的cookie就可以和服务端的session一一对应(JSESSIONID - sessionID)

客户端第二/n次请求服务端时:如果匹配成功,说明此用户 不是第一次访问,无需登录。

String getId() //:获取sessionId  
boolean isNew() //:判断是否是 新用户(第一次访问)
void invalidate()//:使session失效  (退出登录、注销)

void setMaxInactiveInterval() //:设置最大有效 非活动时间 
int getMaxInactiveInterval()//:获取最大有效 非活动时间 

3、cookie和session的区别:
session cookie
保存的位置 服务端 客户端
安全性 较安全 较不安全
保存的内容 Object String

七、JSP九大内置对象

内置对象:自带的,不需要new 也能使用的对象

pageContext JSP页面容器
request 请求对象
session 会话对象
appliation 全局对象

response 响应对象

config 配置对象(服务器配置信息)
out 输出对象
page 当前JSP页面对象(相当于java中的this)
exception 异常对象

四种范围对象(小->大)

a.pageContext 当前页面有效 (页面跳转后无效)

b.request 同一次请求有效;其他请求无效 (请求转发后有效;重定向后无效)

c.session 同一次会话有效 (无论怎么跳转,都有效;关闭/切换浏览器后无效 )

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

->多个项目共享、重启后仍然有效 :JNDI

以上4个对象共有的方法:

    Object getAttribute(String name)//:根据属性名,或者属性值
    void setAttribute(String name,Object obj) //:设置属性值(新增,修改)
    //setAttribute("a","b") ;如果a对象不存在,则新建一个a对象 ;如果a之前已经存在,则将a的值改为b

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值