1、什么是Web应用程序
Web应用程序是一种通过Web访问的应用程序。Web应用程序一个最大优点就是用户很容易访问。用户只需要有浏览器即可,不需要再安装其他软件。Web开发是目前软件开发领域的三大方向之一。(桌面应用程序,Web应用程序,嵌入式应用程序)
2、静态页面与动态页面
静态网页
表现形式:网页内容固定,不会更新。
所需技术:HTML,CSS
动态网页
表现形式:网页中的内容通过程序动态的显示,自动更新,能与用户进行交互(比如登录输入正确用户名和密码时,系统提示登录成功)
所需技术:HTML,CSS,数据库技术,至少一门高级语言(Java,C#,Php),Javascript,XML等。主流的动态网页脚本技术(Jsp/Asp.net/Php)
3、修改Tomcat默认端口号
tomcat安装目录–>conf–>server.xml
<Connector
port="8888"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="utf-8"
/>
4、Jsp简介
JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,他实现了在Java当中使用HTML标签。Jsp是一种动态网页技术标准也是JAVAEE的标准。JSP与Servlet一样,是在服务端执行的。
5、jsp运行原理
第一次访问jsp或修改后访问jsp
A) 将jsp翻译成java文件
B) 将java文件编译成class文件
C) 通过反射创建对象
D) 执行init方法
E) 执行Service方法
正常访问jsp(非第一次或没有修改)
E ) 只执行Service方法
6、jsp语法
JSP模版元素
Html标签
JSP表达式
<%=表达式 %> <==> out.print(表达式); //<%=表达式; %> 加分号错误
注:内容会输出到浏览器
JSP脚本片断
<% java代码 %> 不能有输出语句(服务器没有控制台)
翻译成java代码后,在_JspService()中
脚本片段中不能写方法
JSP声明
<%! %>
翻译成java代码后,在_JspService()外
声明的变量是成员变量,声明的方法是成员方法。
JSP注释
<%-- --%>不能使用html注释<!-- -->
JSP指令
<%@ 指令 属性名="值" %>
#include指令 静态包含
作用:include指令用于引入其它JSP页面
语法:<%@ include file="relativeURL"%2
#page指令
作用:page指令用于定义JSP页面的各种属性
language="java"//告诉服务器以哪种语言翻译文件
import="{package.class | package.*}, ..."
//导入程序包 多个包用“,”隔开。
session="true | false" //是否支持内置对象session
buffer="none | 8kb | sizekb"//缓存大小,默认8KB
autoFlush="true | false"
isThreadSafe="true | false"
info="text"
errorPage="relative_url"//指定一个错误页面
isErrorPage="true | false"
//指定当前页面为错误页面 能使用exception
contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1"
pageEncoding="characterSet | ISO-8859-1"
isELIgnored="true | false" //是否支持EL表达式
7、JSP内置对象
名称 数据类型
request HttpServletRequest
response HttpServletResponse
session HttpSession
application ServletContext
config ServletConfig
exception(特殊情况下使用 page指令中有 isErrorPage="true")
page this(本JSP页面)
out JspWriter(带缓冲的PrintWriter)
pageContext(使普通Java类可访问WEB资源,自定义标签常用)
#out内置对象的特点
将内容存在缓存数组中
写出到文件的条件:
1). 调用刷新方法时
2). 关闭流对象时
3). 内存满了
4). 程序执行完(_JspService())
#pageContext
作用1. 用来获取其他内置对象
作用2. 域对象:作用域为当前jsp页面
设置方法:
//默认域对象方法(pageContext)
pageContext.setAttribute("message", "pageContext message");
//指定域对象方法
pageContext.setAttribute("message", "request message", pageContext.REQUEST_SCOPE);
获取方法:
//默认域对象方法(pageContext)
pageContext.getAttribute("message")
//指定域对象方法
pageContext.getAttribute("message",pageContext.REQUEST_SCOPE)
//搜索方法
pageContext.findAttribute("message")
优先级
pageContext>request>session>application
四大域对象:
pageContext:作用于当前jsp页面
Request:相同的请求中有效(转发中使用)
Session:同一会话中有效(保存用户私有信息)
Application:同一web应用中有效(全局)
8、EL表达式
语法:
${ 域对象中保存的key }
#获取数据
1). 获取非对象
pageContext.setAttribute("name", "tom");
${name }
${name }<==>pageContext.findAttribute("name")
2). 获取对象
Person p = new Person("tom",21);
pageContext.setAttribute("person", p);
<!-- person.name<==> p.getName() -->
<!-- 获取域对象中的对象的属性值 -->
<%-- name=${person.name1 },age=${person.age } --%>
9、后续学习
还需要将EL表达式中的获取集合中对象和 获取map集合中的对象学习完成,然后完成教学视频中的小demo。