博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

11-12、JSP

内容:

JSPSun公司制定的,一种用于简化Servlet开发的,服务器端动态页面技术组件规范

JSPJava Server Page的缩写

Jsp执行原理:

add.jsp-----翻译---->add_jsp.java-----编译----->add_jsp.clsss----JVM--->执行

第二次访问无改动直接执行,如果jsp有改动,则重新编译编译执行

 

HttpJspBase继承了HttpServlet

  public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)

        throws java.io.IOException, javax.servlet.ServletException {

JSP页面组成:html、指令、java注释、java代码

Java代码:

JSP脚本:

<%    %>

JSP表达式:

<%=  %>

JSP声明:

<%!   %>

JSP注释仅在JSP页面中可见,在Java代码,浏览器,HTML中不可见:

<%-- --%>

 

 

Html注释可以被浏览器看到

Java注释可在JSP页面看到

JSP指令是设置整个JSP页面中相关属性的指令

分类:

page指令

include指令

taglib指令(后续学习)

el 表达式语言 ${param.name} ${list} ${cookie.name.value} ${sessionScope.loginlist[0].password}

jstl javapage标准标签库

循环(for for if 动态显示下拉框)

 <c:forEach>

<tr><td>循环表格</td></tr>

</c:forEach>

选择

<c:choose>

<c:when test="条件" >${list[0].name}</c:when>

<c:otherwise>其他</c:otherwise>

</c:choose>

判断

<c:if test="条件">

page指令是用于设置页面全局属性的JSP指令。

 

 

include 指令是静态包含文本资源的jsp指令。

JSP内置对象是预先定义的,在JSP页面脚本中可以直接使用的对象

HttpServletRequest request 请求对象】

【HttpServletResponse response响应对象】

PageContext pageContext  页面上下文对象

HttpSession session 会话对象】

ServletContext application 应用程序对象、唯一的,最大的共享的对象

ServletConfig config 配置对象

JspWriter out 输出对象

Object page = this  当前页面本身

exception  异常对象

 

作用域对象

作用域对象:生命周期有一定的范围,在这个范围内能访问的jsp内置对象

pageContext  : jsp页面提供,只能在jsp页面内使用

request : 请求域,请求范围内有效

session  会话域,从浏览器打开访问服务器,中间发送无数次的请求和响应,知道关闭浏览器的过程

application  容器启动创建,容器关闭时销毁

 

存数据: setAttribute(key,value)

取数据: getAttribute(key)

request是封装了客户端请求信息通过HTTP协议传送到服务器的

               JSP内置对象。

作用:

1、可以设置请求编码:req.setCharacterEncoding("utf-8");

2、可以接收浏览器的请求数据: req.getParameter("参数名");
3、可以作为域对象存取数据:

(1) 存: setAttribute(String key,Object value)

(2) 取: getAttribute(String key)

(3) 移除:removeAttribute(String key)

4、转发

转发是一个web组件(jsp/servlet)将未处理完的请求转交给另一个web组件继续处理的过程

 

 

 

HttpServletResponse代表服务器端响应

作用:

1、设置响应编码:resp.setContentType("text/html;charset=UTF-8");

2、可以响应网页并且向网页输出数据: resp.getWriter().print(数据)

3、重定向:resp.sendRedirect("SelectServlet");

 

常见报错信息:

 

通过报错信息可以看到,对应行得属性有问题

  1. 属性在实体类中找不到,或者属性得get方法有参了
  2. 属性在实体类中首字母大写了

 

属性不可读,检查该属性得get方法有没有参数,把参数去掉

posted @ 2021-07-12 15:10  CHANG_09  阅读(42)  评论(0)    收藏  举报