JSP/Servlet

JSP3个编译指令

 

page:针对当前页面,配置各种属性

<% @ page contentType="text/html" ; charset="gbk" language="java" isErrorPage="true"%>

 

include:用于指定包含另一个页面,可以将一个外部文件嵌入到当前JSP文件中,这个是个静态的include语句,它会把目标页面的其他编译指令也包含进来,适用于包含静态页面

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

 

taglib:用于定义和访问自定义标签

 

JSP的7个动作指令

forword指令

用于将页面的相应转发到另外的页面,既可以转发到静态HTML页面,也可以转发到动态的JSP页面,或者转发到容器中的servlet。并没有重新向新页面发送请求,只是完全采用了新的页面来对用户生成响应-请求依然是一次请求,所以请求参数,请求属性都不会丢失。地址栏url不会改变

<jsp : forward page="***.jsp">

    <jsp:param name="" value="" />

</jsp: forward>

 

include指令

动态的,用于包含某个页面,不会导入被include页面的编译指令,仅仅导入页面的body内容插入页面

<jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面。

静态导入将导入页面的代码完全融入,两个页面融合成一个整体servlet,动态导入在servlet中使用include方法来引入被导入的内容

 

useBean、setProperty、getProperty指令

3个都是也JavaBean相关的指令,其中useBean指令用于在JSP页面中初始化一个Java实例,后面连个用于为bean实例的属性赋值、取值

<jsp : useBean id="name" class="classname" scope="page|request|session|application">

id : bean实例名

class:类路径

scope:bean作用范围

 

plugin指令

主要用于下载服务器端的JavaBean或Applet到客户端执行,由于程序在客户端运行,因此客户端必须安装虚拟机

 

param 指令

设置参数的值,不能单独使用 。可以和include、forward、plugin指令结合使用

 

JSP脚本中的9个内置对象

这9个对象都是在JSP被容器生成.java文件时加入的,可以直接使用

 

page:

代表该页面本身,通常没有太大用处,也就就是servlet中的this,其类型就是生成的servlet类,能用page的地方就可以用this

 

exception:

java.lang.Throwable的实例,该实例代表其他页面中的异常错误,只有当编译指令page的isErrorPage属性为true时,该对象才可以使用,常用方法getMessage() 和printStackTrace()

 

 

pageContext:

javax.servlet.jsp.PageContext的实例,带表JSP的上下文,是用该对象可以访问页面中的共享数据。可以得到下面的所有对象

 

appliction:

javax.servlet.ServletContext的实例,该实例代表JSP所属的web应用本身,可用于JSP页面,或者在Serblet之间交换信息

 

config:

javax.servlet.ServletConfig的实例,该实例代表JSP的配置信息,该对象更多的在servlet中有效

 

request:

javax.servlet.http.HttpServletRrquest的实例,该对象封装了一次请求,客户端的请求参数都被封装在该对象里

 

response:

javax.servlet.http.HttpServletResponse的实例,代表服务器对客户端的相应。通常很少使用该对象直接响应,而是使用out对象,除非需要生成非字符响应。response常用于重定向,sendRedirect():与forward不同的是重定向会丢失所有的的请求参数和request范围的属性,重定向将生成第二次请求,与前一次请求不再同一个request范围内。放松一次请求的请求参数和request范围的属性全部丢失,地址栏的URL也会跟着改变

 

session:

javax.servlet.http.HttpSeesion的实例,该对象代表一次回话,当客户端浏览器与站点建立连接时,会话开始,当客户端关闭浏览器时回话结束。通常只应该把与用户会话状态相关的信息放入session范围内,不要仅仅为了两个页面之间交换信息,就使用session,如果为了两个页面信息页面交换信息,可以将该信息放入request范围,然后forword请求即可。

 

out:

javax.servlet.jsp.JspWriter的实例,该实例代表JSP的输出流,用于输出内容,形成HTML页面。

 

 

servlet 生命周期:

如果说servlet没有配置load-on-startup属性时,将在第一次被访问时创建(如果有配置,将在服务器启动时创建)

在应用程序运行过程中每个servlet类只会被创建一个对象

当对象被创建完毕时必须会执行init方法对对象的数据进行初始化,整个应用程度运行过程中该方法只会被执行一次

当有请求访问该对象时,servlet容器会调用该对象的service方法,service方法中对请求的类型进行判断

如果是get方法则调用重写的doGet方法,如果是post则会调用doPost方法

在doXXX方法中对请求进行处理及响应

响应后该对象将等待继续访问或者被销毁

再销毁之前,容器会调用该对象的destroy方法,然后该对象再被销毁. 请给分,很辛苦的

 

 

-----------------------

request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值