Java Web -> JSP

1. 简介

  • JSP -> JavaServerPages,是一种动态网页技术标准。
  • 将HTML网页和Java代码融合在一起,是服务器页面。

2. 页面组成部分

2.1 注释
  • HTML注释
    • 客户端可见
    • 语法:<!-- -->
  • JSP注释
    • 客户端不可见
    • 语法:<%-- --%>
  • JSP脚本注释
    • 客户端不可见
    • 单行注释://
    • 多行注释:/**/
2.2 声明
  • <%! %>
  • 用于放置JSP中定义的方法和变量
2.3 脚本
  • <%%>
  • 用于放置JSP中的Java代码
2.4 指令
  • page指令
    • 位于JSP页面顶端
    • 同一个JSP页面可有多个page指令
  • include指令
    • 将外部文件嵌入JSP页面
  • taglib指令
    • 使用标签库定义新的标签
2.5 表达式
  • <%= %>
  • 注意:表达式不以 “ ; ” 结尾
2.6 静态内容

3. 运行机制

  1. 编写好一个JSP页面
  2. 判断页面是否是第一次加载 -> 3不是 -> 5
  3. JSP引擎在运行过程中对JSP页面进行分析,将JSP转化为Servlet。
  4. 将Servlet实时编译为.class文件,执行jspInit()
  5. 解析执行字节码文件,jspService()
    • 若JSP页面没有改变,则直接使用已生成的;若改变,重新编译。
    • JSP引擎会为每个请求创建一个线程
    • jspService()用来处理客户端的请求

4. 内置对象

4.1 out
  • 是JspWriter类的实例
  • 主要用于客户端的输出
  • 缓冲区:内存中用于存放临时数据的一块区域
4.2 request
  • 是HttpServletRequest类的实例
  • 用于封装客户端的请求信息,通过对象了解请求,做出响应
  • 作用域:当前请求
  • request的getParameters()和getParametersValues()
    • getParameters()返回值
    • getParametersValues()返回值的地址
4.3 response
  • 是HttpServletResponse类的实例
  • 包含响应客户请求的所有信息
  • 作用域:当前页面
  • response.getWriter()
    • 获得一个可以向客户端输出的对象
    • 该对象总是优先于out对象输出内容
      • out是内置对象,在Servlet输出完后输出
      • 该对象响应后就输出
4.4 session
  • 是HttpSession类的实例
  • session
    • 客户端与服务端的会话
    • 实际上是一个时间概念(浏览某个网站所用的时间)
    • 服务器的内存中存放着不同用户的session
  • session对象
    • 生命周期:从打开浏览器连接上服务器到关闭浏览器离开服务器
    • 当第一个JSP页面加载时session自动创建,进行会话管理
    • 当用户在多个页面上跳转时,服务器通过该对象判断是否是同一用户
    • :新建会话后,旧的SessionId仍存在,只是没有客户端再去使用它
  • session的销毁
    • session.invalidate()

    • session超时

      • session.setMaxInactiveInterval(时间) ,单位:s
      • 在web.xml中配置
      • <session-config> 
        <session-timeout>  
        		10
        </session-timeout> 
        </session-config>
        
    • 服务器重新启动

4.5 application
  • ServletContext类的实例
  • 用于存放全局变量
  • 生命周期:服务器的启动到关闭
  • application属性的改变会影响到其他用户对该属性的访问
4.6 page
  • 是java.lang.Object类的实例
  • 指向当前JSP页面,类似this的用法
4.7 pageContext
  • 可访问JSP页面中的所有对象
  • 可获取当前JSP页面中session、application的属性值
4.8 exception
  • 是java.lang.Throwable类的实例
  • 页面发生异常时,生成该对象
  • 若要使用该对象,需将isErrorPage设置为true,否则不能编译
4.9 config
转发与重定向
  • 转发
    • 服务器行为
    • 一次请求,转发
    • 记录当前请求对象
    • 地址栏中的url地址不变
    • request.getRequestDispatcher("页面").forward(request,response);
  • 重定向
    • 客户端行为
    • 两次请求,第一次请求直接转发
    • 不记录第一次清求对象
    • 地址栏中的url地址改变
    • response.sendRedirect("页面")

5. 指令与动作元素

5.1 include
  • 指令语法<%@ include file="URL"%>
  • 动作语法<jsp:include page="URL" flush="true|false"/>,flush表示是否要从缓冲区读取页面
5.2 forward
  • 动作语法<jsp:forward page="URL"/>
  • 相当于转发
5.3 param
  • 动作语法<jsp:param name="参数名" value="参数值"/>
  • 向动态文件中传递参数
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我用Spring5的aop应用时报这个错误Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [D:\ecliple\web5\WEB-INF\applicationContext.xml]; nested exception is java.nio.file.NoSuchFileException: WEB-INF\applicationContext.xml,他说我的applicationContext.xml文件不存在,可是我明明有这个文件,另外我的web.xml需要更改吗<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <context-param> <param-name>contextConfigLocation </param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <display-name>Struts2</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> <!--2.5版本的写法 --> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter> <filter-name>OpenSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>OpenSessionInViewFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/* </url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>
05-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值