JavaWeb开发基础
标签(空格分隔): JavaWeb
JavaWeb应用的概念
在Sun的Java Servlet规范中,对Java Web应用作了这样定义:“Java Web应用由一组Servlet、HTML页、类、以及其它可以被绑定的资源构成。它可以在各种供应商提供的实现Servlet规范的 Servlet容器 中运行。”
Java Web应用中可以包含如下内容:
- Servlet
- JSP
- 实用类
- 静态文档如HTML、图片等
- 描述Web应用的信息(web.xml)
Servlet容器的概念
Servlet容器为JavaWeb应用提供运行时环境,它负责管理Servlet和JSP的生命周期,以及管理它们的共享数据。
Servlet容器也称为JavaWeb应用容器,或者Servlet/JSP容器。目前最流行的Servlet容器之一是Tomcat
疑问
学习web开发,为什么必须要先装一个WEB服务器?
答: 在本地计算机上随便创建一个web页面,用户是无法访问到的,但是如果启动tomcat服务器,把web页面放在tomcat服务器中,用户就可以访问了。这说明什么问题?
1、不管什么web资源,想被远程计算机访问,都必须有一个与之对应的网络通信程序,当用户来访问时,这个网络通信程序读取web资源数据,并把数据发送给来访者。
2、WEB服务器就是这样一个程序,它用于完成底层网络通迅。使用这些服务器,We应用的开发者只需要关注web资源怎么编写,而不需要关心资源如何发送到客户端手中,从而极大的减轻了开发者的开发工作量。
因此我们想要在Internet上访问就需要把web项目部署到云服务器上
Web程序结构
一个 web 应用程序是由一组 Servlet,HTML 页面,类,以及其它的资源组成的运行在 web 服务器上的完整的应用程序,以一种结构化的有层次的目录形式存在
Servlet 规范中定义了 web 应用程序的目录层次:
几点说明:
WEB-INF 是一个特殊的目录(所有字母都要大写)。这个目录并不属于Web应用程序可以访问的上下文路径的一部分,对客户端来说,这个目录是不可见的。但该目录下的内容对于Servlet代码是可见的
WEB-INF目录下的classes和lib目录下一般都是自动编译生成的文件,要设置输出的路径
在Servlet容器运行时,Web应用程序的类加载器将首先加载classes目录下的,其次才是lib目录下的类。如果这两个目录下存在同名的类,起作用的将是classes目录下的类
IDEA开发Web项目
1. 创建一个Web项目
- 创建一个项目
- 创建一个Module:
勾选Java EE 下的 Web Application,点击完成。 - 在web/WEB-INF下创建两个文件夹:classes和lib:
classes用来存放编译后输出的class文件,lib用于存放第三方jar包。 - 配置文件夹路径:
File -> Project Structure -> 选择Modules -> 选择刚才创建的Module -> 选择 Paths -> 把”继承工程输出路径”的选项改为”Use module compile output path” -> 将Output path和Test output path都选择刚刚创建的classes文件夹。接着选择Dependencies -> 点击右边的“+”号 -> 选择1 “Jars or Directories” -> 选择刚刚创建的lib文件夹 -> 选择“jar directory” -> 接着返回一路OK就行了
2. 配置Tomcat服务器
- 打开菜单Run -> 选择Edit Configuration
- 点击“+”号 -> 选择“Tomcat Server” -> 选择“Local” -> Libraries中添加tomcat目录下的两个jar包:jsp-api.jar和servlet-api.jar -> OK
- 在”Run/Debug Configurations”窗口的”Server”选项板中,取消勾选”After launch”,设置”HTTP port”和”JMX port”(默认值即可),点击 Apply -> OK,Tomcat配置完成。
3. 在Tomcat中部署并运行项目
- Run -> Edit Configurations,进入”Run/Debug Configurations”窗口 -> 选择刚刚建立的Tomcat容器 -> 选择Deployment -> 如果Deploy at the server startup中还有别的项目那就删除
- 点击右边的“+”号 -> 选择Artifact -> 选择刚刚创建的web项目(xxxx:war exploded 格式)
- Application context处填要访问的路径,例如/first
4. 创建第一个web项目
- 在src下创建一个包test,然后再创建一个类Info:
package test;
public class Info {
public String getInfo() {
return "src-Info-getInfo ...";
}
}
注意:一定要创建一个包,再在包下创建类,否则会出错。
- 写 index.jsp文件
<%@ page import="test.Info" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
this is the first web
<!--插入java代码-->
<%
Info info = new Info();
System.out.println(info.getInfo());
%>
</body>
</html>
注意:
this is the first web是在web界面上显式的。
java代码写在<%%>中,结果显示在控制台上
url为http://localhost:8080/first/index.jsp