什么是JAVAEE?
JAVA作为目前任然在市面上是最活跃的编程语言,他的功能十分强大。
JAVA又分为JAVASE JAVAEE JAVAME,他们的关系如下图所示:
在我们学院的JAVA编程课上学习到的大部分都只是JAVASE,更为有趣的JAVAEE(在软件工程专业的大二专业课会学到)却没有被提及。
Java EE找中文名是Java 平台企业版(Java Platform Enterprise Edition),之前称为Java 2 Platform, Enterprise Edition (J2EE),2018年3月更名为 Jakarta EE(这个名称应该还没有得到群众认可)。狭义的 Java EE 是 Sun 公司为企业级应用推出的标准平台,用来开发B/S架构软件,可以说是一个框架,也可以说是一种规范。
广义的 Java EE 包含各种框架,其中最重要的就是 Spring 全家桶。Spring 诞生之初是为了改进 Java EE 开发的体验,后来逐渐成为了 Java Web 开发的实际标准。后面的讨论班里,会对 Spring 进行进一步的说明。
核心技术:
JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JTS、JTA、JavaMail和JAF。其中JDBC,Servlet,XML,和EJB(在于思想)最为重要。
常用框架:
SSH(Structs + Spring + Hibernate),SSM(Spring +SpringMVC + MyBatis)
Tomcat
务必弄清楚且能够回答以下问题
1、什么是Tomcat?
2、它的作用是?
3、它的实质是?
4、谈谈你对核心部件的理解。
Tomcat 服务器是一个免费的开源Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
tomcat容器
核心组件:Connector和Container
Connector:Tomcat 与外部世界的连接器,监听固定端口接收外部请求,传递给 Container,并 将 Container 处理的结果返回给外部;
Container:Servlet 容器,内部有多层容器组成,用于管理 Servlet 生命周期,调用 servlet 相关方法。Servlet将在下周讲到,此处你只需理解为servlet处理请求的部件即可。jsp是一种特殊的servlet。
其他组件:未列出的不需要掌握
Server:指的就是整个 Tomcat 服务器,包含多组服务,负责管理和启动各个 Service,同时监听 8005 端口发过来的 shutdown 命令,用于关闭整个容器 ;
Service:Tomcat 封装的、对外提供完整的、基于组件的 web 服务, 包含 Connectors、Container 两个核心组件,以及多个功能组件,各个Service 之间是独立的,但是共享同一JVM 的资源;
tomcat响应过程
本文里面的servlet全用JSP来理解,JSP是一类特殊的Servlet,在下周会唐学长会讲到http和servlet。
- 客户端(通常都是浏览器)访问Web服务器的某一个服务,发送HTTP请求。
- Web服务器接收到请求后,传递给Servlet容器。
- Servlet容器加载Servlet,产生Servlet实例后,向其传递表示请求和响应的对象。
- Servlet实例使用请求对象得到客户端的请求信息,然后进行相应的处理。
- Servlet实例将处理结果通过响应对象发送回客户端,容器负责确保响应正确送出,同时将控制返回给Web服务器。
JSP
务必弄清楚或能够回答以下问题
1、JSP的四个四个作用域和九大内置对象
2、JSP的生命周期
3、JSP的代码书写(JSP重点在实操,理论掌握我列出的就差不多了)
预备知识:scope
顾名思义就是有效的范围,即声明的bean在本应用中的作用范围/有效范围。
一般考虑page,session,application,request
分别对应与在页面有效,会话有效,应用有效和请求有效。
冷知识:
session和cookie的异同:去看这里,建议在http上完后去看
https://www.zhihu.com/question/19786827
1、JSP的生命周期
- 编译阶段:servlet 容器编译 servlet 源文 件,生成 servlet 类
- 初始化阶段:加载与 JSP 对应的 servlet 类, 创建其实例,并调用它的初始化方法
- 执行阶段:调用与 JSP 对应的 servlet 实例的 服务方法
- 销毁阶段:调用与 JSP 对应的 servlet 实例的 销毁方法,然后销毁 servlet 实例
2、内置对象
request,response,page,session,application,out,exception,config,pagecontext
- request内置对象是最常用的对象之一,它代表的是java.servlet.HttpServletRequest类的对象。即页面发过来的封装好的请求,其中包括了post方法传来的数据。
- response内置对象是指经过处理后返回的类的对象,可以用作重新定向导某一个页面或者直接向客户端返回数据或者html代码。常用方法有getwriter();和sendsendRedirect(String goalLoation);
- page内置对象即类似于Java里面的this,即指向的就是本页面。
- session内置对象即java.servlet.http.HttpSession的对象,即保存的是一次会话中的信息,即在页面转发过程中数据不会丢失。
- application内置对象是javax.servlet.ServletContext的对象,它是指整个应用在使用过程中(即自从上线后到结束为止)均有效,亦即可以用来做成聊天系统。
- out内置对象是我们经常使用的,它可以作为输出直接在页面中打印出信息。
- pageContext对象是一个特殊的对象。它相当于页面中所有其他对象功能的最大集成者,即使用它可以访问到本页面中所有其他对象,例如前面已经描述的request、response以及application对象等。
- exception和config暂不要求。
3、JavaBean
- JavaBean其实很简单,useBean可以理解为se的new行为,在jsp中新建对象可能需要导入类,然后再new,比如(部分代码)
<%--这里需要导入Person类--%>
<%@ page import="domain.Person" %>
<%
//new出对象
Person person = new Person();
person.setName("zhongfucheng");
System.out.println(person.getName());
%>
- 但是一旦有了JavaBean就可以直接usebean即可。
<jsp:useBean id="person" class="domain.Person" scope="page"/>
<%
person.setName("zhongfucheng");
System.out.println(person.getName());
%>
除此之外还有setProperty,getProperty,具体再讨论班演示。
注意要当作JavaBean就要满足以下三个条件:
- 有无参的构造函数
- 成员属性私有化
- 封装的属性如果需要被外所操作,必须编写public类型的setter、getter方法
如何搭建第一个JSP项目?
第四次讨论班作业
卓音成员硬性要求:请每周写出至少一篇博客(自学markdown),记录所学内容。对于以后想要加入卓音后端且参加质量考核的同学最好也能做到。
注意本次评分一共考虑两周,共100分。两周博客分别占比10%,项目占比80%。接受尚不在工作室的同学的作业。
1、请用图文来描述你对Tomcat响应过程的理解。(评分占比:10%)
2、完成一个小项目。(评分占比80%)
要求:
1、做出一个四则运算(加减乘除)的小系统,具体实现(比如是否需要UI,或者只是输入公式)靠自己。
2、做出登录需求(要求账号的用户名:Join,密码:666)。
3、注意考虑不符合运算规则的极端情况。
4、如果学过且能够在JAVA中使用堆栈,推荐考虑复杂四则运算。(不做要求)
5、其他扩展。注意对自己要求要严格。
3、请用博客总结你的一周学习内容(必须使用博客,自学markdown语法)
(如果有参考博客,请将博客链接附在文尾)
The Most Important:杜绝抄袭!我们会以所有人的情况来综合考虑,都做得一般会进一步进行培训,所以不必抄袭。
时间:博客:限1 week;项目:限制2week
项目作业提交内容:压缩文件。
提交人:博客:董明龙,项目:唐伟嘉或董明龙
部分资料来源于互联网