“人生如一杯茶,不会苦一辈子,但要苦一阵子。”
你好,我是梦阳辰!和我一起学习起来吧!

01.JavaEE概述

Java EE实质上是sun(oracle)公司为我们提供的强大的类库。

Java SE实质就是sun(oracle)公司提供的一套基础的类库。

Java EE是 J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用.随着WEB和EJB容器概念诞生,使得软件应用业开始担心SUN的伙伴们是否还在Java平台上不断推出翻新的标准框架,致使软件应用业的业务核心组件架构无所适从,从一直以来是否需要EJB的讨论声中说明了这种彷徨。

在2004年底中国软件技术大会Ioc微容器(也就是Jdon框架的实现原理)演讲中指出:我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本.此次J2EE改名为Java EE,实际也反映出业界这种共同心声。

Java EE的核心是EJB3.0, 其提供了更兼便捷的企业级的应用框架。
1.什么是JavaSE?
Java的标准版本
sun公司为java程序员提供的一套基础类库。这套基础类库包括基础语法、面向对象、异常、IO、集合、反射、线程
目前JavaSE由Oracle公司维护。

2.什么是API?包括什么?
应用程序接口
API包括:源码、字节码、帮助文档

3.JavaSE的src、字节码、帮助文档在哪里?
JAVA_HOME\src.zip
JRE_HOME\lib\rt.jar
帮助文档,官网。

4.什么是JavaEE?
Java企业版
SUN公司为Java程序员准备另一套庞大的类库,帮助程序员完成企业级项目开发。
JavaEE规范是一个比较大的规范,JavaEE包括13个子规范(每一个子规范下其实还有其他的子规范)

JavaEE5规范下的子规范:
Servlet2.5
JDBC

JavaEE6规范下的子规范。
Servlet3.0

Tomcat服务器,其中Tomcat6实现了Servlet2.5规范,Tomcat实现了Servlet3.0规范。

5.JavaEE的源码、字节码、帮助文档在哪里?

02.系统架构分析

系统架构分类
C/S
B/S
什么是C/S呢?
各种app。
优点:大部分数据都以集成到客户端软件中,只需要从服务器上传送少量数据即可。速度快。

升级麻烦。

什么是B/S呢?
客户端为浏览器。不需要安装特定的客户端。升级方便。
缺点:速度慢,体验差。
以后主要的研究方向。

BS架构访问过程

注意:Servlet接口由程序员实现,服务器来调用。

在这里插入图片描述
Servlet:是两个英语单词的合并,Serv表示服务器端,let表示小程序。
在这里插入图片描述

03.Servelt

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

知识引入:
1.Sun公司制定的JavaEE规范:Servlet规范
Servlet接口是Servlet规范中核心接口

接口注意:调用这是谁?实现者是谁?

public interface Servlet{//Servlet接口
void service();
}

2.JavaWeb程序员
JavaWeb编写服务器端小java程序的时候,不能随意编写,必须实现Servlet接口。

public class DeleteServlet implements Servlet{
	public void service(){
	System.out.println("连接数据库,成功...");
}
}

3.Tomcat服务器调用(自动调用)
WebServer Web服务器 ,Web Container
Web容器面向Servlet接口调用。

模拟Tomcat服务器
在这里插入图片描述
Tomcat服务器负责调用。2

作为Web程序员我们只要实现Servlet接口,并配置号.xml文件即可。

04.开发第一个带有Servlet的webapp(重点)

1.一个webapp只有一个web.xml文件。
web.xml文件主要配置请求路径和Servlet类名之间的绑定关系。

web.xml文件在Tomcat服务器启动阶段被解析。解析失败会导致webapp启动失败。web.xml文件中的标签不能随意编写。
在这里插入图片描述
在项目目录下必须有一个WEB-INF文件夹。并且在WEB-INF文件夹下必须有classes文件夹,lib文件夹和web.xml配置文件。

.class文件放在classes文件夹下。
实例:
编写Java程序,将编译生成的class文件放在classes目录下。
在这里插入图片描述
在这里插入图片描述
配置web.xml


注意对于xml配置文件的<url-pattern>中的路径不需要添加项目名。

但是对于Hello.html的文件的超链接需要在前面添加项目名,因为超链接可能
会转到其他项目中,也可能转到其他网站,所以需要在其前面添加项目名称。

在这里插入图片描述

05.在Servlet中编写JDBC连接数据库(重点)

java代码:(其它类似)

package Part1;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class MengYangChenWorkers implements Servlet {

	@Override
	public void destroy() {
		// TODO Auto-generated method stub

	}

	@Override
	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String getServletInfo() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void init(ServletConfig arg0) throws ServletException {
		// TODO Auto-generated method stub

	}

	@Override
	public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out=response.getWriter();
		out.print("<html>");
		out.print("<head>");
		out.print("<title>员工信息</title>");
		out.print("</head>");
		out.print("<body>");
		out.print("<h2 align=\'center\'>员工列表</h2>");
		out.print("<hr width=\'60%\'>");
		out.print("<table border=\'1\' align=\'center\' width=\'50%\'>");
		out.print("<tr align=\'center\'>");
		out.print("<th>编号</th>");
		out.print("<th>姓名</th>");
		out.print("<th>性别</th>");
		out.print("<th>部门</th>");
		out.print("<th>生日</th>");
		out.print("</tr>");
		//JDBC
		Connection conn=null;
		PreparedStatement ps =null;
		ResultSet rs= null;
		try {
			
			Class.forName("com.mysql.jdbc.Driver");
			conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/newdata","root","0910");
			String sql="select num,name,sex,classnum,birthday from t_student";
			ps=conn.prepareStatement(sql);
			rs=ps.executeQuery()
版权声明:本文为huangjiahuan1314520原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/huangjiahuan1314520/p/12950631.html