JSP总结

JSP基础:

jsp文件编译过程:

jsp-.java-.servlet-编译后再tomcat的work目录下

配置全局错误页面:

在web.xml中
<error-page>
<error-code>404</error-code>
    <location>/error.jsp</location>
</error-page>

jsp页面9个对象:

(4个域对象:request\session\pageContext\application)
(4个方法:setAttribute\getAttribute\RemoveAttribute\getAttributeName)
>session:浏览器与服务器的一次回话session.getId()
>pageContext:(注:可获取其他8个隐式的对象及servlet对象)  
>page:相当于this
>request
    1、request:HttpServletRequest类型
       参数传递:
       <a href="index.jsp?id=1">获取参数</a>
       <%=request.getParameter("id")%>
    4、为request对象域管理属性(在用户页面与服务器间传递数据)
       request.setAttribute("date",new Date());
       <%=request.getAttribute("date")%>
       <%request.removeAttribute("date")%>
    5、cookie:服务器端生成发送给浏览器
       对象集合request.getCookies()
>response对象
    1、重定向:
    response.sendRedirect("URL");
    2、处理HTTP头文件:
    response.setHeader("refresh","2;URL=welcome.jsp");
    设置2秒后刷新跳转到welcome.jsp页面
    3、设置缓冲区的大小:服务器发送到客户端先写入缓冲区
    response.setBufferSize(0);
>session对象:一次浏览器会话
     1、创建获取session信息(map型):
       setAttribute(key,obj);
       getAttribute(key);
    注:用于浏览器的一次回话
     2、移除与销毁:
        session.removeAttribute(key)
        session.invalidate();
     3、session ID获取:
        session.getId()
     4、设置会话有效时间:
        session.setMaxInactiveInterval(s);
>application对象:当前web应用,是servletContext对象
  1、访问应用程序的初始参数
     <context-param>
        <param-name>url</param-name>
        <param-value>www.baidu.com</param-value>
     </context-param>
     String  url=application.getInitParameter("url");
     out.println("URL:"+url+"<br>");
  注:配置xml时需重启服务器
  2、管理应用程序的环境属性:与session类似,但保存在服务器
       getAttributeNames();
       getAttribute(name);
       setAttribute(key,obj);
       removeAttribute(name);
>config对象:
   获取xml的配置信息
   <init-param>
         <param-name>qq</param-name>
         <param-value>123456</param-value>
   </init-param>
   <%=config.getInitParameter("qq")%>

5、out:

  out.write()与response.getWrite().write()区别
  >out.write():先输出固定大小的缓冲区,最后刷入到response中让服务器获取
  >response.getWrite().write():直接刷入

6、等价:

request.setAttribute(“name”,”zhang”)
||
pageContext.setAttribute(“n”, “li”,pageContext.REQUEST_SCOPE);
request.getAttribute(“name”);
||
pageContext.getAttribute(“name”,pageContext.REQUEST_SCOPE)`

7、作用域的大小:

  page<request<session<application
  注:调试时通常用out.println(),或断点

8、请求转发与重定向:

    转发:
    String path="";
    RequestDispatcher requestDispatcher=request.getRequestDispatcher("/"+path);
    requestDispatcher.forward(request,response)
    重定向:
    String path="";
    response.sendRedirect(path);
    区别:
    请求转发:URL不变,request始终为同一个对象,当前web资源,"/"代表当前
              web应用的根目录
    重定向:URL变为响应的新地址,新的request对象,可访问任意资源,"/"代表
            当前web站点的根目录

9、jsp指令:

    <%@  include、page、taglib  %>
    1、page指令
        设置当前页面session是否可用:
            session="true/false"
            <%=session.getId() %>
        设置错误页面:
            errorpage="/error.jsp"出错的页面
            isErrorPage="true":转到的页面,通过exception.getMessage()获取异常
        导入java类:
            import
        设置发送的页面格式及编码:
            response.setContextType("text/html;charset="UTF-8")
        设置当前页面编码:
            pageEncoding
    2、include指令
        静态引入(形成一个文件):
            <%@ include file="b.jsp" %>(源码包含,头部合并形成class文件)
      <%@ include file="jsp\html\java"%>
        动态引入(形成两个文件):
            <jsp:include page="b.jsp"></jsp:include>
    注:jsp页面的转发方式
        <jsp:forward page="/b.jsp"></jsp:include>
        <%
            request.getRequestDispatcher("/b.jsp").forward(request,response);
        %>
    3、taglib指令
      <%@ taglib prefix="fix前缀" uri="自定义标签位置"%>

10、中文乱码:

        设置编码:
            pageEncoding、charset
        post请求的编码格式设定:
            <% request.setCharacterEncoding("UTF-8"); %>
            <%=request.getParameter("username")%>
        get请求:
            String val=request.getParameter("username");
            String user=new String(val.getBytes("ISO-8859-1"),"UTF-8")
            out.print(user)

11、注释:

    jsp注释:
        <%----%>
    html注释:
        <!---->

12、EL

<c:set var="a" value="5"/>
<c:out value="${a}"/>

<c:if test="${1>2}">
    <c:out value="1大于2"/>

循环:
    <c:foreach begin="0" end="8" varStatus="i">
        <c:out value="${i.index}">
    </c:foreach>

数组(集合循环类似):
    String [] arrs={"gh","jk"};
    request.setAttribute("arrs",arrs);

    <c:foraech items="$arrs" var="arr">
        <c:out value="${arr}">

页面定时刷新:

    <%Thread.sleep(5000);%><br/>

5、动作标签:

参数传递
<jsp:param name="paramname" value="paramvalue">
实例化JavaBean
<jsp:useBean id="Bean" scope="page" class="lin.Bean"/>
<jsp:setProperty>\<jsp:getProperty>
如下:
     <jsp:setProperty name="id" property="password"  value="123"/>
     <jsp:getProperty name="id" property="password"/>

servlet过滤器

  过滤器接口
     Filter:init\doFilter\destroy
     FilterChain:doFilter
     FilterConfig

Servlet监听器

 1、上下文监听
 2、监听HTTP
    HttpSession操作及属性操作、HTTP的active与passivate
 3、客户端请求监听
 4、HttpSessionBindingLister接口对象的Session属性绑定
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值