一、配置环境
- 编译工具我用的是eclipse-jee-neon-2-win32-x86_64
- 服务器采用的tomcat服务器(版本用的是9.0)
- 服务器我用的是绿色版的,直接解压就可以用了,但是我们的windows是没有这个服务器的(也就是windows还没有把我们的解压的服务器当成本地服务器),所以我们需要将服务器安装到windows下。
1)首先进入到刚才解压的tomcat的bin路径下
D:\apache-tomcat-9.0.22-windows-x64\apache-tomcat-9.0.22\bin
2)在箭头所指处输入cmd,然后进入黑窗口
3)然后执行service.bat install这个命令就好了。
- 现在Windows下已经有了服务器,而我们还需要在编译工具中配置tomcat
windows—preference—server----runtime envirement—Add----选择tomcat对应的版本
**二、创建第一个动态页面项目 dynamic web project **
然后项目右击,properties—>java bulid path—>lib---->server runtime
接着在WebContext下新建一个jsp file
打开demo01.jsp
在body里输入相应语法代码,然后右击,最后点击run on server运行它。
此外还有一个注意点:
第一次新建项目时我们还需要在eclipse下配置项目部署的路径,相应配置修改后,后面就不用在动了。
1.window–showview–other–server
2.移除tomcat下的发布的项目 tomcat服务不能停止,双击服务
3.修改配置
4.ctrl+s 保存
三、tomcat目录简述 - bin:存放启动和关闭Tomcat的命令的路径。
- conf:存放Tomcat的配置,所有的Tomcat的配置都存放在该路径下设置。
- lib:存放Tomcat服务器的核心类库(JRE文件),如果需要扩展Tomcat功能,也可以将第三方类库赋值到该路径下。
- logs:一个空路径,该路径用于保存Tomcat每次运行后产生的日志。
- temp:保存Web应用运行过程中生成的临时文件。
- webapps:该路径用于自动部署Web应用,将Web应用复制在该路径下,Tomcat会将该应用自动部署在容器中。
- work:保存Web应用运行过程中,编译生成的class文件。该文件夹可以删除,但每次启动Tomcat服务器时,系统将再次建立该路径。
四、知识总结
1.jsp执行过程
- 第一次请求
Web容器(tomcat服务器)处理JSP文件请求需要经过3个阶段:
翻译阶段:JSP文件会被Web容器中的JSP引擎转换成Java源码(存放在Tomcat目录下的work文件夹中)
编译阶段:Java源码会被编译成可执行的字节码(存放在Tomcat目录下的work文件夹中)
执行阶段:容器接受了客户端的请求后,执行编译成字节码的JSP文件;处理完请求后,容器把生成的 HTML或XHTML页面(一定是HTML或XHTML页面)反馈给客户端进行显示
-第二次请求
第一次请求之后,Web容器可以重用已经编译好的字节码文件,如果对JSP文件进行了修改,Web容器会重新对JSP文件进行翻译和编译(如第一次请求)
2. jsp概述
JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
它是在传统的网页HTML文件(.htm,.html)中插入Java程序段和JSP标记,从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
可以理解:jsp=java+html+jsp特有的标记
1)jsp页面构成
2)jsp脚本元素
- JSP 脚本元素是用来嵌入Java代码的,主要用来实现页面的请求、转发或动态信息的展现。
- 1>表达式 向网页中输出内容 <%=%>
- 2>脚本片段【小脚本】:<%%>它会将内容生成到jspService方法中 可以使用jspService方法中所声明的变量【九大内置对象】
- 3>声明 <%! %>可以声明方法和变量,声明的变量是全局变量
3)注释 - 1>jsp注释 tomcat服务器会将注释中的内容直接忽略,不解析<%-- --%>
- 2>html注释 tomcat会解析注释中的内容
4)常见报错数字
404:页面没找到。访问的资源不存在
500:异常
405:无法访问方法
5)page指令
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" errorPage="demo.jsp" isELIgnored="false" session="true"%>
- errorPage:当jsp页面错误的时候,自动找的页面
- isErrorPage:当前的jsp是否是错误的页面,默认为false
可以设置为true,当isErrorPage为true的时候,才可以使用exception内置对象 - isELIgnored=“true” : el表达式是不可以使用的,页面是可以支持el表达式。默认为false
- session="false"的时候,该页面session不可以使用的 。默认为true
6.)静态包含与动态包含 - 静态包含 <%@ include file=“url”%> url只能是字符串的常量值【被包含页面的相对当前页面的路径】
静态包含不能给被包含的页面传递参数
静态包含不会检查被包含的页面是否有变化
静态包含,是将内容包含进来后,然后再交给tomcat解析,最后只有一个java文件 - 动态包含 <jsp:include page=“url”/>
动态包含被包含的页面会先交给tomcat解析,解析的结果放入包含它的页面
动态包含会生成多个java源文件
page的属性值可以是字符串常量值
<jsp:include page="content.jsp">
<jsp:param name="xm" value="zhangsan"/>
</jsp:include>
<%string url = “context.jsp”%>
也可以声明为变量<jsp:include page="<%=url %>"/>
动态包含可以向被包含的页面中传递参数,被包含页面中就可以通过<% request.getParamter(“xm”); %>
- 二者的区别:
动态包含<jsp:include page=“file” flush=“true” />它总是会检查所含文件中的变化。
动态包含可以给被包含的页面传递参数。
动态包含的地址可以是变量。
静态包含<%@include file=“file”%>不会检查所含文件的变化,适用于包含静态页面
静态包含不能给被包含的页面传递参数。
静态包含的地址是常量。
7)9大内置对象 - out
- exception
- application
- session
- request
- response
- pageContext
- config
- page
内置对象详解见下一篇文章添加链接描述