JavaEE是企业级开发
是综合性非常强的阶段
?包含的知识点:JavaSE,MySQL,JDBC,WEB(HTML,CSS,JS,前端框架),Servlet,JSP,XML,AJAX等技术
JavaEE项目需要运行在服务器之上
WEB服务器就是WEB项目的容器,WEB项目的运行环境,将项目部署到服务器下,可以通过服务器路径给用户直接浏览访问
静态资源
?网页中保持不变的,没有后端请求的(HTML/CSS/JS/图片等)
动态资源(WEB服务器上运行动态资源)
?会随着不同的请求,发生不同的变化
常见开发中的服务器产品
?Tomcat(apache开源服务器,与sun公司合作,主流的web服务器之前,springboot中内置的服务器)
?Jetty(效率比tomcat要高,安装相比tomcat麻烦一些)
?WebLogic(Oracle 收费)
?WebSphere(IBM服务器)
?Nginx(静态资源服务器)
Apache的开源项目,tomcat是开源免费的,因为和sun公司进行合作,支持最新的JSP和Servlet的语法
企业中主流的使用Tomcat8.5和Tomcat9版本(Tomcat10也有使用)
各版本之间最大的差别是对Servlet(运行在服务器下的Java类)的规范支持
Tomcat有安装版和解压版的区别
(目录结构是一样的,以及后面的搭建方式是相同的,本次课程给大家提供的是Tomcat8.5解压版)
开箱即用
注意:开箱时目录的层级不要太多,开箱路径中不要有中文
例如:D:\apache-tomcat-8.5.20\apache-tomcat-8.5.20
bin 存放服务器启动和关闭相关的二进制文件
conf tomcat的配置相关文件(server.xml可以配置当前服务器的端口等信息,web.xml当前服务器的全局文件)
lib tomcat是java开发的,lib中存放的是支持的jar环境
logs 存放日志文件,服务器相关的各种信息
temp 临时文件夹
webapps 管理web项目的,默认情况下web项目要部署到该路劲下(eslipse需要手动配置,idea可以自动配置)
work 存web项目的动态页面(JSP:Java Server Page)转换的java文件的
startup.bat 启动服务器 关闭则可以直接关闭服务器
不能同一个端口启动多次(一个端口只能启动一次)
tomcat若无法启动,则需要查看JDK的环境变量是否正常配置,tomcat是由java开发的
必须有正确的JAVA_HOME配置
Servlet是JavaEE规范的一部分,Servlet需要JavaEE的环境支持
环境支持:JDK环境,服务器环境
Servlet是一个运行在服务器下的类,由服务器进行创建对象
Servlet的本质是Java类
// 外部(浏览器)访问我们Servlet的路径
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("你访问到我了呦");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("你访问到我了呦");
}
}
1.在服务器下启动当前的项目
Run On Server --> finsh 服务器和项目一起被启动了,项目可以被访问了
2.访问路径
http://localhost:8080/20240112-01-HelloServlet/HelloServlet
当前地址表示着访问服务器下的Servlet类
在Servlet3.0后有两种配置方案:
1.基于注解的方式(更加便捷,更加方便)
@WebServlet(路径)
路径是必须由/开始
注解是将Java类配置到服务器下,可以被直接访问(浏览器访问服务器,然后读取到了一个Java类)
2.基于配置文件的方式
web.xml文件,该文件每个项目都只有一个
在WebContent/WEB-INF/web.xml文件中进行配置
xml文件是和html同公司(www3cSchool)发布的产品,特点都是由标签组成(标记,节点)
xml的特点是区分大小写,所有标签必须是闭合的(双标签<xx></xx> 单标签<xx/>)
xml中只有一个根节点
xml最初被创建的作用是数据传输的,但是xml特别的笨重
xml现在多用于配置文件
<!-- 使用xml的形式进行配置servlet -->
<!-- 注册Servlet -->
<servlet>
<!-- 名字任意 -->
<servlet-name>ok</servlet-name>
<!-- 需要被注册的servlet -->
<servlet-class>com.qf.servlet.OkServlet</servlet-class>
</servlet>
<!-- 映射,外部的访问方式 -->
<servlet-mapping>
<!-- 名字和上面一样 -->
<servlet-name>ok</servlet-name>
<!-- 外部的访问路径 -->
<url-pattern>/ok</url-pattern>
</servlet-mapping>
url-pattern不能重复
url-pattern必须以/开头
接口版本
?Servlet
模板化抽象类版本
?GenericServlet
Http协议抽象类版本(自动生成的版本)
?HttpSerlet
Servlet接口中包含了Servlet生命周期相关方法(4个)(来到没的过程)
1.构造方法 只调用一次,服务器创建的同时为Servlet创建对象
2.初始化方法 只调用一次,用于对当前的Servlet进行初始化信息
3.服务方法 可以调用多次,每次的浏览器的访问都会调用一次(请求的过程)
4.销毁方法 只调用一次,服务器正常终止时调用,或者源码改变时调用
@WebServlet("/my")
public class MyServlet implements Servlet{
public MyServlet() {
System.out.println("构造方法");
}
@Override
public void destroy() {
System.out.println("销毁方法");
}
@Override
public ServletConfig getServletConfig() {
System.out.println("servlet配置");
return null;
}
@Override
public String getServletInfo() {
System.out.println("servlet信息");
return null;
}
@Override
public void init(ServletConfig arg0) throws ServletException {
System.out.println("初始化方法");
}
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("服务方法");
}
}