JSP

来源:互联网 发布:黑马程序员品优购项目 编辑:程序博客网 时间:2024/06/07 06:44

JSP


JSP:Java Server Page 动态页面生成技术
Sun公司制定的一种服务器端动态生成页面的组件规范

JSP运行原理

第一次访问一个JSP,容器先将JSP按照JSP规范,转换成一个servlet,容器调用JSP中的servlet()方法,将JSP中的内容相应给浏览器

JSP语法

  1. HTML、CSS、JavaScript直接写,语法没有变化
  2. 注释:
    HTML注释:
    JSP注释: <%– –%>

JSP中的Java代码

<% %> Java代码段
<%= %> JSP表达式
<%! %> JSP声明,全局变量


JSP中的指令

page属性

page指令通常为JSP的第一行语句
控制在JSP转译生成Servlet类中生成的内容

pageEncoding:  设置页面编码import:         导包(唯一一个可多次使用的指令)contentType:    设置页面相应的MIME类型和字符编码
<!-- 设置编码 --><%@ pageEncoding="utf-8" %><%@ contentType="text/html,character=utf-8" %>

include指令

JSP包含其他的JSP或者HTML

<%@ include file="url" %>

taglib指令

导入标签库

<%@ taglib prefix="c" url="" %>

JSP的隐含(内部)对象

  1. out —- JspWriter
  2. request —– HttpServletRequest
  3. response —– HttpServletResponse
  4. application —– ServletContext
  5. session —– HttpSession
  6. page —– Object
  7. exception —– Exception
  8. config —– ServletConfig
  9. pageContext —– PageContext

转发

一个web组件将未完成的处理通过容器转交给另一个web组件

转发的步骤

1.将数据绑定到request

request.setAttribute("empList", list);

2.获得转发器

RequestDispatcher rid = request.getRequestDispatcher("empList.jsp");

3.转发

rid.forward(request, response);
request.setAttribute("empList", list);request.getRequestDispatcher("empList.jsp").forward(request, response);

转发的特点

  1. 转发之后地址栏地址不会发生改变
  2. 转发的目的地必须是同一个应用内部的地址
  3. 转发涉及的各个web组件之间共享同一个request和response

转发和重定向的区别

  1. 重定向是浏览器发送请求并收到响应以后,再次向一个新地址发请求;转发是服务器收到请求之后,为了完成响应转到一个新的地址。
  2. 重定向中有两个请求对象,不共享数据;转发只产生一个请求对象,在组件中共享数据。
  3. 重定向地址栏数据会改变,转发不会。
  4. 重定向的地址可以是任意地址,转发到的新地址必须是同一个应用内的地址。

JSP异常处理

编程式异常处理

try {    ......    ......} catch (NumberFormatException e) {    request.setAttribute("info", "数据错误");    request.getRequestDispatcher("error.jsp").forward(request, response);}

声明式异常处理

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    try {        ......    } catch (SQLException e) {        e.printStackTrace();        throw new ServletException(e);    }}

web.xml

<error-page>    <exception-type>javax.servlet.ServletException</exception-type>    <location>/SystemError.jsp</location></error-page>

不同异常处理的应用场景

针对程序自身异常,使用编程式异常处理方式。
对于系统级异常,最好使用声明式异常处理方式。


JSP路径问题

Servlet中路径分为绝对路径和相对路径

绝对路径

以“/”开头
“/”在转发中表示http://localhost/项目名/
在HTML中,重定向中,表示http://localhost/

相对路径

比以“/”开头

JSP页面路径写法

  1. 不加base使用绝对路径
  2. 加base使用相对路径

Servlet路径写法

建议使用绝对路径
重定向:“/项目名”
转发:“/”

0 0
原创粉丝点击