servlet jsp filter listener el表达式 tag file

.jspServlet

jsp servlet javaEE开发的两个基本成员

jsp servlet filter listener及自定义标签库是本章要讲的内容,他们必须在web应用中才能使用

web.xml文件是配置描述符  

配置和管理 jsp servlet fileter listener 自定义标签库 jsp的属性  web首页等

1.1jsp的基本原理

 

jsp本质上是Servlet,分为两部分静态部分包括HTML的标签和静态内容

动态部分由java程序控制动态生成

JSP必须生成servlet才可以执行

每个Jsp页面第一次访问比较慢,因为要等待编译成servlet

jsp输送到客户端的是标准HTML页面

 

 

1.2.jsp的使用

<% %> jsp的声明

<% =  表达式%> jsp的输出

 jsp3个编译指令

  page  该指令是针对当前页面的指令

include  包含另一个页面 <%@ include file=”demo.jsp”%>

taglib  自定义标签库导入

 

         

jsp的七个动态指令

  jsp: forward 执行页面转向

  jsp:param  传递参数,必须和其他支持参数的标签一起使用

jsp:include 用于动态引入一个jsp页面

jsp:plugin  用于下载一个javabeanapplet到客户端执行

jsp:useBean  创建一个javabean实例

jsp:setProperty  设置javabean实例的属性值

jsp:getPrpperty  输出javabean实例的属性值

 

 

1)jsp:forward 

<jsp:forward page=”relativeUrl |<% =表达式%> ”>

     <jsp:param ...>

<jsp:forward />

对于请求参数 param可以通过 HttpServletRequest类的getParameterr()方法获得

 

 

2)jsp:include 

使用 <%@include...%>   静态包含 
简单的理解就是你可以认为 这两个页面代码是写在同一个页面里。

使用 <jsp:include...>  动态包含 
当 向这个页面发出请求后。会转发到 include 的哪个页面去执行。 执行完了后又接着执行本页面余下的代码。

<jsp:useBean id=”javaBean的实例名”  class=”实现类”  scope=”page | request| session| applocation”>

<jsp: setProperty name= “” property=””  value=””>

<jsp:getProperty  name= “”  property=””>

 

jsp9个内置对象

application :

config

exception

out代表jsp页面的输出流用于输出内容形成HTML

page

pageContext该对象表示jsp页面上下文,使用该对象可以访问页面上的共享数据包括page request session applocation

request

response

session 一次会话

 

PageContext

pageContext.getAttribute(String name) page范围的name属性

pageContext.getAttribute(String name ,int scope)  scope的取值:

PageContext.PAGE_SCOPE

PageContext.REQUEST_SCOPE

PageContext.SESSION_SCOPE

PageContext.APLLOCATION_SCOPE

并且有相对应的setAttribute方法来设置相应的数据

并且PageContext对象通过get方法可以获得其他九个内置对象

 如getSession() 

  getServletContext()//获得application对象

Request

string getParameter(String paramName)

Map  getParameterMap()//获取参数名和参数值组成的map对象

String [] getParameterValues( Sting paramName)//获取请求参数名对应的值,当值有多个时,返回多个值

String getHeader(String name) //获取请求头的值

Enumeration getHeaderNames()获取请求头的名称

enumeration getHeaders(String name) 获取指定名称的请求头的多个值

 

可以代替jsp的动态指令,完成forwardinclude

   getRequestDispatcher(“/a.jsp”).include( request,response);

getRequestDispatcher( “ /a.jsp”).forward(request,response)

 

Response

 

getOutputStream() //响应输出字节流

重定向  response.sendRedirect(“a.jsp”);

设置cookie

Cookie c= new Cookie(“username”,”name”);

c.setMaxAge(24*3600);

response.addCookie(c);

 

 

Session

Map map= new HashMap();

session.setAttribute(“map”,”map”);

Map map= (Map ) ession.getAttribute(“map”);

 

2.servlet

servlet是运行在服务器的程序,用来处理客户端的请求和响应,是个特殊的类,继承HttpServlet,javaee开发中servlet只是作为控制器

doGet()方法响应get请求

doPost()方法响应post请求

 

service() 处理请求和响应

init()初始化操作

destroy()销毁操作

servletjsp的区别

servlet没有内置对象,必须显式创建  servlet生成静态页面必须通过输出流逐行输出

 

2.1servlet配置

1)servlet3.0两种配置方法 :注解配置 和web.xml配置

注解配置 @WebServlet (   name=” servlet的名字”  value| urlPatterns=” servlet要处理的url”)

servlet上声明即可

2)web.xml方式配置

<servlet>

<servlet-name> servlet名字</servlet-name>

<servlet-class>servlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name> servlet名字</servlet-name>

<url-pattern> /servlet映射的url</url-pattern>

</servlet-mapping>

 

 

 

 

2.2servletjsp的生命周期

servlet创建实例:在客户端第一次发送请求时候或者在web应用启动时(load-on-startup Servlet)

init初始化

处理请求和响应

销毁

配置load-on-startup的两种方式 

  @WebServlet(  loadOnStartup=1)

或者

<servlet>

   <load-on-startup>1</load-on-startup>

</servlet>

2.3配置servlet的参数

@WebServlet( initParams=”

@WebInitParam( name= “” value=””),

 

@WebInitParam( name= “” value=””),

 

 

”  )

或者 <servlet>  

<init-param>

<param-name></param-name>

<param-value></param-value>

</init-param > 

</servlet>

要想获得参数 需要ServletConfig类的getInitParameter(“参数名”)方法

servletConfig类获得的是当前servlet的配置参数

servletContext类获得的是整个web应用的配置参数

 

比如数据库的链接信息可以配置里面,增加代码的可移植性

 

2,4jsp的自定义标签库

自定义标签库是为了取代丑陋的jsp脚本

  jsp2开发自定义标签步骤

开发自定义标签处理类

建立一个*.tld文件

jsp中使用自定义标签

自定义标签类继承一个父类SimpleTagSupport,重写doTag()方法,如果有属性,属性要有setter getter方法

WEB-INF下创建tld文件,tomcat例子中复制一个修改之

<%@ taglib  uri=”” prefix=””%>

 

 

3.Filter

 

使用Filter的完整流程:Filter对用户请求进行预处理,并将请求交给servlet接收和响应请求,最后Filter对服务器的响应进行后处理

 

3.1创建Filter

  必须实现Filter接口

  该接口定义有三个方法 init  destroy  doFilter( ServletRequest req,ServletResponse res, FilterChain chain)

3.2配置Filter

 注解配置

@WebFilter(  filterName=”” urlPattern| value=””)

 

或者web.xml 

<filter></filter>

<filter-mapping><filter-mapping>

类似于servlet的配置

4.Listener

创建实现类

有很多监听器接口

 例如:ServletContextListener 这个接口负责监听web应用的开启和关闭

,在开启和关闭时可以做一些动作

配置这个类

@WebListener()修饰listener实现类

或者使用web.xml

<listener>

<listener-class></listerner-class>

</listener>

5.EL表达式语言  expression laguage

el是一种简化的数据访问格式,可以方便的访问jsp的内置对象和javabean组件,避免使用jsp脚本

格式: ${ expression}

5.1支持算术运算符和逻辑运算符

例如${ (1==2)?2:5} 三目运算符

5.2表达式语言可以获取内置对象 共11

pageContext

pageScope

requestScope

sessionScope

applicationScope

param  //用于获取请求参数值

paramValues  // 用于获取请求参数值,获得的是一个数组

header   用于获得请求头的参数值

headValues

initParam 用于获取web应用的初始化参数

cookie  用于获得指定的cookie

例如 ${param[“name”]   等价  ${param.name}

${sessionScope[“user”]}

${cookie[“name”].value}

5.3表达式语言的自定义函数

 类似于自定义标签库  编写函数处理类

使用标签库定义函数 tld

使用函数

6.Tag File 

简化的自定义标签 不用写标签处理类和标签库文件

建立tag文件   tag file 代替标签处理类

在页面使用这个标签 需要先导入标签库<%@ taglib prefix=””  tagdir=”path”%>

 

转载于:https://www.cnblogs.com/chuanqimessi/p/4756417.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值