Js动态网页技术+MVC架构+过滤器+监听器

JSP(java server pages):Java服务器页面,动态网页技术,JavaEE核心规范之一;其根本是一个简化的servlet设计;Serlvt:不擅长于页面展示,【接受前端请求,响应客户端数据】

内容:HTML+java        html是静态的;判断静态与动态是看是否可以获取后台动态数据

脚本:辅助程序            JS:辅助浏览器运行【富客户端技术】;shell:辅助linux运行;

1、脚本元素:辅助servlet运行

        声明:<%! 成员声明 %>

        代码块:<% Java Expression %>

        表达式:<%= Java codes in service method %>

        JSP1.0版本:功能最强大、最基础、开发最麻烦的版本!

2、JSP指令:不直接产生任何可视化输出,但是会指导JSP如何运行(类似于html中head部分,不做展示,但是指导页面如何展示)

<%@directiveName attribueList%>

页面指令:page

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

包含指令:include

<%@include file="index.jsp"%>

导入标签库指令:taglib

3、JSP动作(内置标签):动作的语法格式与HTML标签基本一致,

        是JSP1.2版本中的产物,对JSP定位发生了变化,认为JSP是一个页面程序,所以出现了很多内置标签取代<%%>的方式。但是由于JSP1.2版本比较仓促,提供的功能有限,多以通常认为是一个过度版本,现在很少使用。【1.0版本可以编程;1.2版本只有标签,没办法展开】

        常用标签:setPropertyincludeforward

4、内置标签:在jsp页面可以直接使用    9种

        前三种范围最广,应用最多

名称类型
requestjavax.servlet.http.HttpServletRequest:与 Servlet中 request对象没有任何区别,是同一个对象:
sessiojavax.servlet.http.HttpSession:与 Servlet中 session对象没有任何区别
applicationjavax.servlet.ServletContext:表示的一个页面的范围,在 Servlet中没有与之对应的对象
pageContextjavax.servlet.jsp.PageContext:表示的一个页面的范围(相当于一个对象),在 Servlet中没有与之对应的对象;更多用在编程代码上
pagejavax.servlet.jsp.HttpJspPage:表示页面范围(只是页面),名词性概念;更多用在标签设置上
responsejavax.servlet.http.HttpServletResponse:与 Servlet中response对象没有任何区别
exceptionjava.lang.Throwable:只在错误处理页面种使用  表示异常对象
outjavax.servlet.jsp.JspWriter:输出流对象
configjavax.servlet.ServletConfig:表示ServletConfig对象

5、JSP2.0版本中,引入EL表达式+JSTL标签

        EL表达式:只能从servlet中获取数据;是一种表达式语言;能够很方便的读取并展示JSP视图页面需要的数据,优势是提取数据而不是操作数据;是JSP2.0规范,是JavaEE核心规范之一,

        早期专门服务与JSTL,后来因为EL非常简单、实用,在JSP2.0中,纳入JavaEE核心规范

        语法:${.....}

        类型:和java中的类型相对应

        运算符:和其他语言运算符一样

内置对象:

PageScope:能够仅能够从配置范围获取数据,和PageContext不一样,PageContext可以设置数据;
requestScope:仅能够从request范围获取数据,和request对象不一样;
sessionScope:仅能够从session范围获取数据,和session对象不一样;
applicationScope:仅能够从application范围获取数据,和application对象不一样;
Param:request.getParamter(name);
paramValues:request.getParamterValues(name);
initParam:ServletContext.getInitparameter(String name)
${pageScope.stu}<br>:从page范围获取stu数据
${requestScope.stu}<br>:从request范围获取stu数据
${sessionScope.stu}<br>:从session范围获取stu数据
${applicationScope.stu}<br>:从application范围获取stu数据

${stu}:从page范围开始获取stu数据,如果没有获取到,从request范围获取stu数据.......

${param.name}<!--地址栏输入?name=zxs&&hobby=sing&&hobby=sport,可以获取name.bobby数据-->
${paramValues.hobby[0]}
${paramValues.hobby[1]}

JSTL标签库:

        表达式标签:现在基本不使用

        条件标签:

<c:if >: 使用5% ;if标签没有elseif一说,需要重新定义if标签
<c:choose> <c:when> <c:otherwise> 复合条件标签,<c:choose>标签体内可以包含至少一个<c:when>标签和最多一个<c:otherwise>标签,
<c:when>: 使用5%
<c:otherwise>: 可以解决没有else if的问题

迭代标签:

<c:forEach>:使用90%,应用场景多;原理为java中的for each循环,遍历集合对象

6、MVC架构:是一种软件开发模式,它是由控制器、视图、模型组成;它只是一种开发模式,并不是规范也不是标准,可以遵循,也可以不遵循;设计模式:23种,不是技术,只是编程技巧;

        一般web开发都是遵循MVC三层架构,使程序的层次感更明显。

        控制器:controller接收请求  处理数据  响应数据  servlet

        视图:view 展现数据 html js css jsp

        模型:model 表示数据

                   Dao:dao层,操作数据库数据

                   Service:业务层,处理业务模型数据

                   Model:模型层,存放数据,Pojo、vo、po、bo.....

        采用MVC架构开发,目的是便于程序开发;若不满足需求,不要拘泥于MVC架构,大胆的进行扩充或删减。原则是基于MVC架构开发,可以进行动态调整

6、项目开发流程:(应用版本)

        基于MVC架构的项目开发,员工管理系统,下次整理发布。

7、SerVlet过滤器Filter:过滤器或者拦截器,部署在web应用中的软件,属于JavaEE的技术体系之一;Filter可以控制被客户端访问的资源的执行;

        生命周期:服务器启动,创建对象(单例)并且调用init方法    ---    服务器关闭,调用destory方法,释放内存空间;严格来讲,比servlet生命周期要长。

过滤链FilterChain:由多个过滤器组成的一条执行的链,【过滤器谁在的servlet-mapping在前,谁就在过滤链的前边】

//释放请求:释放请求到下一个过滤器,如果是最后一个过滤器,释放请求到达目标资源
chain.doFilter(req,resp);

应用场景:

        1、字符集编码统一;req.setCharacterEncoding("UTF-8");

        2、登录身份验证;

8、监听器:主要用于监听共享域对象的创建与销毁时间,以及这些共享域对象中属性变更的事件

事件驱动模型机制:

三要素:事件源、时间、时间处理程序

监听对象:ServletContext:整个应用只存在一个

                  HttpSession:针对每一个对话

                  ServletRequest:针对每一个客户请求

监听内容(事件):创建、销毁、属性改变事件

监听作用:可以在事件发生前、发生后进行一些处理

应用场景:一般可以用来统计在线人数和在线用户、统计网站访问量、系统启动时初始化信息等一般用的比较少,主要是因为监听器是服务于服务端,与用户没有直接关系!

9、Servlet 3.0:与之前servlet 2.4 2.5版本本质相同,只是换了编程方式(注解编程)

        注解编程:spring框架2.0版本引入了注解编程,广受欢迎,后来很多技术和框架都逐渐增加了注解编程。

        一般web.xml、注解都很常用,使用注解编程的方式时web.xml已经不需要书写了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值