jsp

一.JSP概述

Servlet缺点:
1.HTML标签以字符串形式出现,处理HTTP响应报文工作比较十分繁琐;
2.所有的文本和HTML都是硬编码,表现层稍微小的变化,都需要重新编译;
个人观点:1.对于实现复杂页面不好观察;
                2.整个交互逻辑处理繁杂;
                3.改动需要重新编译。
JSP(JavaServer Pages)的出现解决了上面两个问题


注:Jsp:本质上是一个Servlet
Servlet/jsp容器会将jsp翻译为Servlet。

二.JSP注释

JSP注释:<%--  -->
HTML注释:<!-  -->  :发送到浏览器做处理

三.JSP隐式对象

request       javax.servlet.http.HttpServletRequest
response      javax.servlet.http.HttpDervletResponse
out           javax.sevlet.jsp.JspWriter
session       javax.servlet.http.Httpsession
application   javax.servlet.ServletContext
config
pageContext
page

exception

例:request:

<%

    String username=request.getParameter("username");

 %>

      out:

<%
   out.println("Buffer size:"+response.getBufferSize());
   out.println("Servlet name:"+session.getId());
   out.println("Serlvet info:"+application.getServerInfo());
%>

四.指令

page:
<%@page attribute="value1" attribute="value2"%>
page指令有一点点类似于属性设置值attribute="value"
page的指令常见属性设置:
    import:定义一个或多个本页面中导入和使用的java类型
    session:值为true会导入会话管理
                   值为false则相反
   info:返回调用容器生成的Servlet类的getServletInfo方法的结果。
   isErrorPage:标识本页是一个错误处理页面
    contentType:定义本页面隐式对象response的内容类型,默认  text/html
    pageEncoding:定义本页的字符编码,默认为:ISO-8859-1
   language:定义本页中的脚本语言类型
   isELIgnored:配置时是否忽略EL表达式。EL:Expression Language
include 命令:将其他文件中的内容包含到当前JSP页面。一个页面可以包含多个include指令
<%@include file="*.jspf">

应用:将页面分模块化设计

例:import


五.脚本元素

  基础元素:
  <%    %>   java代码块以<%为开始,以%>为结束
  表达式:

  <%=expression %>

   表达式例:<%=Calendar.getInstance().getTimeInMillis() %>

  声明:
  可以声明在JSP页面中使用的变量或方法。

  <%!   %> 

   例:

<%!

  public String getTodayDate(){
     return new Date().toGMTString();
  }
   public void jspInit(){
System.out.println("nsjk");

   public void jspDestroy(){
  System.out.println("hcsn");
   }
%>注:禁用脚本元素:
<jsp-property-group>
    <url-pattren>*.jsp<url-pattern>
    <scripting-invalid>true</scripting-invalid>
</jsp-property-group>

六.动作

   useBean
     创建实例:
   <jsp:useBean id="name" class="*">
     实例赋值setProperty
   <jsp:setProperty name="*"  property="attributeName" value="SttributeValue">
     输出实例值
   <jsp:getProperty name=""   property="attributeName">
   include
   <jsp:include page="*.jsp">
      <jsp:param name="text" value="how are you?">
   </jsp:include>
include指令与include动作:
include的指令:资源引入发生在页面转换(jsp--->servlet)时,即当jsp容器将页面转换成Servlet时。
include的动作:资源引入发生在请求页面时。

总结:include动作可以传递参数,而include指令不能传递参数
在应用include指令包含文件时,由于被包含的文件最终会生成一个文件,所以包含文件和被包含文件不能有重名的变量或方法。
在应用<jsp:include>包含文件时,由于每个文件单独编译,所以变量和方法名不冲突。

   forward:将当前页面转到其他页面
   <jsp:forward page="*.jsp">
       <jsp:param name="text" value="Please login"/>
   </jsp:forward>

七.错误处理

page指令      isErrorPage属性
标识一个JSP页面是错误处理页面
<%@page isErrorPage="true"%>

猜你喜欢

转载自blog.csdn.net/qq_32067151/article/details/80037449
jsp