Java-servelt入门
一、C/S、B/S与RIA
(一)C/S
- Client/Server:客户端/服务器的简称,又称为胖客户端
- 需要在电脑上安装特定的软件,例如:QQ
(二)B/S
- Browser/Server:浏览器/服务器的简称,又称为瘦客户端
- 不需要在电脑上安装特定的软件,只需在电脑上安装一个浏览器即可
- 例如:在浏览器访问一个百度网页
(三)C/S和B/S区别
- C/S需要安装客户端软件,但是操作往往更为便捷,用户体验好,安全性好
- B/S不需要安装客户端软件,但是用户体验往往不如C/S好,安全性也较C/S要低
(四)RIA
1.定义
- Rich Internet Applications:富客户端网络应用
2.目标
- 基于B/S架构
- 在浏览器实现与胖客户端(C/S)类似的用户体验,比如:局部刷新,拖拽功能
二、Web站点、Web应用、HTTP服务器、Web应用服务器
(一)Web站点
- Web Site,也称为Web 网站
- 例如:某公司用来宣传的网站就是Web站点,用户浏览公司的信息,该站点不提供服务,属于静态站点
(二)Web应用
- Web Application,就是通过浏览器访问的应用程序,用户提供相关的服务,属于动态网站
- 例如:京东,淘宝,天猫
(三)HTTP服务器
1.定义
- Web服务器,提供网上信息浏览服务
2.例子:
- apache nginx IIS
3.特点
- 使用浏览器访问web站点或者web应用,必须通过HTTP服务器
(四)Web应用服务器
1.定义
- 能够运行服务器上的应用程序,并将结果返回给客户端浏览器的软件
2.例子
- Tomcat就是Web应用服务器
3.特点
- 兼具HTTP服务器的部分功能
三、开发Web应用的核心技术
(一)CGI
- Common Gateway Interface :通用网关接口,web应用服务器提供信息服务的标准接口,目前使用较少
(二).net
- 微软公司的企业应用框架,如:Asp.net , Ado.net
- 中小型企业使用,早期不能跨平台,现在可以跨平台(.net core)
(三)php
- php是一个相对易学的web开发技术,在互联网小型应用中使用广泛
(四)JavaEE
- 是Oracle公司的企业应用框架,在大型的企业应用广泛.例如:Servlet,JSP是Web开发组件
四、Tomcat介绍及安装
(一)什么是Tomcat
- Tomcat是Web应用服务器,又称为Servlet Container(Servlet 容器)
(二)Tomcat的特点
- 开源
- 免费
- 中小型应用和并发访问用户不是很多的情况下广泛使用
- 是开发调试Servlet/Jsp程序的首选
(三)Tomcat的官网
使用9.0版本
(四)Tomcat的安装
1.官网下载压缩包到本地的硬盘
2.解压缩
下载的是一个压缩包,我们将其解压到硬盘上的某个位置即可,解压路径不要包含中文或者空格
(五)Tomcat的目录结构
1.bin
- Tomcat的启动,停止的批处理脚本和shell脚本
2.conf
- Tomcat的相关配置文件
3.lib
- Tomcat服务器的依赖库目录,包括Tomcat服务器运行环境的依赖的jar包
4.logs
- Tomcat默认的日志存放目录
5.temp
- Tomcat 运行过程中产生的临时文件
6.webapps
- Tomcat默认的web应用部署目录
7.work
- jsp代码生成和编译后产生的class目录
(六)保证JDK能正常运行
1.JDK的默认安装路径
2.设置JDK环境变量
3.设置Path
4.测试JDK
- java
- javac
- java -version
(七)启动Tomcat
- 进入bin目录
- 双击bat启动Tomca
解决Tomcat控制台的乱码
- 进入conf文件夹
- 打开logging.properties文件
- 修改java.util.logging.ConsoleHandler.encoding = UTF-8
- 打开idea,点击Help/帮助
(八)在浏览器访问Tomcat
在浏览器的地址栏输入:http://localhost:8080回车即可访问Tomcat
五、常见其他Servlet容器简介
JBoss
Resin
GlassFish 4
补充:
Weblogic bea oracle
Websphere IBM
六、Servlet的概念及功能
(一)什么是Servlet
- Servlet是JavaEE规范中的Web开发组件,运行在服务器端的java程序.
(二)Servlet特点
- 运行在服务器端
- 需要Servlet容器的支持(如:Tomcat)
- Servlet是一个Java类,遵守一定的开发规范,比如继承HttpServlet
- 通过浏览器访问Servlet,Servlet返回给浏览器动态页面
- 本课程所学的主要内容:Servlet和JSP,JSP的本质是Servlet
七、使用IDE创建第一个Web应用
(一)创建第一个web应用
1.创建工程,File-new-Project
2.选择java-Web Application
或者选择Java EnterPrise-Web Application
输入工程名,选择存放目录
(二)Web工程的目录结构
对于新版的找不到JAVAEE以下步骤解决:
- 创建java工程:File-new-Project-java
- 新弹出的页面直接点next
- 输入工程名
- 选择Project Structure
- 选择Modules-web
(三)Idea配置Tomcat
- 找到Add Configuration
- 右上角找到Add Configuration图标
-
- 菜单Run-Edit Configuration
- 在弹出的页面中选择+号-Tomcat Server-Local
- 在弹出的页面中输入名称,点击Configure按钮
- 在弹出的页面中,点击+号,再在新弹出的页面中点击文件夹按钮选择Tomcat安装路径
- 选择Tomcat安装路径
- 刚配置好的Tomcat
(四)发布web应用
- 新弹出的页面
- 选择浏览器,点击OK按钮.Tomcat配置成功
- 配置Chrome(可以直接把默认路径换成谷歌的路径)
- 右上角出现配置好的Tomcat
- 运行Tomcat,启动应用
- 运行应用
八、编写第一个Servlet
(一)src->右键->new->Servlet
(二)输入包名和Servlet名称
(三)web.xml配置servlet
<!--配置Servlet,可以手动配置-->
<servlet>
<!--Servlet的名称 不要重名-->
<servlet-name>HelloServlet</servlet-name>
<!--servlet对应的类的全路径名称(包名+类名)-->
<servlet-class>com.tjetc.servlet.HelloServlet</servlet-class>
</servlet>
<!--配置Servlet映射(url与Servlet名称映射)-->
<servlet-mapping>
<!--Servlet的名称-->
<servlet-name>HelloServlet</servlet-name>
<!--外部访问servlet的url,初学者写/开头-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
(四)导入servlet-api.jar jsp-api.jar
(五)在生成的servlet中添加
/**
* 浏览器地址栏输入http://localhost:8080/hello会调用servlet的doGet()方法
* @param req 请求对象.取得请求的数据(浏览器传过来的数据)
* @param resp 响应对象.返回浏览器数据放在该对象中
* @throws ServletException
* @throws IOException
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//生成动态的内容返回到浏览器显示
//取得响应的输出流对象
PrintWriter out = response.getWriter();
//向out输出流对象写内容浏览器就能接收到,并在页面进行显示
out.print("Hello Servlet!");
}
九、web.xml中配置Servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--配置Servlet,可以手动配置-->
<servlet>
<!--Servlet的名称-->
<servlet-name>HelloServlet</servlet-name>
<!--servlet类的全路径名-->
<servlet-class>com.tjetc.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<!--Servlet的名称-->
<servlet-name>HelloServlet</servlet-name>
<!--外部访问servlet的url,初学者写/开头-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
说明:
- <servlet>元素
- 包含<servlet-name>及<servlet-class>
- <servlet-name>可以使用任意标识符
- <servlet-class>是Servlet类的完整类名
- <servlet-mapping>元素
- 包含<servlet-name>及<url-pattern>
- <servlet-name>与已经定义的name对应
- <url-pattern>是逻辑url,非常非常重要,访问Servlet就使用这个url-pattern
十、部署到Tomcat
点击fix,就会自动部署
手动部署:
1.点击+号,选择Artifact
十一、运行Web应用
Tomcat如何找到servlet并实例化的?
- 第一步:在浏览器地址栏输入访问路径,向服务器(Tomcat)发送请求;
- 第二步:服务器根据访问路径去web.xml文件中和<url-pattern>标签中的虚拟路径进行匹配,匹配成功后,找到已注册的servlet名称;
- 第三步:根据映射找到对应的servlet名,注意:<servlet-mapping>下的<servlet-name>标签和<servlet>下的<servlet-name>标签中的值必须相同;
- 第四步:根据servlet名找到全限定类名,即我们自己写的类。
服务器找到全限定类名后,通过反射调用Class对象的newInstance()方法,实例化一个如:HelloServlet对象,注意一定要为HelloServlet提供一个无参的构造方法。同时也创建了servletConfig,里面存放了一些初始化信息(注意:服务器只会创建一次HelloServlet对象,所以servletConfig也只有一个)。
十二、Servlet的生命周期
(一)servlet家谱
二类二接口
3加2方法
(二)servlet生命周期
当用户第一次从浏览器请求访问LifeServlet时,对应的LifeServlet的生命周期简略描述如下:
- Tomcat 调用LifeServlet的构造方法,创建该类的对象
- Tomcat调用JavaEE API中的初始化方法:
- 先调用有参数的init方法
- 再调用无参的init方法,进行初始化工作
- 初始化成功后,调用service服务方法,通过判断请求方式,调用相应的doxx方法,如ldoGet、doPost等方法;
- doxxx方法正常返回后,即提供服务结束
- Tomcat根据使用情况,在适当的时机销毁servlet对象,销毁前调用destroy方法
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class HelloServlet extends HttpServlet {
public HelloServlet() {
System.out.println("无参构造方法HelloServlet()");
}
@Override
public void init() throws ServletException {
System.out.println("初始化init()无参");
super.init();
}
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("初始化init(config)有参");
super.init(config);
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("service()");
super.service(req, resp);
}
//接收get请求
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doGet()");
//doPost(req, resp);
}
//接收post请求
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doPost()");
//获取输出流
PrintWriter writer = resp.getWriter();
//把字符串输出到页面中
writer.write("<h1>Hello Servlet </h1>");
}
@Override
public void destroy() {
System.out.println("destroy()");
super.destroy();
}
}
(三)各个方法的执行顺序和次数
- Tomcat启动,各个方法没有执行
- 第一次访问的时候执行顺序:
- HelloServlet的构造方法
- init初始化方法
- service()方法
- method = GET
- 第二次以及以后访问的时候执行顺序
- service()方法
- method = GET
- 执行次数
- 构造方法,初始化方法执行一次
- service()方法 doXXX()执行多次
- 销毁方法destroy()方法执行一次
(四)servlet的特性
- 多线程单实例
- 单例模式:
- 在整个应用运行期间,只有一个实例存在
- 单例模式.省内存.
- 一个url对应一个实例
(五)ServletAPI查询地址
http://tomcat.apache.org/tomcat-9.0-doc/servletapi/index.html
(六)Web应用常见的错误
1.404找不到请求的资源
2.500代表服务器内部错误
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("doGet()");
int i=1/0;
response.getWriter().append("Served at: Hello Servlet!").append(request.getContextPath());
}
3.页面无法显示:未启动Tomcat
十三、案例
写一个servlet,在servlet里返回一个html页面,页面包含一个table表格,输出:
序号 |
姓名 |
年龄 |
1 |
张三 |
20 |
2 |
李四 |
18 |
(一)设置响应编码:UTF-8
response.setContentType(“text/html;charset=UTF-8”);
(二)向页面输出
out=response.getWriter();
out.println(内容);
十四、总结
- C/S B/S RIA
- C/S:Client/Server 客户机/服务器 客户端需要安装特定的软件
- B/S:Browser/Server 浏览器/服务器 客户端不需要安装特定的软件,只要安装浏览器软件即可
- RIA:Rich Internet Applications 富客户端网络应用 基于B/S 实现C/S的用户体验
- Web站点:Web Site,也称为Web 网站,浏览 静态功能
- Web应用:Web Application web应用 查看/购物/订单的动态的功能
- HTTP服务器:浏览网页
- Web应用服务器:运行服务器端程序,将结果返回给客户端浏览器
- 开发Web应用常用的技术:
- CGI
- .net
- php
- javaEE
- 什么是Tomcat
- Tomcat是Web应用服务器,又称为Servlet Container(Servlet 容器)
- Tomcat安装
- 下载
- 解压
- JDK
- Tomcat常用目录
- bin:启动 停止Tomcat脚本
- conf:配置文件
- lib:Tomcat依赖的库
- logs:Tomcat默认的日志存放目录
- temp:临时文件
- wabapps:Tomcat默认的部署目录
- work:jsp翻译.java和编译的.class文件目录
- 启动Tomcat:
- bin
- 双击startup.bat
- 访问Tomcat:http://localhost:8080
- 解决Tomcat控制台的乱码(这种不能完全解决乱码问题)
- 进入conf文件夹
- 打开logging.properties文件
- 修改java.util.logging.ConsoleHandler.encoding = utf-8
- 重启Tomcat
- 常见的servlet容器
- Tomcat
- JBoss
- Resin
- Glass Fish 4
- Weblogic Bea Oracle
- WebSphere IBM
- 什么是servlet
- Servlet是JavaEE规范中的Web开发组件,运行在服务器端的java程序
- servlet的特点
- 运行在服务器端
- 需要Servlet容器的支持(如:Tomcat)
- Servlet是一个Java类,遵守一定的开发规范,比如继承HttpServlet
- 通过浏览器访问Servlet,Servlet返回给浏览器动态页面
- 使用IDE开发第一个Web应用
- 打开Idea
- 新建工程:File-new-Project
- java enterpise-Web Application - 勾选Create web.xml
java-javaee-Web Application - 勾选Create web.xml
-
- 输入工程名,选择存放的位置
对于新版:
-
- 新建工程:File-new-Project-java
- Project Structure-module-+-web
- create Artifact:自动生成web目录及配置文件
- idea配置Tomcat
- edit Configuration
- +号-Tomcat Server-Local
- 发布
- fix按钮
- 编写第一个servlet
- src->new -servlet
- 名
- web.xml配置servlet
- doGet
- servlet家谱
- 二类二接口
- 3加2方法
- servlet生命周期方法
- 构造方法,初始化方法执行一次
- service()方法 doXXX()执行多次
- 销毁方法destroy()方法执行一次
- 15.常见错误
- 404未找到
- 500服务器内部错误
- .页面无法显示:未启动Tomcat
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话