-
WEB开发相关知识
web
Web软件,可以把本机资源提供给外界访问。
javaweb开发:
开发动态网站的技术。
进行动态网站开发所需技术的总和。
静态的网站: html/css/js/image… 只是显示,不能与用户交互(例如,存储用户数据。)
动态的网站: 可交互的网站,都叫做动态网站。 使用java技术开发动态网站,就是javaweb开发。
-
java 技术
JavaSE, java开发基本技术 (类型、集合、IO、多线程…)
JavaEE, java企业级应用技术
给企业提供解决方案,就是进行javaweb开发。
应用:
考勤系统 (通过网站访问)
KPI系统 (员工绩效考核)
CRM系统 客户关系管理系统
OA系统 办公自动化
电商
…
java2ee开发,是一种规范,定义了13种技术。
其中包括: XML/Servlet/JSP/JDBC等
自定义一个服务器软件
public static void main(String[] args) throws Exception {
// 服务端
ServerSocket server = new ServerSocket(9000);
// 等待用户连接
Socket socket = server.accept();
// 文件输入流
InputStream in = new FileInputStream("E:\\site\\1.html");
// 输出流
OutputStream out = socket.getOutputStream();
byte[] b = new byte[1024];
int len = -1;
while ((len = in.read(b)) != -1) {
out.write(b,0,len);
}
in.close();
socket.close();
}
-
项目体系结构
B/S 基于浏览器、服务器端的项目 (后面开发的所有项目,都是b/s结构的项目)
优点:不用安装客户端。(浏览器就是客户端)维护方便。
C/S 基于客户端、服务器端的项目。
优点:操作清晰,易用。
-
tomcat服务器
服务器:有特定功能,且可以提供给外界使用 (安装相应的软件)。
web服务器:安装了web软件的机器,就做web服务器。
常用的web服务器软件:
Weblogic 适合大型应用, oracle公司产品
WebSphere IBM公司的软件
Tomcat apache开源组织提供服务器产品
www.apache.org apache官网
1.Tomcat服务器, 基本使用
安装版本, 一般是在正式的服务器中用。
解压版本, 开发中用。
a. 解压tomcat服务器软件
apache-tomcat-6.0.16.zip
b. 在指定目录新建项目(文件夹): my_project
apache-tomcat-6.0.16\webapps\my_project\1.html
c. 启动
apache-tomcat-6.0.16\bin\startup.bat 启动的命令
d. 访问
http://localhost:8080/my_project/1.html
或者,
http://192.168.21.170:8080/my_project/1.html
在浏览器就可以显示1.html内容!
2.访问地址
http://localhost:8080/my_project/1.html
通过这个地址,找到了需要的资源: F:\apache-tomcat-6.0.16\webapps\my_project\1.html
IP: 192.168.21
http协议: 定义了通讯的格式。
: 分隔符 (分割协议与网站)
// (没用)
localhost 域名, 网站的名称。
域名分类,
本地域名, localhost
非本地域名, 例如:www.baidu.com(收费)
域名作用:
域名一定要映射,对应的一个ip; 映射的好处是: 域名好记忆.
域名解析:
本地hosts文件解析 : C:\Windows\System32\drivers\etc\hosts
DNS域名服务器解析(连网)
8080 端口
端口, 对于一台机器要区分不同的用户访问的不同的功能,通过端口区分。
8080 tomcat服务器默认的端口就是8080, 这个可以修改!
3306 mysql数据库默认的端口
1521 oracle 数据库默认端口
80 http协议默认的端口是80,可以省略!
http://wwww.baidu.com:8080/my/1.html
/my_project 访问的资源目录。
资源必须以目录的形成访问。
对应的是: F:\apache-tomcat-6.0.16\webapps
这个目录下的文件夹: my_project
/1.html 资源
域名映射解析
3.Tomcat目录结构
|--apache-tomcat-6.0.16
|-- bin 存放所有可执行文件
startup.bat (windows执行命令) 运行服务器
如果要把资源提供给外界访问,必须开启服务器。
启动时候,加载jar文件:bootstrap.jar(main函数)
startup.sh (linux系统)
shutdown.bat 停止服务器
|-- config 存放配置
web.xml 项目部署描述文件, 描述一个部署项目的
tomcat 规定:web项目必须有web.xml,tomcat本身也是一个项目,也有web.xml
server.xml 服务器自身配置信息
|-- lib 存放tomcat服务器运行时候所需要的jar文件
注意:
存放的是服务器自身的jar文件
如果是项目的jar文件,
也可以放到这里, 就意味着所有的项目都可以用这个jar文件
一般都访问具体某个项目下,不放到服务器的lib下
servlet-api.jar 对servlet技术的支持
tomcat服务器支持servlet运行
tomcat服务器,也叫做web服务器,或servlet服务器
|-- logs 日志
|-- temp 临时文件
|-- webapps (重要)自己的项目如果想给外界访问,就要放到这个目录下。
|-- work jsp工作目录
4.webapps目录下,项目的目录结构
tomcat是web服务器
web开发, javaweb开发, 动态网站开发。 需要通过java代码,把运行的结果输出给浏览器(servlet)
|-- webapps 存放当前tomcat下所有的项目
|-- my_project 其中一个自己的项目
|-- 项目资源 : html/jsp/css/js/image
|-- WEB-INF 这个目录用户不能访问,存放的是项目的字节码、jar文件、web.xml
|-- classes 存放项目的所有字节码
|-- lib 存放项目用到的所有jar文件
|-- web.xml 项目的配置
tomcat在启动的时候,会加载自身的web.xml, 以及所有项目的web.xml。
配置默认显示的起始页:
<welcome-file-list>
<welcome-file>1.html</welcome-file>
<welcome-file>1.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
总结:
tomcat要求其下所有项目都要按照上面的格式。
5.Tomcat服务器,启动常见错误
问题1: 启动一闪而过
F:\>cd F:\apache-tomcat-6.0.16\bin
F:\apache-tomcat-6.0.16\bin>startup.bat
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
解决:
配置环境变量, 增加 JAVA_HOME 对应的jdk环境
(tomcat服务器启动时候,会找这个变量:JAVA_HOME)
JAVA_HOME C:\Program Files\Java\jdk1.6.0
问题2: 端口被占用
java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind
java.net.BindException: Address already in use: JVM_Bind
解决:
1. 关闭tomcat
shutdown.bat 调用程序关闭tomcat
2. 如果项目就要运行2个tomcat
必须改变访问端口: 8080
tomcat/conf/server.xml
哪个端口报错,就该哪个端口,注意不要重复:
<Connector port="8000" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
-
发布项目
http://localhost:8000/my_project/1.html
http://www.baidu.com
http://localhost
1. 把项目资源直接拷贝到webapps/ROOT目录下,这样访问的时候就不用输入项目名。
2. 给端口为80
访问:
http://localhost 默认访问端口是80, 默认的项目是ROOT目录下项目
方式2: tomacat发布外部项目(非webapps目录下的项目)
项目路径:C:\myprj
访问路径:baidu
访问: http://localhost:8000/baidu/new.html
发布方式:
让tomcat关联外部的项目。虚拟路径:baidu
conf/server.xml 修改配置文件,server.xml
在Host节点下,新增子节点:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
在这里添加如下配置:
path(/xxx):虚拟目录的名称,即作为访问路径的一部分(虚拟路径映射的项目绝对路径)。
docBase:虚拟目录,映射的真实项目路径(虚拟路径映射的项目绝对路径)。
<Context path=”/baidu” docBase=”C:\myprj” />
</Host>
访问:
http://localhost:8080/baidu/1.html 项目资源
方式2总结:服务器配置最好不要修改。1. 需要重启。2.修改服务器配置,不便于服务器的维护。
方式3:通过新建文件的形式,实现虚拟目录项目的发布。
1.新建文件夹,新建文件
Tomcat-6.0.16\conf\catalina\localhost\baidu.xml
新建xml,xml名称就是虚拟目录名称(访问路径名称)
2. baidu.xml
<Context docBase=”C:\myprj” />
项目路径:C:\myprj
发布方式:
新建一个xml文件: E:\Tomcat-6.0.16\conf\catalina\localhost\baidu.xml
(需要新建catalina与localhost目录)
访问:
http://localhost:8080/baidu/1.html 项目资源
好处:
1.没有修改服务器自身的配置来实现项目的发布
2.发布后不需要重启;(开闭原则)
方式3可以取代方式2
方式4:最常用
项目发布到: E:\Tomcat-6.0.16\webapps\自己的项目
访问:http://localhost:8000/自己的项目/resource
-
tomcat下发布多个网站
tomcat默认的域名:localhost
localhost:->Tomcat-6.0.16\webapps
新建网站的步骤:
1.新建网站的站点目录,里面可以放多个项目。
C:\new_webapps
2.新建网站
在tomcat的server.xml中添加
<Host name="www.baidu.com" appBase="C:\new_webapps" 地址是一个站点目录,里面可以放多个项目。
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</host>
3.本机域名映射
文件:C:\Windows\System32\drivers\etc\hosts
内容:
192.168.0.1 www.baidu.com
4.访问
http://www.baidu.com:80/new-project/1.html
-
手动发布动态网站项目
静态网站项目:*.html + css + js 开发出的页面
动态网站项目:通过java代码,向浏览器输出内容。
Servlet技术:
用于开发动态网站项目的一种技术。
Servlet程序就是不同的java程序,继承自HttpServlet类。
开发一个servlet程序,步骤:
- 新建一个java project
- 新建类,继承HttpServlet
public class HelloWorld extends HttpServlet
此时,需要添加servlet支持,添加jar文件:
E:\Tomcat-6.0.16\lib\servlet-api.jar
把jar文件添加到项目,添加到类路径下。
引入包,import javax.servlet.http.HttpServlet;
- 重写方法:
public class HelloWorld extends HttpServlet{
// 处理访问请求
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 向浏览器输出内容
resp.getWriter().write("Hello World Servlet!");
}
}
- servlet程序必须交给服务器运行。
4.1. 所以,需要把HelloWorld字节码文件,拷贝到服务器项目目录下的classes目录
结果:
%tomcat%\webapps\day08\WEB-INF\classes\cn\itcast\servlet\HelloWorld.class
4.2. 服务器运行字节码文件 (通过访问路径找到sevlet程序)
需要在web.xml中配置:
<servlet>
要与mapping节点下的名称一致
<servlet-name> hello111</servlet-name>
Servlet类全路径
<servlet-class> cn.itcast.servlet.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
随便写,但要与servlet节点中光的名称一致
<servlet-name>hello111</servlet-name>
访问路径的配置
<url-pattern>/hello</url-pattern>
</servlet-mapping>
- 访问:http://localhost:8080/day08/hello
手动开发servlet程序,比较麻烦
- 需要手动添加servlet支持.。
- 把servlet字节码文件放到Tomcat的项目的WEB-INF下的classes目录,还要配置web.xml。
-
使用MyEclipse开发动态网站项目(开发servlet程序)
-
新建Web Project
-
新建servlet,输入内容
response.getWriter().write(“Hello World1!!!”); -
配置MyEclipse与tomcat服务器的关联,可以实现自动发布
配置步骤:
Windows->Preferrences->My Eclipse ->Servlets->Tomcat
选择tomcat路径,关联。 -
发布项目
-
启动服务器
-
访问:
a) http://localhost:8080/day08_dynamic/servlet/Hello
总结:
Tomcat 服务器:
1. Web服务器
Tomcat
可以把本机资源提供给外界访问
apache 开源基金组织优秀产品
启动:
startup.bat 启动服务器
发布:
tomcat/webapps/project
虚拟路径
方式1: conf/servlet.xml
<Context path="虚拟路径" docBase="指向的项目的绝对路径"/>
方式2:
conf/Catalina/localhost/虚拟路径.xml
<Context docBase="" />
多个网站:
1. 网站站点目录(可以放多个项目)
2. servlet.xml
新建<Host>节点
3. 本地域名映射
127.0.0.1 wwww.baidu.com
2. 项目目录结构
|--webapps
|--prj
|-- 项目资源 (index.html)
|-- WEB-INF 用户不能直接访问
|-- classes
|-- lib
|-- web.xml
注意:
图片、css、js等资源,不能放到WEB-INF下。