17_jsp

2017-06-16  本文已影响0人  AndroidCat
jsp
//通过Servlet实现动态页面
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter writer = response.getWriter();
    //动态的响应html页面
    writer.write("<!DOCTYPE html>");
    writer.write("<html>");
    writer.write("<head>");
    writer.write("<meta charset='UTF-8'>");
    writer.write("<title>Insert title here</title>");
    writer.write("</head>");
    writer.write("<body>");
    writer.write("<h1>这里写入动态代码</h1>");
    writer.write("</body>");
    writer.write("</html>");
}
//通过jsp实现动态页面
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <%
        String info = request.getParameter("info");
        info = new StringBuilder("Hello,").append(info).toString();
    %>
    <%=info %>
</body>
</html>
简介
jsp脚本和注释
jsp运行原理(本质就是servlet)面试
jsp指令(3个)
  1. page指令: (属性最多的指令,但是在实际开发中,page指令默认)

    格式:<%@ page 属性名1= "属性值1" 属性名2= "属性值2" ...%>
    language:jsp脚本中可以嵌入的语言种类
    (只能写java,一开始设计时为了兼容其他语言,但是其他语言不用jsp,到目前为止也只支持java)
    pageEncoding:当前jsp文件的本身编码---内部可以包含contentType
    contentType:response.setContentType(text/html;charset=UTF-8)
    session:是否jsp在翻译时自动创建session
    import:导入java的包
    errorPage:当当前页面出错后跳转到哪个页面
    isErrorPage:当前页面是一个处理错误的页面
    
  2. include指令:

    • 页面包含(静态包含)指令,可以将一个jsp页面包含到另一个jsp页面中
    • 格式:<%@ include file="被包含的文件地址"%>
  3. taglib指令:

    • 在jsp页面中引入标签库(jstl标签库、struts2标签库)
    • 格式:<%@ taglib uri="标签库地址" prefix="前缀"%>
配置错误页面
<error-page>
    <error-code>404</error-code>
    <location>/error.jsp</location>
</error-page>
jsp的9大隐式对象(毕业前要记住,笔试会问)
  1. out-->javax.servlet.jsp.JspWriter-->用于页面输出
  2. request-->javax.servlet.http.HttpServletRequest-->得到用户请求信息,
  3. response-->javax.servlet.http.HttpServletResponse-->服务器向客户端的回应信息
  4. config-->javax.servlet.ServletConfig-->服务器配置,可以取得初始化参数
  5. session-->javax.servlet.http.HttpSession-->用来保存用户的信息
  6. application-->javax.servlet.ServletContext-->所有用户的共享信息
  7. page java.lang.Object-->指当前页面转换后的Servlet类的实例
  8. pageContext-->javax.servlet.jsp.PageContext-->JSP的页面容器
  9. exception-->java.lang.Throwable-->表示JSP页面所发生的异常,在错误页中才起作用
out的类型:JspWriter
out作用就是想客户端输出内容----out.write()
out缓冲区默认8kb 可以设置成0 代表关闭out缓冲区内容直接写到respons缓冲器
pageContext
jsp页面的上下文对象,作用如下:
page对象与pageContext对象不是一回事
pageContext是一个域对象,作用范围为当前页面,作用也不是特别大,定义一个局部变量
setAttribute(String name,Object obj)
getAttribute(String name)
removeAttrbute(String name)

pageContext可以向指定的其他域中存取数据
setAttribute(String name,Object obj,int scope)
getAttribute(String name,int scope)
removeAttrbute(String name,int scope)

//使用pageContext向request域存数据
request.setAttribute("name", "zhangsan");
pageContext.setAttribute("name", "sunba");
pageContext.setAttribute("name", "lisi", PageContext.REQUEST_SCOPE);
pageContext.setAttribute("name", "wangwu", PageContext.SESSION_SCOPE);
pageContext.setAttribute("name", "tianqi", PageContext.APPLICATION_SCOPE);

findAttribute(String name)
---依次从pageContext域,request域,session域,,pplication域中获取属性,在某个域中获取后将不在向后寻找
pageContext可以获得其他8大隐式对象
内部维护者其他8大对象的索引,写框架才用到
例如: pageContext.getRequest()
pageContext.getSession()
四个域对象
jsp标签
静态包含与动态包含的区别
显示商品列表
上一篇 下一篇

猜你喜欢

热点阅读