JSP
来源:互联网 发布:黑马程序员品优购项目 编辑:程序博客网 时间:2024/06/07 06:44
JSP
JSP:Java Server Page 动态页面生成技术
Sun公司制定的一种服务器端动态生成页面的组件规范
JSP运行原理
第一次访问一个JSP,容器先将JSP按照JSP规范,转换成一个servlet,容器调用JSP中的servlet()方法,将JSP中的内容相应给浏览器
JSP语法
- HTML、CSS、JavaScript直接写,语法没有变化
- 注释:
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的隐含(内部)对象
- out —- JspWriter
- request —– HttpServletRequest
- response —– HttpServletResponse
- application —– ServletContext
- session —– HttpSession
- page —– Object
- exception —– Exception
- config —– ServletConfig
- 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);
转发的特点
- 转发之后地址栏地址不会发生改变
- 转发的目的地必须是同一个应用内部的地址
- 转发涉及的各个web组件之间共享同一个request和response
转发和重定向的区别
- 重定向是浏览器发送请求并收到响应以后,再次向一个新地址发请求;转发是服务器收到请求之后,为了完成响应转到一个新的地址。
- 重定向中有两个请求对象,不共享数据;转发只产生一个请求对象,在组件中共享数据。
- 重定向地址栏数据会改变,转发不会。
- 重定向的地址可以是任意地址,转发到的新地址必须是同一个应用内的地址。
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页面路径写法
- 不加base使用绝对路径
- 加base使用相对路径
Servlet路径写法
建议使用绝对路径
重定向:“/项目名”
转发:“/”
0 0
- JSP
- JSP
- jsp
- JSP
- JSP
- jsp
- Jsp
- JSP
- jsp
- jsp
- jsp
- JSP
- JSP
- jsp
- jsp
- JSP
- jsp
- jsp
- Android的广播机制——Broadcast Reciver
- EL表达式与JSTL
- Python 多重列表解析里for的顺序
- 1086. Tree Traversals Again (25)
- POJ 3237(树链剖分)
- JSP
- 函数指针
- Struts2的数据校验(Action类必须要继承ActionSupport类)
- C语言学习笔记
- Java中Map相关的快速查找算法
- Java开发中的23种设计模式详解
- Servlet
- 中小企业 IT 运维福利:快速构建 on-call 机制
- 过滤器和监听器