目录
JAVA web
一,软件架构
- c/s架构:客户端 / 服务器
- b/s架构:浏览器 / 服务器
二,资源分类
静态资源:所有用户访问后,得到的结果都是一样的(html,css,js,图片...)
动态资源:每个用户访问相同的资源,得到的结果可能不一样,动态资源在被访问后,需要先转换成静态资源,在返回给浏览器,通过浏览器来进行解析
nginx:动静分离
三,常见的wed服务器
服务器:安装了服务器软件的计算机
服务器软件:接受用户的请求,处理请求后,给出响应
wed服务器软件:接受用户的请求,处理请求后,给出响应
在web服务器软件中,可以部署web项目,让用户通过浏览器访问这些项目
四,常见的服务器软件
动态服务器
webLogic : oracle公司出品,大型的web服务器,几乎支持了所有的javaEE规范
webSphere : IBM公司,大型的web服务器,几乎支持了所有的javaEE规范
jBoss : jBoss公司,中型的javaEE服务器,几乎支持了所有的javaEE规范
Tomcat : Apache基金会,中小型的web服务器,支持少量的javaEE规范,开源免费
静态服务器
Nginx :代理,反向代理,动静分离,极高的并发
Apache
Tomcat
bin :存放一些批处理脚本文件,可处理文件
conf :(config)存放tomcat相关配置文件
lib :(library)Tomcat依赖的jar包
logs :存放日志
temo :临时文件目录
webapps :Tomcat默认的web应用部署目录
work :web应用JSP代码身生成和遍历的临时目录
Tomcat的启动
双击 bin/startup.bat文件
Tomcat的关闭
双击 bin/shutdown.bat文件
访问
http:1270.0.1:8080
五,Tomcat部署项目
六,Servlet
Servlet
就是一个普通的java类
处理请求,给出响应的类
创建Servlet
实现 javax.servet.Servlet 接口
继承 javax.servlet.GenericServlet 类
继承 javax.servlet.http.HtppServlet 类(*)
引包 放在WEB-INF下的lib包
Servlet生命周期
- 初始化 -- inti方法
- 实例化 -- 构造器
- 调用 serice 方法,处理请求
- 销毁 -- destory方法
前台和后台简单实现
web / WEB-INF 下新建 lib 导入servelt-api.jar
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--
get请求怎么发?
-->
<a href="hello.do">get请求</a>
<form action="hello.do" method="post">
<input type="submit" value="提交">
</form>
</body>
</html>
实现方式一:xml 文件
<?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-name>hello</servlet-name>-->
<!-- <servlet-class>com.jsoft.afternoon.HelloServlet</servlet-class>-->
<!-- </servlet>-->
<!-- <servlet-mapping>-->
<!-- <servlet-name>hello</servlet-name>-->
<!-- <url-pattern>/hello.do</url-pattern>-->
<!-- </servlet-mapping>-->
</web-app>
实现二:java 类
package ServletTest;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 现在我们这个HelloServlet已经是一个真正的serlvet了
* 已经具备了处理请求,给出响应的功能
*
* 一个类如果想要解决问题,必须得有方法!
*
* 我们当前的servlet只是具备了处理请求的功能,
* 它到底处理哪一个请求?
*
* 需要对我们的servlet做一个配置
*
*/
@WebServlet("/hello.do")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 处理get请求
System.out.println("doGet方法执行了...");
System.out.println("我是doget方法...");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 处理post请求
System.out.println("doPost方法执行了...");
}
}
注意:
在 xml 里注册 servlet 不可与注解同时用,用注解不要用 xml 实现
Settings 在 Build,Execution,Deployment 下 Complier 勾选 Build project automatically