声明:本博客为学习b站某servlet视频时的笔记,供之后复习理解
C/S架构和B/S架构
客户端<——请求/响应——>web服务器/数据库服务器
Browser浏览器<——请求/响应——>服务器<——>数据库
Web(World Wide Web)万维网
静态资源:Web页面供人们浏览的数据始终保持不变(HTML/CSS)
动态资源:不同时间点、不同设备访问Web页面看到的内容各不相同
Java Web:动态Web资源开发技术
Web服务器
运行以及发布Web应用的容器,将开发的Web项目放置到该容器中,才能使所有用户通过浏览器进行访问
常见服务器
OpenSource(开源、免费)
- Tomcat(主流Web服务器之一,适合初学者)
- jetty(淘宝在用)
- resin(新浪,效率最高)
收费
- WebLogic (Oracle)
- WebSphere(IBM)
Tomcat
支持Servlet和JSP规范
1.下载
http://tomcat.apache.org/下载版本
2.解压缩
不建议将服务器软件放在磁盘层次很多目录下
不建议放在中文和特殊符号目录下
Tomcat目录结构
bin | 存放的二进制可执行文件 |
---|---|
conf | server.xml服务器Tomcat的配置信息,可以对服务器基础配置进行修改 |
web.xml 项目部署的描述文件 | |
lib | Tomcat的类库,里面存放Tomcat运行所需要的jar包文件 |
logs | 存放日志文件,记录Tomcat启动和关闭的信息,如果启动Tomcat时出现错误,异常也会记录在日志中 |
temp | Tomcat的临时文件,停止Tomcat后会被删除 |
webspps | 最为重要,存放所有的web项目,其中每一个文件夹都是一个项目,其中ROOT是一个特殊项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目 |
work | 运行时生成的文件,最终运行的文件都在这里 |
启动Tomcat
双击startup.bat
打开http://localhost:8080可以查看启动的结果
停止Tomcat
双击shutdown.bat
项目部署以及访问静态资源
项目应用部署在webapps下,通过特定的URL进行访问
创建项目内容可以直接在IDEA中创建web项目生成,不需要手动来,下面为一般创建步骤
创建项目
1.在webapps中建立文件夹(项目应用),比如:myweb
2.在myweb文件夹中创建WEB-INF文件夹,用于存放项目的核心内容**(WEB-INF不能直接被外界访问)**
在WEB-INF中创建classes,用于存放 .class文件
创建lib,用于存放jar文件
创建web.xml,项目配置文件(到ROOT项目下的WEB-INF复制即可)
3.在webapps文件夹中写网页(比如hello.html),该网页与WEB-INF同级目录
URL访问资源
http://localhost:8080/myweb/hello.html
协议 域名或主机名 端口号 资源路径
Servlet
概念
servlet : Server Applet的简称,是服务端的程序(代码、功能实现),可以交互式处理客户端发送到服务端的请求,并完成操作响应
动态网页技术
JavaWeb程序开发的基础,JavaEE规范的一个组成部分
Servlet作用
- 接收客户端请求,完成操作
- 动态生成网页(页面数据可变)
- 将包含操作结果的动态网页响应给客户端
Servlet开发步骤
搭建开发环境
将Servlet相关的jar包(lib\servelt-api.jar)配置到classpath中
servlet-api.jar在Tomcat的lib目录下
编写servlet的时候要使用一些接口,不是java的,是servlet-api.jar的
编写Servlet
- 实现javax.servlet.Servlet
- 重写5个主要方法
- 在核心的service()方法中编写输出语句,打印访问结果;
不要在里面使用中文进行注释,不然会报错
<?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-name是给指定的servlet.class文件起一个别名-->
<servlet-name>my</servlet-name>
<!--被对应的.class文件-->
<servlet-class>MyServlet</servlet-class>
</servlet>
<!--对Servlet作映射-->
<servlet-mapping>
<servlet-name>my</servlet-name>
<!--配置的是将来要访问的路径,前面是项目的名称,根目录,对于浏览器的路径-->
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
</web-app>
import javax.servlet.*;
import java.io.IOException;
public class MyServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
//获得Servlet的配置信息
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
}
//获得Servlet的基本信息
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
Web项目目录结构:
WebProject
.idea IDEA工程配置文件
src 存放java代码
web 存放静态资源
WEB-INF 项目配置文件,jar包和.class文件
classes 存放jar包
lib
web.xml 项目部署的描述文件
index.jsp jsp文件
WebProject.iml 模块配置文件
External Libaries 外部jar包
jdk1.8
基本文件导入servlet-api.jar包步骤(关联第三方jar包)
- 在WEB-INF下新建文件夹lib
- 将servlet-api.jar文件夹复制到lib目录下
- 在lib上右键Add as Libaray
如何导出war包
项目完成后,有时候需要打成war包方便部署,war包可以直接放入Tomcat的webapps目录中,启动Tomcat后会自动解压,即可访问
在IDEA中是开发版,WebProject_war_exploded,是热部署(可以随时随地来改变),真正的部署需要将项目导出为war包,发行版,再来使用
导出war包步骤:
- 点击项目结构
- 点击Artifact
- 点击+
- 选择Web Application Archive For …exploded
- 点击apply ok
- 点击build—>点击build artifact,选择war包---->点击build
- 生成的目录在out目录下