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语言编写)
1)目录结构
bin 可执行程序
conf 配置目录
webapps 应用程序目录
bin\startup.bat 启动脚本
bin\startup.sh linux 启动脚本
bin\shutdown.bat 停止脚本
注:webapps底下的每一个文件夹都对应着网页上的一个目录
webapps/ROOT 对应 网页上的/ (特殊)
2)停止方式
* 执行 shutdown.bat
* 直接关闭黑窗口 (强制停止)
* 选中黑窗口 按 ctrl+C
3)对tomcat进行端口的配置
可以进入 conf/server.xml 文件进行如下配置
<Connector port="端口号" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>
URIEncoding="解码字符集"
4) 配置管理员的用户名和密码
可以修改 conf/tomcat-users.xml 文件,定义tomcat 的管理员用户:(重启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
5)管理虚拟主机(配置域名和服务器的对应关系)
查找 C:\Windows\System32\drivers\etc\hosts 文件,添加域名解析
DNS 域名映射
127.0.0.1 www.westos.com
然后通过 Host Manager 管理界面
添加name :虚拟主机的域名
添加appbase : 服务器的页面存储的文件夹
ROOT 对应根目录应用程序
index.html
...
方式2:直接进入 conf/server.xml 文件进行如下配置(永久生效)
<Host></Host>复制一份,改一个域名name,改一个存储路径appBase,再改一个日志的前缀名称prefix 就好了
<Host name="www.westos.com" appBase="D:\myapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="westos_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
4.java 开发 web 应用程序
目录结构
应用程序目录
|-WEB-INF
|- web.xml 部署描述符 ( 配置文件 )
|- classes 放置 java 编译好的 class 文件
|- lib 放置 第三方的 jar 包(例如 mysql 的驱动等)
例: 用 java 代码显示服务器的系统时间
方式一:Servlet 服务器端的程序
所有 servlet 需要继承 HttpServlet 父类
覆盖父类中的 service(HttpServletRequest request, HttpServletResponse response) {
}
在类上加一个注解 @WebServlet(urlPattern="/路径")
解一:创建一个MyServlet类,继承 HttpServlet
@WebServlet(urlPatterns = "/date")
public class MyServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
String html = "<html><body><h1>" + new Date() +"</h1></body></html>";
resp.getWriter().print(html);
}
}
方式二:JSP (java server page)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
解二:新建一个date.jsp
<%@ page import="java.util.Date" %><%--
Created by IntelliJ IDEA.
User: lenovo
Date: 2019/1/8
Time: 14:14
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
Date date = new Date();
out.print(date);
%>
</body>
</html>
5.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://maven.aliyun.com/nexus/content/groups/public/
创建maven项目,
首先File->Settings->Maven->User settings file 勾选Override,选中settings.xml所在目录
6.表单提交的两种方式
1) get 请求,会把请求参数跟在地址之后,格式是
?参数名1=参数值1 & 参数名2=参数值2 ...
传递参数的长度有限
2) post 请求, 请求参数会包含在请求体内,对外不可见
参数名1=参数值1 & 参数名2=参数值2 ...
没有长度限制, 注意 post 并不是真正安全(并没有对参数做加密处理)