JSP语法

1,JSP注释:
<%–注释内容–%>
而HTML的注释格式是:

2,JSP声明的语法格式为:
<%! 声明部分 %>

3,输出JSP表达式
<%=表达式%>

4,JSP的3个编译指令
page:针对当前页面的指令
include:用于指定包括另一个页面
taglib:用于定义和访问自定义标签

include指令
<%@include file="scriptlet.jsp" %>
这是个静态的include语句,它会把目标页面的其他编译指令也包含进来,动态include则不会。动态include: <jsp:include>

5,JSP的7个动作指令
jsp:forward:执行页面转向,将请求的处理转发到下一个页面
jsp:param:用于传递参数,必须与其他支持参数的标签一起使用
jsp:include:用于动态引入一个JSP页面
jsp:plugin:用于下载JavaBean或Applet到客户端执行
jsp:userBean:创建一个JavaBean实例
jsp:setProperty:设置JavaBean的属性值
jsp:getProperty:输出JavaBean的属性值

<jsp:forward page="forward-result.jsp">
    <jsp:param name="age" value="29">
</jsp:forward>
------------------------------------
动态include,区别是动态include不会导入被include页面的编译指令,
<jsp:include page="forward-result.jsp">
    <jsp:param name="age" value="29">
</jsp:include>

forward是拿目标页面代替原有页面,include则拿目标页面插入原有页面

<jsp:userBean id="name" class="className" scope="page|request|session|application"/>

scope为作用域,
page:该JavaBean实例仅在该页面有效
request:该JavaBean实例仅在本次请求有效
session:该JavaBean实例在本次session内有效
application:该JavaBean实例在本应用内一直有效

<jsp:useBean id="p1" class="lee.person" scope="page"/>
<jsp:setProperty name="p1" property="name" value="wawa"/>
<jsp:setProperty name="p1" property="age" value="23" />
<jsp:getProperty name="p1" property="name"/>

6,param指令

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

7,JSP的9个内置对象

application : ServletContext的实例,可用于JSP页面或者在Servlet之间交换信息。
常用方法: getAttribute(String name)、setAttribute(String name)、getInitParameter(String name)等

config: ServletConfig的实例,该实例代表该JSP的配置信息
常用方法:getInitParameter(String name)、getInitParameternames()等

exception:java.lang.Throwable的实例,只有当页面是错误处理页面,即编译指令page的isErrorPage属性为true时,该对象才可以使用。
常用方法:getMessage()和printStackTrace()等

out: 用于输出内容

page: 代表该页面本身,即Servlet中的this

pageContext: PageContext的实例,代表该JSP页面的上下文,使用它可以访问页面中的共享数据。
常用方法: getServletContext()和getServletConfig()等

request: HttpServletRequest的实例,客户端的请求参数都被封装在request里,常用获取客户端请求参数,
常用方法:getParameter(String name)、getParameterValues(String name)、setAttribute(String name,Object value)、getAttribute(String name)和setCharacterEncoding(String env)等

response: HttpServletResponse的实例,代表服务器对客户端的响应,response对象常用于重定向。常用方法: getOutputStream()、sendRedirect(java.lang.String.location);等

session: HttpSession的实例,代表一次会话。
常用方法:getAttribute(String name)、setAttribute(String name,Object value)

application: 对于整个Web有效,application中的数据可以被该Web应用下其他JSP、Servlet访问。

session : 仅对一次会话有效。 session中的数据可以被本次会话的其他JSP、Servlet访问。

request: 仅对本次请求有效。

page: 仅对当前页面有效。


application的作用:
1,多个JSP、Servlet共享数据
<% application.setAttribute("counter",String.valueOf(++i));%>

<%=application.getAttribute("counter")%>

ServletContext sc=getServletConfig().getServletContext();
sc.getAttribute("counter");
每一个Web应用只有一个ServletContext实例,在JSP页面中可通过application内置对象访问该实例。

2,获取web应用配置参数

request对象

1,获取请求头/请求参数
request是HttpServletRequest接口的实例。
方法:
String getParameter(String name)获取name请求参数的值。
Map getParameterMap() 获取所有请求参数名和参数值所组成的Map对象
String[] getParameterValues(String name) name请求参数的值,当该请求参数有多个值时,返回多个值所组成的数组。
String getHeader(String name)指定请求头的值

2,操作request范围的属性

setAttribute(String name, Object value)将value设置成request范围的属性
Object getAttribute(String name)获取request范围的属性

3,执行forward或include

HttpServletRequest类提供一个getRequestDispatcher(String path)方法,path是希望forward或include的目标路径,path字符串必须以斜线开头

    request.getRequestDispatcher("/a.jsp").forward(request, response);

reponse

重定向
redirect和forward不同的是,重定向会丢失所有的请求参数和request范围的属性,这是因为redirect将产生第二次请求,与前一次请求不在同一个request范围内。地址栏URl发送改变。
reponse.sendRedirect(“redirect-result.jsp”);

增加Cookie

session对象

session对象是HttpSession的实例
常用方法:setAttribute(String name, Object value)设置session范围内的name属性值为value;
getAttribute(String name)返回session范围内name属性的值。

JSP/Servlet的生命周期
1,创建Servlet实例
2,web容器调用Servlet的init方法,对Servlet进行初始化。
3,调用service()方法处理来响应用户请求。
4,web销毁service时,调用Servlet的destroy方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值