jsp笔记——课程回顾
第一章
1、装jdk
2、环境变量
3、myeclipse,eclipse,idea
4、Tomcat:端口号 8080
第二章
1、servlet简介
2、Servlet是接口,必须要实现五个方法
2.1 init() :加载数据
2.2 service() :当前服务器处于运行状态
2.3 getServletConfig() :获得Servlet配置文件信息
2.4 getServletInfo() :获得Servlet信息
2.5 destory() :销毁,释放内存
3、HttpServlet生命周期
3.1 当浏览器第一次访问该Servlet的时候:
3.1.1 先调用构造方法来创建该Servlet的对象
3.1.2 然后调用init方法,加载初始化数据
3.1.3 然后调用service方法,服务处于运行状态
3.1.4 根据浏览器的请求方式来调用对应的请求方法,
3.1.5 当该Servlet修改代码或长时间没有被访问过,调用destory。服务器会强制销毁该Servlet
3.2 浏览器多次访问该Servlet的时候:
3.2.1 只会多次刷新service方法
3.2.2 多次根据浏览器的请求方式调用对应的方法
总结:当服务器处于运行状态时,浏览器多次访问同一个Servlet,那么只有第一次创建对象和加载数据,多次访问的是同一个对象
3.3浏览器给服务器发送数据的时候,分为get和post请求,get请求和post请求
3.3.1 get发送数据会将数据转换成字符串的形式拼接在访问服务器的地址后面,数据和地址之间用 ? 隔开,多个数据用 & 连接,每个数据都要以“名称=值”的形式书写数据。post发送数据不会拼接到地址上,而是通过内部传输
3.3.2 get请求传输数据是不安全的,因为数据会拼接到地址上,明文显示,对于完成登录注册中敏感和关键数据容易泄露,post请求传输数据是安全的,因为数据不会明文显示,而是内部传输
3.3.3 get请求传输数据是有长度限制,所允许的最大字符长度是1KB,post请求传输数据没有大小限制
3.4 浏览器访问服务器的地址格式:http:// (如果访问的是自己电脑的服务器,可以写为localhost,称为本地主机名,如果访问的是别人的服务器,写为别人电脑的 ip 地址):服务器端口号(默认是8080)/项目名称/项目中具体文件名
3.5 Servlet的创建时需要注册的,在web.xml文件中注册 写法为:
<servlet>
<servlet-name>One</servlet-name>
<servlet-class>com.hopu.servlet.One</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>One</servlet-name>
<url-patten>/One</url-patten>
</servlet-mapping>
3.6 url-patten属性中可以设置为三种匹配形式:
完全匹配:/abc /a/b/c /hello
目录匹配:/* /abc/* a/b/*
后缀名匹配: two.jsp *.jsp *.do *.action
3.7 load-on-startup:用于更改Servlet的创建时间,加上该属性后,服务器一运行,该Servlet就会被创建出来
第三章:Servlet常用对象
1、ServletConfig
(1)作用:获得每一个Servlet的在web.xml文件中的注册信息
(2)获得ServletConfig的对象的代码:ServletConfig config = getServletConfig() ;
2、ServletContext
(1)作用:给每一个Servlet都可以共享该对象中的存储的数据
(2)生命周期:当服务器一运行该对象就会被创建,当服务器停止,该对象就会被销毁
(3)整个项目中只有一个ServletContext对象
(4)可以获取web.xml文件中存放的静态数据,静态数据的标签为:
(5)也可以获取或者存储动态数据,在Java代码中临时给该对象存储数据,方法为:setAttributte(名称,数据),removeAttributte(名称,数据),getAttributte(名称,数据)
(6)获得该项目下存储在webroot文件夹下的文件的路径,例如text.txt.1.jpg
3、response
(1)作用:服务器给浏览器发送、回复消息
(2)如果服务器将数据发送给浏览器,显示出带有HTML标签的数据,需要设置setContentType(“text/html”) ;
(3)服务器和浏览器之间可能存在编码格式不统一,而导致中文乱码,需要设置setCharacterEncode…(“utf-8”) ;
(4)如果需要定时刷新页面,需要设置setHeader(“refresh”,“时间”) ;
(5)如果需要定时刷新其他页面,需要设置setHeader(“refresh”,“时间;url=其他页面地址”) ;
(6)setHeader方法还可以完成文件下载,须知详细内容请看上课代码
(7)当服务器需要跳转页面时,可以使用重定向,重定向属于浏览器跳转,地址会发生变化,跳转时不能携带数据
4、request
(1)服务器和浏览器之间可能存在编码格式不统一,可能会导致中文乱码
1、如果是get请求方式发送中文数据,因为get请求会将数据转成字符串拼接到地址栏后面,所以一定会经过tomcat服务器,服务器的编码格式为iso-8859-1,当数据传给request的时候,不是utf-8的形式,所以需要将获得的数据先从iso-8859-1格式进行解码不带任何编码格式的字节数组,然后在进行重新转码成utf-8编码格式
2、如果浏览器使用post请求发送中文数据,需要设置setCharacterEncode…(“utf-8”) ;
(2)当服务器页面要跳转时,可以使用请求转发,属于服务器跳转,可以携带数据,地址不发生改变
第四章:会话与管理
1、概念:
同一个浏览器与服务器之间多次访问,称为一次会话。当该浏览器关闭时,表示一次会话结束
2、cookie
(1) cookie的概念:用于服务器区分浏览器,当一个浏览器要第一次访问浏览器时,服务器会标记该浏览器,那么该浏览器收到cookie之后,以后都会携带这个cookie去访问服务器,服务器采取这种方式区分浏览器。cookie是存储在浏览器上的
3、session
(1) session的概念:用于服务器区分浏览器,当浏览器第一次访问服务器时,服务器会创建一个session对象存储在服务器上,一个浏览器只有一个session对象,当浏览器关闭时,session也会销毁
第五章:过滤器()
1、概念:
(1)``用于拦截浏览器访问服务器的请求地址,在访问服务器之间,起到安全和简化代码的作用。
(2) 过滤器是接口,需要创建自己的过滤器,必须实现过滤器的接口,filter
(3) 过滤器和servlet一样,需要在web.xml文件中进行注册
写法为:
<filter>
<filter-name>One</filter-name>
<filter-class>com.hopu.filter.One</filter-class>
</filter>
<filter-mapping>
<filter-name>One</filter-name>
<url-patten>/One</url-patten>
</filter-mapping>
(4) 过滤器的url-patten属性值填写的是要拦截的servlet访问地址
2、servlet的生命周期
(1) 先执行构造方法,创建过滤器对象
(2) 然后执行init方法,初始化对象
(3) 然后执行doFilter方法,实现拦截判断
(4) 当过滤器不在使用,执行destroy方法,进行销毁过滤器
第六章:java web的介绍
动态网站访问流程:
动态网站的访问流程:由用户打开浏览器填写访问地址,请求访问服务器,通过servlet接收浏览器的请求,做一系列的数据处理,然后进行数据库的增删改查,并将最后处理的结果返回给浏览器。
第七章:jsp简介
1、介绍
jsp本质上就是servlet,为了简化html代码的编写,形成jsp的概念,用于快速的开发html代码以及承载css以及少量的js脚本语言技术。
2、jsp包含的内容
(1) html静态代码
(2) java代码
1、<%! %>:用于在jsp中定义全局变量和方法,定义的变量和方法可以在整个页面中进行使用
2、<%= %>:用于将java代码的表达式结果转换到html页面上去
2、<% %>:用于编写一段Java代码,称为Java代码段,一对<% %>中的代码可以是不完整的,但是一个jsp页面中的多个<% %>一定要组合成完整的java代码。如果需要在Java代码中间穿插html代码,对于Java代码进行分段处理。在<% %>里面可以创建对象,也可以执行判断语句或循环语句,进行创建变量,属于局部变量,不能定义方法。
(3) jsp指令
1、jsp指令使用的符号是<%@ %>
2、三大常用jsp指令:page include taglib
3、page指令用于设置当前jsp页面的配置信息
<1> contentType:用于设置当前页面的内容类型以及字符集
<2> errorPage:当该jsp页面出现报错的时候,可以在该属性上指顶跳转错误信息页面
<3> import:用于jsp页面中需要加载其他java包下的类,需要导入包文件
4、include指令:在一个jsp文件中静态的将其他jsp页面包含进来
5、taglib指令:只用于将核心标签库的插件和架包文件关联至jsp页面
(4) jsp标签
(5) jsp的EL表达式
(6) jsp核心标签库
第八章:jsp的内置对象
1、jsp九大内置对象
(1)、out
作用:替换<%= %>,可以直接通过out对象调用print方法将Java代码的数据显示到页面上
(2)、page
作用:等价于servlet中的this关键字,表示当前页面的对象
(3)、config
作用:是ServletConfig对象,用于servlet中获得web.xml文件中的注册信息,在jsp中使用少
(4)、request
作用:是HttpServletRequest对象,用于接收浏览器的请求,可以获得浏览器提交过来的数据,也可以做请求转发的页面跳转
(5)、response
作用:是HttpServletResponse对象,用于给浏览器回复信息,同时也可以要求浏览器做一系列的处理,比如定时刷新浏览器,文件下载等,也可以完成页面跳转,称为重定向。
(6)、session
作用:用于jsp中存储数据,只是该对象存储数据与浏览器有关,只要不切换浏览器,该对象中的数据可以供多个页面使用
(7)、application
作用:用于jsp存储数据,知识该对象存储的数据和服务器有关,只要服务器不关闭,该对象中的数据可以供多个页面使用
(8)、exception
作用:用于jsp页面输出打印报错的信息
(9)、pageContext
作用:该对象是一个全局内置对象,它可以操作其他八个内置对象。该对象也可以存储数据,该对象存储的数据只能供自己页面使用,而不能给除自己以外其它页面使用
(10)、jsp所有内置对象只有四个能存储数据,称为四大域,按范围从小到大排列为:pagecontext request session application
(11)、pageContext中提供了findAttribute方法可以在四大域中查找想要的数据,查找顺序按范围从小到大
第九章:javaBean和jsp动作
1、JavaBean的定义
就是java中讲的类的封装,一定要包含一个不带参数的构造方法,所有全局变量都要有get和set方法
2、jsp动作:
(1)、jsp:useBean :作用是用来创建对象和四大域的使用的Java代码
id:JavaBean的对象名
class:该实体类完整包的路径
scope:需要将创建的对象存储到哪个域中,page是值pagecontext request session application
(2)、jsp:setProperty:作用是用于useBean这个动作创建的对象中全局变量的数据
name:该属性是useBean中创建的对象名
property:全局变量名
value:赋的值
(3)、jsp:getProperty:作用是用于获取useBean这个动作创建的对象中的全局变量的数据
name:该属性是useBean中创建的对象名
property:全局变量名
(4)、jsp:forword:作用是用于jsp中替代request请求
(5)、jsp:param:作用是用于jsp:forword标签做页面跳转时,进行携带数据
(6)、jsp:include:作用是用于在jsp页面中动态的将其他jsp页面包含进来
第十章:El表达式
1、概念
(1) EL表达式的作用也是用于特带<%= %>
2、EL表达式也可以获取四大域中存储的数据,等同于pageContext.findAttribute()方法的用法
3、EL表达式也可以操作算数运算符,逻辑运算符,比较运算符,空运算符,三元运算符
(1)、算数运算符:+ - * / %(mod)
(2)、逻辑运算符:!(not) &&(and) ||(or)
(3)、比较运算符:==(eq) !=(ne) >(gt) <(lt) >=(ge) <=(le)
(4)、空运算符:empty
(5)、三元运算符:判断条件?表达式一:表达式二
4、EL表达式也有内置对象
(1)、pageScope:用于获取pageContext对象的数据
(2)、requestScope:用于获取request对象的数据
(3)、sessionScope:用于获取Session对象中的数据
(4)、applicationScope:用于获取application对象中的数据
(5)、param:获取表单提交的数据,例如登录、注册提交的用户名和密码
(6)、paramValues:获取表单提交的一个名称对应的多个数据,例如兴趣爱好
(7)、cookies:用于获取浏览器中cookie对象数组
(8)、initParame:用于获取web.xml文件共享的静态数据
第十一章:核心标签库
1、概念
简化jsp中Java代码的操作,是需要导入架包的,JSTL和Standad,配置文件c.tld 配置文件。并且在需要使用核心标签库的jsp文件中通过taglib的jsp指令将导入的架包和配置文件进行关联起来,才能使用。
2、通用标签
(1)、<c:set>:给四大域中存放数据的,替代setAttribute方法的使用
(2)、<c:remove>:从四大域中删除数据
(3)、<c:out>:将数据输出在html页面上
3、条件标签
(1)、<c:if>:用于做条件判断
(2)、<c:choose>:用于做多分枝条件判断
4、迭代标签
(1)、<c:forEach>:循环
(2)、<c:Tokens>:专门用于字符串根据某一个特定的字符或者符号进行分割成字符串数组,然后对字符串数组进行重新遍历
第十二章:MVC模式与三层架构
1、MVC模式:
M:mode 模型层 包名:entity
V:View 视图 界面 jsp
C:Controller 控制器 调度模型层和视图层 servlet
2、三层架构:
数据访问层:dao
业务逻辑层:services
表示层:
前端-----servlet——service——dao