JSP重点笔记

一、指令标识


1.1、page指令

<%@ page language="java" import="java.util.*"  errorPage="error.jsp" buffer="64kb"  a    utoFlush="true" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

1.2、include指令

不过该指令是静态包含,也就是说被包含文件中所有内
容会被原样包含到该 jsp 页面中,即使被包含文件中有 jsp 代码,在包含时也不会被编译执行。使用 include 指令,最终将生成一个文件,所以在被包含和包含的文件中,不能有相同名称的变量。
在应用jsp:include标识进行文件包含时,为了使整个页面的层次结构不发生冲突,建议在包含页面中将、等标记删除。


1.3、taglib指令

导入标签库有很多。

<%@ taglib   prefix="c"     uri="http://java.sun.com/jsp/jstl/core" %>  <!-- 导入需要的标库:标签库里面有需要的标签 -->

二、脚本标识

2.1、代码片段

          <%
               String   manager="mr";
               //假设从servlet中获取的数据
               String   title="./images/houtaimain/timg.gif";  //
          %>

2.2、JSP表达式

          <%=title %>
          <%=5+6 %>
          <img alt="这是图片" src="<%=title%>">

2.3、声明标识

代码片段与声明标识的区别是,通过声明标识创建的变量和方法,在当前 jsp 页面中有效,它的生命周期是从创建开始到服务器关闭结束;而代码片段创建的变量或方法,也是在当前 jsp 页面中有效,但它的生命周期是页面关闭后,就是被销毁。
注意:每刷新一次,都count是加1,number是加2

         <%! 
               int   number=0;
               int  count(){
                    number++;
                    return   number++;                   
               }
          %>
        count:<%=count() %>  ==========
     number:<%=number %>   

三、注释

3.1、HTML注释

注意:源代码可以看见,一般不用这种


3.2、带有JSP表达式的注释

// // / */


3.3、隐藏注释

注意:项目中提倡写这种注释,只能开发人员看,通过浏览器看源码看不见
<%–每刷新一次,都会加1 --%>


3.4、动态注释

 <!-- <%=new  Date()  %>-->

四、动作标识

4.1、包含文件标识

在应用jsp:include标识进行文件包含时,为了使整个页面的层次结构不发生冲突,建议在包含页面中将、等标记删除。
A.<%@ include file=”” %>只能包含静态页面

B.<jsp:include page=”url” flush=”false|true”>
可以包含动态页面,静态页面


4.2、请求转发标识

 <jsp:forward page="index.jsp">
            <jsp:param value="123456" name="account"/>
</jsp:forward>

4.3、传递参数标识

 <jsp:forward page="index.jsp">
            <jsp:param value="123456" name="account"/>
</jsp:forward>


<jsp:include page="top4.jsp">
                                      <jsp:param value="123456" name="account"/>
</jsp:include>

五、Request对象

5.1、获取访问的请求参数

注意:超链接?Username=jim; 表单文本框,密码框等
request.getParameter();


5.2、在作用域管理属性

request.setAttribute(“result”,“很抱歉,页面产生错误!”);
request.getAttribute(“result”);


5.3、解决中文乱码

  • 第一种
    request.setCharacterEncoding(“utf-8”);

  • 第二种
    //字符串变成字节数组,并且转码
    byte[] bytes=username.getBytes(“ISO8859-1”);
    //字节数组变成字符串,并且转码
    String username2=new String(bytes,“utf-8”);

5.4、显示国际化信息

                 //获取本地国际化信息
                 Locale    locale=request.getLocale();
                 
                 Locale  le=Locale.US;//美国

5.5、获取客户端信息

获取客户端向服务器传送数据的方法:<%=request.getMethod() %><br>
          使用的协议:<%=request.getProtocol() %><br>
          获得发出请求字符串的客户端地址,不包括请求的参数:<%=request.getRequestURI() %> <br>  
          获得发出请求字符串的客户端地址:<%=request.getRequestURL()%>  <br>  
          获取客户端的  IP:<%=request.getRemoteAddr() %>       <br>  
          获取服务器的名字:<%=request.getServerName() %> <br>
          获取服务器的端口号:<%=request.getServerPort() %>  <br>
          获取客户端的主机名:<%=request.getRemoteHost() %><br>
          获取客户端请求的脚本文件的文件路径:<%=request.getServletPath() %><br>
          获得  HTTP 协议定义的文件头信息host的值:<%=request.getHeader("host") %><br>
            获得  HTTP 协议定义的文件头信息user-agent的值:
<%=request.getHeader("user-agent") %><br>
          获取请求文件的绝对路径:<%=request.getRealPath("Test4Request.jsp") %><br>
      path:<%=path %><br>
       basePath:<%=basePath %>

六、response内置对象

6.1、重定向网页

response.sendRedirect(“login.jsp”); //重定向到 login.jsp 页面
response.sendRedirect(“https://www.baidu.com”); //重定向到百度

6.2、处理http文件头

<%  
          
             //response.setHeader("pragma", "no-cache");
             //response.setHeader("Cache-control","no-store");
 //response.setDateHeader("Expires",0);


 response.setHeader("refresh","10;URL=index.jsp");
%>

6.3、设置输出缓存

response.setBuffer(32);


七、Session内置对象

session.setAttribute("name",name);
String  name=(String)session.getAttribute("name");
session.removeAttribute("name");

//设置最大的存活时间,10秒
//session.setMaxInactiveInterval(10);
             
//销毁session
session.invalidate();

八、application内置对象

  <context-param>
    <param-name>URL</param-name>
    <param-value>jdbc:mysql://127.0.0.1:3306/db_databases</param-value>
//获取配置文件context-para里面参数的值
              String    value=application.getInitParameter("URL");

 //首先获取所有的参数名,我们是不是可以根据参数名获取参数值
            /*
              把所有的初始化参数名放入枚举中
            */
Enumeration<String>     enumeration=application.getInitParameterNames();
                    



              application.setAttribute("image","1.png");
               String    image=(String)application.getAttribute("image");
               out.println("<br/>image="+image);
               
               application.removeAttribute("image");

九、Out对象

Out对象的方法

//append:只能添加字符
//write: 只能添加字符,字符串,字符数组
//println:可以打印任何类型
println不会换行,因为在html里面只会把它当成一个内容,而不是标签,所以换行需要加入


十、pageContext

获取会话范围的  pageContext  对象
Servlet里面获取pageContext:
JspFactory _jspxFactory =JspFactory.getDefaultFactory();
PageContext pageContext =_jspxFactory.getPageContext(this,request,response,"",true,8192,true);

十一、config对象

获取servlet里面的初始化参数。


十二、page对象

表示当前页面的servlet对象。和this一样。


十三、Exception对象

A.需要处理异常的页面:要加上errorPage=“error.jsp”,指明有异常后去哪个jsp处理。
B.error.jsp页面需要加上isErrorPage=”true”
C.error.jsp页面用exception对象获取异常信息。
D.获取异常信息的三种方法
1.getMessage: 获取异常信息
2.toString:(以前的意思:返回对象的字符串表现形式),获取异常类名和异常信息
3.printStackTrace:没有返回值,打印输出异常类名、异常信息和异常行号。

猜你喜欢

转载自blog.csdn.net/weixin_37174418/article/details/85321498