1、JavaWeb简介
Web应用程序
Web应用程序是一种通过Web访问的应用程序,Web应用程序的一个最大好处是用户很容易访问应用程序,用户只需要浏览器和网络就行。
软件开发领域
静态网页与动态网页
- 动态网页的内容一般是从数据库里面读取出来的
- 动态网页上可以显示动态元素比如:动画,视频等,而静态网页可以显示动态元素,比如:FLASH、滚动字幕等
搭建开发环境
其中在点击startup.bat启动Tomcat的时候,出现了闪退的现象,然后无法访问http://localhost:8080/,然后经过百度和询问学姐,最后解决啦!!
- 先得检查java环境的配置以及jdk的安装是否正确
- 然后通过在startup.bat的文件末尾加上pause,然后重新点击startup.bat,此时不会出现闪退,然后把pause删除,再次点击,但是还是出现了闪退。
- 最后是通过在startup.bat的文件中加上SET JAVA_HOME=H:\Java\jdk1.8.0_231(java jdk目录)
SET TOMCAT_HOME=I:\project\apache-tomcat-8.5.50(解压后的tomcat文件目录)后重新启动就完成啦!
Tomcat服务器的目录结构
手工编写第一个Web程序
经过一系列的操作后
2、JSP
简介
### 页面元素构成
基础语法
指令
- page指令语法
- 在这个页面中不能输入中文
- - 所以推荐写成<%@ page contentType=“text/html; charset=UTF-8” language=“java” %>
注释
脚本
声明
表达式
三、生命周期
概述
四、JSP跳转
JSP的跳转也分服务端跳转和客户端跳转。
客户端跳转
·response.sendRedirect(“hello.jsp”);可以通过1firefox的调试工具可以观察到访问jump.jsp返回302(临时客户端跳转),跳转到了hello.jsp
<%
response.sendRedirect("hello.jsp");
%>
服务端跳转
request.getRequestDispatcher(“hello.jsp”).forward(request, response);
或者使用动作,简化代码`
<jsp:forward page="hello.jsp"/>
五、JSP作用域
JSP有4个作用域,分别是
- pageContext 当前页面
- requestContext 一次请求
- sessionContext 当前会话
- applicationContext 全局,所有用户共享
pageContext
·准备setContext.jsp和getContext.jsp,分别表示向作用域设置数据,和从作用域获取数据。
·pageContext表示当前页面作用域
·通过pageContext.setAttribute(key,value)的数据,只能在当前页面访问,在其他页面就不能访问了。
requestContext
requestContext 表示一次请求。随着本次请求结束,其中的数据也就被回收。
常用写法是
request.setAttribute("name","gareen");
request.getAttribute("name")
requestContext与服务端跳转
requestContext指的是一次请求
如果发生了服务端跳转,从setContext.jsp跳转到getContext.jsp,这其实,还是一次请求。 所以在getContext.jsp中,可以取到在requestContext中设置的值
这也是一种页面间传递数据的方式
requestContext与客户端跳转
客户端跳转,浏览器会发生一次新的访问,新的访问会产生一个新的request对象。
所以页面间客户端跳转的情况下,是无法通过request传递数据的。
sessionContext
sessionContext 指的是会话,从一个用户打开网站的那一刻起,无论访问了多少网页,链接都属于同一个会话,直到浏览器关闭。
所以页面间传递数据,也是可以通过session传递的。
但是,不同用户对应的session是不一样的,所以session无法在不同的用户之间共享数据。
applicationContext
applicationContext 指的是全局,所有用户共享同一个数据
在JSP中使用application对象, application对象是ServletContext接口的实例
也可以通过 request.getServletContext()来获取。
所以 application == request.getServletContext() 会返回true
application映射的就是web应用本身。
与requestContext类似的,也可以用如下方式来做
与requestContext类似的,也可以用如下方式来做
pageContext.setAttribute("name","gareen",pageContext.SESSION_SCOPE);
pageContext.getAttribute("name",pageContext.SESSION_SCOPE)
pageContext.setAttribute("name","gareen",pageContext.APPLICATION_SCOPE);
pageContext.getAttribute("name",pageContext.APPLICATION_SCOPE)
六、内置对象
·JSP的隐式对象指的是不需要显示定义,直接就可以使用的对象,比如request,response。
·JSP一共有9个隐式对象,分别是
- request
- response
- out
- pageContext
- session
- application
- page
- config
- exception
request,response,out
其中request 代表请求 ,response 代表响应 ,out 代表 输出
pageContext, session,application
- pageContext 代表当前页面作用域
- session 代表当会话作用域
- application 代表当全局作用域
page
-page 对象即表示当前对象
-JSP 会被编译为一个Servlet类 ,运行的时候是一个Servlet实例。 page即代表this
config
config可以获取一些在web.xml中初始化的参数。
在JSP中使用config比较复杂,需要如下几个步骤
- 在web.xml中进行配置
- 创建一个testconfig.jsp
通过config.getInitParameter(“database-ip”) 获取参数 - 访问路径,获取web.xml中配置的参数
exception
exception 对象只有当前页面的<%@page 指令设置为isErrorPage="true"的时候才可以使用。
同时,在其他页面也需要设置 <%@page 指令 errorPage=“” 来指定一个专门处理异常的页面。
-
准备一个try.jsp
设置errorPage=“catch.jsp”,表示有异常产生的话,就交给catch.jsp处理
故意在里面造成数组越界异常 -
准备一个catch.jsp
设置 isErrorPage=“true”,表示当前页面可以使用exception对象
总结
、