web 服务器
1. 分类
管理静态内容的 - 网页内容一旦设计好,就不能在运行
过程中改变
常见的 apache, nginx
80
* 管理动态内容的 - 可以根据用户的不同,展示不同的网页,
或是内容来自于数据库
* java 编写的:
* 常见的 tomcat, jetty 免费的,开源的
* 商业的: weblogin websphere jboss
2. nginx
目录结构:
conf 配置文件目录
html 自带的欢迎页面
nginx.exe 可执行程序
启动nginx
start nginx
用下面命令检查 nginx 进程是否启动
tasklist /fi "imagename eq nginx.exe"
可以通过下面的方式来访问 web 服务器:
打开浏览器,输入服务器的ip地址 + 网页名称
http:// ip地址 / 网页路径
默认的网页名一般是 index.html
常见命令
nginx -s reload // 重新加载配置文件
nginx -s stop // 强制停止
nginx -s quit // 优雅停止,完成当前任务再停止
3. tomcat (apache 用java语言编写)
目录结构
bin 可执行程序
conf 配置目录
webapps 应用程序目录
bin\startup.bat 启动脚本
bin\startup.sh linux 启动脚本
bin\shutdown.bat 停止脚本
停止方式:
- 执行 shutdown.bat
- 直接关闭黑窗口 (强制停止)
- 选中黑窗口 按 ctrl+C
可以进入 conf/server.xml 文件进行如下配置
<Connector port="端口号" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>
URIEncoding=“解码字符集”
可以修改 conf/tomcat-users.xml 文件,定义tomcat 的管理员用户:
<role rolename="manager-gui"/> <!-- 角色标签 -->
<role rolename="admin-gui"/>
<!-- manager-gui 是管理应用的, amdin-gui 是管理虚拟主机的 -->
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
进入 Manager App 管理界面后,可以
start 开启app
stop 停止app
reload 重新加载app
undeploy 反部署app
管理虚拟主机
查找 C:\Windows\System32\drivers\etc\hosts 文件,添加域名解析
DNS 域名映射
127.0.0.1 www.westos.com
然后通过 Host Manager 管理界面
添加name :虚拟主机的域名
添加appbase : 服务器的页面存储的文件夹
ROOT 对应根目录应用程序
index.html
…
4. java 开发 web 应用程序
目录结构
应用程序目录
|-WEB-INF
|- web.xml 部署描述符 ( 配置文件 )
|- classes 放置 java 编译好的 class 文件
|- lib 放置 第三方的 jar 包(例如 mysql 的驱动等)
用 java 代码显示服务器的系统时间
Servlet 服务器端的程序
所有 servlet 需要继承 HttpServlet 父类
覆盖父类中的 service(HttpServletRequest request, HttpServletResponse response) {
}
在类上加一个注解 @WebServlet(urlPattern="/路径")
JSP (java server page)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Address already in bind 8080
maven
管理jar包时,会连接网络下载jar包
默认仓库的位置 C:\Users\Administrator.m2
maven 的要素:
groupId 组织编号 com.westos
artifactId 项目名称 web2
version 版本 1.0
目录结构
src
|-main
|-java (java代码)
|-resources (配置文件)
|-test
|-java
|-resources
pom.xml (可以添加 jar依赖,设置jdk版本,项目的字符编码)
教师机的 maven仓库网址: http://192.168.9.2:8081/nexus/
阿里云的 maven仓库网址: http://maven.aliyun.com/nexus/content/groups/public/
表单提交的两种方式
- get 请求,会把请求参数跟在地址之后,格式是
?参数名1=参数值1 & 参数名2=参数值2 ...
传递参数的长度有限
- post 请求, 请求参数会包含在请求体内,对外不可见
参数名1=参数值1 & 参数名2=参数值2 ...
没有长度限制, 注意 post 并不是真正安全(并没有对参数做加密处理)