1..JSP 默认地址WebContent(WebRoot,WebApp) 为根目录的文件所在路径 以当前页面为例
该页面位于WebContent/pages/index.jsp WebContent为根目录 则可以省略
/pages/index.jsp
jsp在第一次访问的时候会慢一点,会被编译成servlet,之后就会很快速
servlet 在第一次访问的会慢,servlet对象只在第一次访问的时候创建一次
ps:jsp页面 现在的项目基本上已经禁止通过url去直接访问jsp页面了,现在无论如何,访问一个网址也必须经过servlet
--在jsp页面中添加java代码的方式为 <% %> 在jsp页面中 有内置对象 out
使用内置对象c.print() 可以将java数据输出到页面
<%= %> 输入JSP表达式
2.作用域 四种 作用域他们都有共同的方法
setAttribute 输入
getAttribute 获取
--pageContext --碟子-- 的作用域就是当前页面 只能当前页面放置 当前页面拿;
--request --碗--在使用重定向的时候 会有两次请求, 第二次请求的request没有放
--盆--所以不能拿到(只要不起新请求一直存在)
--session --缸-- 当前页面放 当前会话拿, 不关闭浏览器保持会话连接
--application -----
只要服务器不重启就会一直存在(注意 该作用域 -所有客户端共享)
3.JSP(动态网页的java+html)使用
优点:页面表现简单 缺点:逻辑处理麻烦
一般使用JSP(做页面)+servlet(写逻辑)+javabean(封装数据)
-JSP语法
---编译器指令 include,page,taglib
--page指令
<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="jaba.util.*">
--include指令
<%@include file="相对位置"%>
常用语法:
<jsp:include page="MyJsp.jsp"></jsp:include>
<%String a="Myjsp2.jsp";%>
<jsp:include page="<%=a%>"></jsp:include>
<jsp:include page="Mysql.jsp">
<jsp:param name="a" value="AAA"/>
<jsp:param, name="b" value="BBB"/>
<jsp:include>
静态导入
<%@include file="logo.jsp"%>
是在servlet引擎转义时,就把此文件内容包含进去(两个文件的源代码整
合到一起,全部放到jspServlet方法中) 所以只生成了一个servlet,所以两
页面不能有同名的变量,运行效率稍微高一点,耦合性较高,不够灵活
动态导入
<jsp:include page="logo.jsp"></jsp:include>
实在servlet转义之后,请求的此页面,所以生成了两个servlet,所以可有
相同的变量,生成两个servlet,相当于两个类之间的调用,耦合低灵活
脚本语法
--注释:<!-- -- > <%-- ...--%>
--声明<%!...%>
--表达式<%=...%>
--java脚本段<%...%>
动作语法
<jsp.forward>,<jsp,include>,<jsp,plugin><jsp.getProperty><jsp.setProperty><jsp.useBean>
4.jsp隐式对象()
--request 对象表示的来自客户端的请求.例如在form表单中填写的信息,是最常用的对象关于他的方法使用较多的是 getparameter/gerParameterNames/getParameterValue 通过调用者几个方法来获取请求对象中包含的参数的值
--response 对象代表的是对客户端的响应,也就是可以通过response对象来组织发送到客户端的数据,但是由于组织方式比较底层,一般不用,需要向客户端发送文字时直接使用 out 对象即可(out加了缓冲 效率更高)
--out 对象代表了服务器端向客户端发送数据的对象, 与response 对象不同 out对象发送的内容是浏览器需要显示的内容,是文本一级的,可以通过 out 对象直接向客户端写一个由程序动态生成的HTML文件,常用的方法除了 print 和 println之外 还有 clear()/clearBuffer()/flush()/
getBufferSize 和getRemaining 这因为out 对象内部包含了一个缓冲区,所以需要一些对缓冲区进行操作的方法 常用方法有 setAttribute()
--session对象 代表服务器与客户端所建立的会话,当需要在不同的JSP页面保留客户信息的情况下使用,比如在线购物或者客户轨迹跟踪等
--application 对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有getMimeType和getRealPath等 一个项目中一般只有一个application对象
--pageContext 页面上下文对象 封装了当前jsp页面的运行的信息,它提供了返回jsp页面的其他隐式对象的方法
pageContext. + .....
getRequest()--getResponse()--getPage()--getServletContext()--getApplication()--getOut()--getSession()--getException()--getServletConfig()---findAttribute()
forward通过此方法可以重定向
include通过此方法可以包含页面
--config 对象提供了一些配置信息,常用的方法有getInitPara 和getInitParameterNames 以获得Servlet初始化的参数
--page 对象代表了正在运行的由jsp文件产生的类对象 一般不建议使用
--exception 对象则代表了jsp文件运行时所产生的例外对象,此对象不能再一般jsp文件中直接使用, 只能在使用了<%@ page isErrorPage="true"%> 的jsp文件中使用